我对一堆URL进行循环,对于每一个我正在执行以下操作的URL:
private String doQuery(String url) {
HttpGet httpGet = new HttpGet(url);
setDefaultHeaders(httpGet); // static method
HttpResponse response = httpClient.execute(httpGet); // httpClient instantiated in constructor
int rc = response.getStatusLine().getStatusCode();
if (rc != 200) {
// some stuff...
return;
}
HttpEntity entity = response.getEntity();
if (entity == null) {
// some stuff...
return;
}
// process the entity, get input stream etc
}
Run Code Online (Sandbox Code Playgroud)
第一个查询没问题,第二个查询抛出此异常:
线程"main"中的异常java.lang.IllegalStateException:无效使用SingleClientConnManager:仍然分配了连接.确保在分配另一个连接之前释放连接.在org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199)org.apache.http.impl.conn.SingleClientConnManager $ 1.getConnection(SingleClientConnManager.java:173)......
这只是一个简单的单线程应用程序.我该如何发布此连接?
我已经读了很多时间,学习Haskell,Lisp或Smalltalk等语言会以某种方式让你成为一个更好的程序员,而你用其他语言编程.
这个说法不仅仅是轶事证据吗?或者它是人们合理化花费大量时间学习他们永远不会使用的编程语言的方式?
我一直在寻找一种方法来检查数据库中的源代码控制.我的第一个想法是计算数据库差异的程序,并要求所有开发人员将他们的更改作为新的差异脚本.现在,我发现如果我可以将数据库转储到文件中,我可以检查它并将其用作另一种类型的文件.
主要条件是:
这不简单.我已经下载了很多以这种或那种方式失败的演示.
编辑:我不介意替代方法,只要它们允许我们以批处理模式检查我们的发布数据库结构和对象+数据的工作系统.
顺便说说.我们的项目已经开发多年.当你重新开始时,一些方法很容易实现,但在这一点上看起来很难.
编辑:为了更好地理解问题,我们可以说有些用户有时会对生产环境中的配置数据进行更改.或者开发人员可能会在realease分支中创建新字段或更改视图,而不会发出通知.我需要知道这些变化,或者将变更合并到生产中会很复杂.
我正在使用这个DateTimeFormatter:
DateTimeFormatter.ofPattern("ddMMYY")
Run Code Online (Sandbox Code Playgroud)
我想解析字符串150790,我得到了这个错误:
Unable to obtain LocalDate from TemporalAccessor: {DayOfMonth=15, MonthOfYear=7, WeekBasedYear[WeekFields[MONDAY,4]]=2090},ISO of type java.time.format.Parsed
Run Code Online (Sandbox Code Playgroud)
显然,我希望得到以下内容TemporalAccessor:
{DayOfMonth=15, MonthOfYear=7, WeekBasedYear=1990}
Run Code Online (Sandbox Code Playgroud)
你知道我为什么得到2090而不是1990年?
谢谢你的帮助
尽管阅读了Kotlin关于集合的文档,但我无法找到 Kotlin 的可变集合是否是线程安全的以及是否有任何并发替代实现(例如Java 中的HashMap与ConcurrentHashMap )
注意:当我们这样做时,我指的是 Kotlin 创建的集合:
mutableMapOf<>()
mutableListOf<>()
mutableSetOf<>()
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个Hamcrest匹配器来单元测试返回java.util.Optional类型的方法.就像是:
@Test
public void get__Null(){
Optional<Element> element = Element.get(null);
assertThat( sasi , isEmptyOptional());
}
@Test
public void get__GetCode(){
Optional<Element> element = Element.get(MI_CODE);
assertThat( sasi , isOptionalThatMatches(allOf(hasproperty("code", MI_CODE),
hasProperty("id", notNullValue())));
}
Run Code Online (Sandbox Code Playgroud)
是否有任何可用的实现抛出Maven存储库?
升级到Neon后,我的Egit集成失败,出现以下异常
更新:请参阅eclipse错误
i.errors.TransportException:https://github.com/[REPOSITORY]/SCA:401 org.eclipse.jgit.api.PushCommand.call(PushCommand.java:169)需要在org.eclipse.egit.core上授权.op.PushOperation.run(PushOperation.java:217)org.eclipse.egit.ui.push.PushOperationUI.exe(PushOperationUI.java:167)org.eclipse.egit.ui.internal.push.PushOperationUI $ 1.run(PushOperationUI.java:229)org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)引起:org.eclipse.jgit.errors.TransportException: https:// github. com/SCASoftware/SCA:org.eclipse.jgit.transport.TransportHttp $ Service.openResponse(TransportHttp.java:855)需要401授权org.eclipse.jgit.transport.TransportHttp $ MultiRequestService.execute(TransportHttp.java:956) )atg.eclipse.jgit.transport.TransportHttp $ Service $ HttpExecuteStream.read(TransportHttp.java:882)位于java.io的org.eclipse.jgit.util.io.UnionInputStream.read(UnionInputStream.java:145). org.ecl上的FilterInputStream.read(未知来源)ig.jgit.util.io.TimeoutInputStream.read(TimeoutInputStream.java:112)atg.eclipse.jgit.util.IO.readFully(IO.java:247)org.eclipse.jgit.transport.PacketLineIn.readLength( PacketLineIn.java:186)位于org.eclipse.jgit的org.eclipse.jgit.transport.SideBandInputStream.needDataPacket(SideBandInputStream.java:154)org.eclipse.jgit.transport.SideBandInputStream.read(SideBandInputStream.java:136) .util.IO.readFully(IO.java:247)org.eclipse.jgit.transport.PacketLineIn.readLength(PacketLineIn.java:186)org.eclipse.jgit.transport.PacketLineIn.readString(PacketLineIn.java:138) )org.eclipse.jgit.transport.BasePackPushConnection.readStringLongTimeout(BasePackPushConnection.java:395)org.eclipse.jgit.transport.BasePackPushConnection.readStatusReport(BasePackPushConnection.java:328)org.eclipse.jgit.transport.BasePackPushConnection.在org.eclips的org.eclipse.jgit.transport.TransportHttp $ SmartHttpPushConnection.doPush(TransportHttp.java:786)的doPush(BasePackPushConnection.java:203)在org.eclipse.jgit.transport.Transport.push(运输. java:1250)org.eclipse.jgit.api.PushCommand.call(PushCommand.java:158)... 4更多
我已经在gitHub web界面中取消了我的凭据并且一直都失败了.更多信息:
eclipse.buildId = 4.6.1.M20160907-1200 java.version = 1.8.0_101 java.vendor = Oracle Corporation BootLoader常量:OS = win32,ARCH = x86_64,WS = win32,NL = es_ES框架参数:-product org.eclipse .epp.package.jee.product命令行参数:-os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
这个问题涉及在Java 8/JSR 310/threeten.org backport中解析2位数年份.两位数的年份是一个不幸的事实,需要处理.
我只关心ISO日历.默认情况下,JSR 310假定2000年的"基准年"为2位数年份.
我看到对基准年的控制可以通过
DateTimeFormatterBuilder.appendValueReduced(...)
Run Code Online (Sandbox Code Playgroud)
格式模式提供了指定日期格式的便捷机制
dd-MMM-yy
M/d/yy
d/M/yy
Run Code Online (Sandbox Code Playgroud)
在应用格式模式后,我没有看到为两位数年份应用"基准年"的机制.
Joda-time DateTimeFormatter.withPivotYear(int pivotYear)作为解决这个问题的机制.
在JSR 310中,是否有一种机制可以在指定模式后为2位数年份应用基数?
解析基准年可能不是2000年的2位数年份的最佳做法建议是什么?
我正在尝试使用jsonPath和pick函数来确定是否需要根据当前域运行规则.我正在做的简化版本是:
global
{
dataset shopscotchMerchants <- "https://s3.amazonaws.com/app-files/dev/merchantJson.json" cachable for 2 seconds
}
rule checkdataset is active
{
select when pageview ".*" setting ()
pre
{
merchantData = shopscotchMerchants.pick("$.merchants[?(@.merchant=='Telefora')]");
}
emit
<|
console.log(merchantData);
|>
}
Run Code Online (Sandbox Code Playgroud)
我期望的控制台输出是telefora对象,而是从json文件中获取所有三个对象.
如果不是商家=='Telefora'我使用merchantID == 16那么它的效果很好.我认为jsonPath也可以匹配字符串.虽然上面的例子没有搜索json的merchantDomain部分,但我遇到了同样的问题.
我有以下(略有缩写)代码来解析String输入到Joda Time DateTime对象.我需要正确处理多种格式,包括四位和两位数年份.
setupValidDateFormats();
DateTime date = convertToDateTime(thisField.getText());
if (date != null) {
thisField.setText(date.toString("MM/dd/yyyy"));
} else {
System.out.println("Invalid date");
}
private void setupValidDateFormats() {
DateTimeParser[] formats = {
DateTimeFormat.forPattern("MM/dd/yyyy").getParser(),
DateTimeFormat.forPattern("MM/dd/yy").getParser(),
DateTimeFormat.forPattern("MM-dd-yyyy").getParser(),
DateTimeFormat.forPattern("MM-dd-yy").getParser(),
DateTimeFormat.forPattern("MMddyyyy").getParser(),
DateTimeFormat.forPattern("MMddyy").getParser()
};
formatter = new DateTimeFormatterBuilder().append(null, formats).appendTwoDigitYear(1950, true).toFormatter()
.withLocale(Locale.US);
}
private DateTime convertToDateTime(String input) {
if (isNullOrEmpty(input)) {
return null;
}
DateTime date;
try {
// When you parse a date, it'll throw an exception for not only invalid formats,
// but for invalid …Run Code Online (Sandbox Code Playgroud) java ×6
2-digit-year ×3
datetime ×2
java-time ×2
collections ×1
connection ×1
database ×1
date ×1
eclipse ×1
eclipse-neon ×1
egit ×1
git ×1
hamcrest ×1
java-8 ×1
jodatime ×1
jsonpath ×1
kotlin ×1
krl ×1
matcher ×1
optional ×1
oracle ×1
unit-testing ×1