【发布时间】:2013-09-28 09:24:10
【问题描述】:
我们在一个大型项目中使用 GWT。
在某些情况下,这段代码可以产生NoSuchElementException:
for (Object o: myList) {
}
里面没有对ArrayList的修改。
但这发生在最近。
在生成的应用程序的源代码中我发现:
var context, context$iterator, operation;
operation = doDeserialize(this$static, ctx, json);
for (context$iterator =
new java_util_AbstractList$IteratorImpl_AbstractList$IteratorImpl__Ljava_util_AbstractList_2V(this$static.jetbrains_jetpad_otmodel_ot_persistence_OperationPersistenceContext_myContextDelegates);
context$iterator.java_util_AbstractList$IteratorImpl_i < context$iterator.java_util_AbstractList$IteratorImpl_this$0.size__I();
) {
context = java_util_AbstractList$IteratorImpl_$next__Ljava_util_AbstractList$IteratorImpl_2Ljava_lang_Object_2(context$iterator);
}
所以首先返回 true:iterator.i < iterator.size();
但在下一行 (in .next()) 中,此代码也返回 true:iterator.i >= iterator.size();
我只能在 Chrome 中重现。
【问题讨论】:
-
如果你认为你发现了一个错误,并且假设你使用的是最新版本,请在code.google.com/p/google-web-toolkit/issues/entry提出问题
-
我是 GWT 的贡献者,我不确定这是一个错误,bcz 我不知道它是怎么回事 :-(
标签: java javascript gwt