StepVerifier 有一个assertNext
方法允许对下一个元素的值执行断言。
StepVerifier.create(dataFlux)
.assertNext(v -> checkValue(v)
.verifyComplete();
Run Code Online (Sandbox Code Playgroud)
对每个剩余元素执行断言的好方法是什么(例如检查每个元素是否为正)?我希望有类似assertEveryNextElement
方法的东西。
我正在创建一个 Observable,它在订阅时发出整数。我现在的实现是这样设置的,所以订阅它的行为从一开始就触发了生成,如下所示:
private Observable createObservable() {
return Observable.create (
new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> sub) {
for (int i = 1; i < MAX_PROGRESS + 1; i++) {
sub.onNext(i);
SystemClock.sleep(1000);
}
sub.onCompleted();
}
}
);
}
Run Code Online (Sandbox Code Playgroud)
我的理解是这是一个冷 Observable。我希望生成序列而不管任何订阅者,并且当订阅者订阅时,希望他们接收在订阅时恰好是当前的值。IOW,把它变成一个热门的 Observable。我宁愿不将 Observable 子类化,因为这会将它绑定到一个具体的 Integer 中,而实际上实际类型会有所不同。
我打算通过互联网公开一个用于远程调试基于Java的Web服务的端口,但是我想了两次,我意识到它没有任何身份验证.
从理论上讲,似乎可以编写一个附加到远程调试器端口的工具,并通过Java API执行任意系统命令.或者修改/转储数据库,依此类推.至少这种利用似乎是这种情况http://securityaffairs.co/wordpress/36394/hacking/paypal-remote-code-execution.html
我不记得曾经强烈警告过暴露远程调试器端口.但是现在,当数百个僵尸网络扫描端口寻找漏洞时,应该更好地做广告.
可以请任何人评论它是否安全和/或如何以安全的方式在任意基于Java的Web服务上这样做?我的目标是能够在生产服务器上执行远程调试.
有一些python代码可以在Linux下运行.它以这样的方式使用pwd模块:
import pwd
...
def func():
user=pwd.getpwnam(user)[2]
Run Code Online (Sandbox Code Playgroud)
现在我们有一个特定的需要用测试来覆盖这个代码,测试必须在Windows下运行.程序本身只能在Linux下运行.问题是pwd模块在Windows下不可用,因此即使使用MagicMock模拟了pwd函数的实现,受测试的代码也会因ImportError而失败.
解决此问题的基本思想是在运行测试时隐藏pwd模块.因此,当运行测试时,存根将影响pwd,并且在运行主程序时,将使用原始(Unix)pwd.我们在测试PYTHONPATH时创建了这样的存根:
# pwd.py
def getpwnam(user):
print("YESSSSSSSS")
Run Code Online (Sandbox Code Playgroud)
但它似乎没有影响一个pwd模块,在调试器中我们看到内置的pwd是导入的.我主要是一名Java开发人员,所以如果做事的方式不是"pythonic",我很抱歉.欢迎提出想法.
Intellij IDEA 内存设置可以通过编辑选项进行自定义。比方说,我设置-Xmx
idea64.vmoptions
-Xmx2g
Run Code Online (Sandbox Code Playgroud)
然后同时打开5个不同的项目。IDEA 最终能消耗大约 10gb 的内存,还是会被限制在 2gb+一些开销?
在IDEA窗口右下角的内存使用监视器中,我看到每个项目分配的内存的不同值。另一方面,这些值似乎随着时间的推移而相关。
我正在尝试保存java.util.UUID
到Cassandra类型的列timeuuid
.例如,这是一个默认的spring-data-cassandra映射:http://docs.spring.io/spring-data/cassandra/docs/current/reference/html/#mapping-conversion.UUID的值是由java.util.UUID#randomUUID()
我得到一个异常生成的:
"com.datastax.driver.core.exceptions.InvalidQueryException: Invalid version for TimeUUID type"
@Override
public void validate(byte[] bytes)
{
if (bytes.length != 16 && bytes.length != 0)
throw new MarshalException(String.format("TimeUUID should be 16 or 0 bytes (%d)", bytes.length));
// version is bits 4-7 of byte 6.
if (bytes.length > 0)
if ((bytes[6] & 0xf0) != 0x10)
throw new MarshalException("Invalid version for TimeUUID type.");
}
Run Code Online (Sandbox Code Playgroud) 在某些情况下(比如没有余额),我的互联网提供商将任何 HTTP 请求重定向到一个简单的 html 存根。最近,我的 dev machive 上的 maven 缓存被 jar 文件淹没,这些 jar 文件的内容包含来自我的互联网提供商的 html 存根。这些 jar 文件在构建过程中没有被注意到,最终作为我的项目工件的一部分部署到 Tomcat。由于 Tomcat 日志中有关损坏的 jar 文件的警告,我注意到了问题。显然,我想在未来避免这种情况。
我看到在 Maven 缓存中,有些*.sha1
文件应该包含 jar 文件的完整性校验和。就我而言,这些*.sha1
也有错误的内容(由 html 存根组成)。
如果 jar 文件内容与完整性校验和不匹配,如何将 Maven 配置为在工件下载或构建过程中失败?
我使用的 Maven 版本是3.3.9
.
java ×4
android ×1
built-in ×1
cassandra ×1
checksum ×1
exploit ×1
heap-memory ×1
maven ×1
memory ×1
observable ×1
pwd ×1
python ×1
rx-android ×1
rx-java ×1
security ×1
shadowing ×1
timeuuid ×1
unit-testing ×1
uuid ×1
windows ×1