Concurrent
----------
Key: JRUBY-3332
URL: http://jira.codehaus.org/browse/JRUBY-3332
Project: JRuby
Issue Type: Bug
Components: Core Classes/Modules
Affects Versions: JRuby 1.1.6
Environment: MacOS 10.5.6 with JDK 1.6.0 64-bit
Reporter: Peter K Chan
During the startup of my app, a ConcurrentModificationException was thrown.
This is a very infrequent event, and I don't have any way to consistenttly
reproduce it. However, I do have the stack trace available and I am hoping that
by looking at the source, someone can figure out if this is a synchronization
problem.
{code}
[01/25 11:54:18] TRACE: Bun started in 0.026.
Exception in thread "NATChecker" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$EntryIterator.next(HashMap.java:834)
at java.util.HashMap$EntryIterator.next(HashMap.java:832)
at java.util.HashMap.putAllForCreate(HashMap.java:435)
at java.util.HashMap.<init>(HashMap.java:225)
at org.jruby.javasupport.JavaClass.initializeClass(JavaClass.java:491)
at org.jruby.javasupport.JavaClass.<init>(JavaClass.java:452)
at org.jruby.javasupport.JavaClass.createJavaClass(JavaClass.java:877)
at org.jruby.javasupport.JavaClass.get(JavaClass.java:860)
at org.jruby.javasupport.Java.getInstance(Java.java:446)
at
org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject(JavaUtil.java:760)
at org.jruby.javasupport.JavaUtil.java_to_ruby(JavaUtil.java:1077)
at org.jruby.javasupport.Java.java_to_ruby(Java.java:1454)
at
org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:36)
at
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:60)
at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:260)
at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:75)
at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
at org.jruby.ast.YieldNode.interpret(YieldNode.java:93)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.WhileNode.interpret(WhileNode.java:128)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:270)
at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:85)
at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:202)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:190)
at org.jruby.runtime.Block.yield(Block.java:133)
at org.jruby.ast.YieldNode.interpret(YieldNode.java:95)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.WhileNode.interpret(WhileNode.java:128)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:270)
at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:85)
at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:63)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:68)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:117)
at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:260)
at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:75)
at org.jruby.ast.VCallNode.interpret(VCallNode.java:82)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:202)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:190)
at org.jruby.runtime.BlockBody.call(BlockBody.java:64)
at org.jruby.runtime.BlockBody.call(BlockBody.java:70)
at org.jruby.runtime.Block.call(Block.java:116)
at org.jruby.RubyProc.call(RubyProc.java:205)
at org.jruby.RubyProc.call(RubyProc.java:187)
at
org.jruby.RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.call(org/jruby/RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.gen)
at
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodNoBlock.call(JavaMethod.java:62)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:226)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:203)
at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:73)
at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.RescueNode.executeBody(RescueNode.java:222)
at
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:144)
at org.jruby.ast.RescueNode.interpret(RescueNode.java:107)
at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:202)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:190)
at org.jruby.runtime.Block.yield(Block.java:133)
at org.jruby.ast.YieldNode.interpret(YieldNode.java:95)
at org.jruby.ast.IfNode.interpret(IfNode.java:109)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:93)
at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:68)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:136)
at
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:98)
at
org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:31)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:68)
at org.jruby.ast.WhileNode.interpret(WhileNode.java:128)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:202)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:190)
at org.jruby.runtime.BlockBody.call(BlockBody.java:64)
at org.jruby.runtime.BlockBody.call(BlockBody.java:70)
at org.jruby.runtime.Block.call(Block.java:116)
at org.jruby.RubyProc.call(RubyProc.java:205)
at org.jruby.RubyProc.call(RubyProc.java:187)
at
org.jruby.RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.call(org/jruby/RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.gen)
at
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodNoBlock.call(JavaMethod.java:62)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:226)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:203)
at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:73)
at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:68)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:202)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:190)
at org.jruby.runtime.BlockBody.call(BlockBody.java:64)
at org.jruby.runtime.BlockBody.call(BlockBody.java:70)
at org.jruby.runtime.Block.call(Block.java:116)
at org.jruby.RubyProc.call(RubyProc.java:205)
at org.jruby.RubyProc.call(RubyProc.java:187)
at org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:90)
at java.lang.Thread.run(Thread.java:637)
{code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email