Sudden exception when installing mail gem

Greetings,

I have a script which automatically packages my app which uses JRuby,
installs bundled gems and all that, and it was working perfectly until
today when it suddenly started to crash with an exception when
installing the “mail” gem O_o

Here’s a manual run of the corresponding command:

$ java -jar lib/dm.jar -S gem install mail --bindir
lib/gems/META-INF/jruby.home/bin --install-dir
lib/gems/META-INF/jruby.home/lib/ruby/gems/1.8/ --no-rdoc --no-ri
–no-test

JRuby limited openssl loaded. http://jruby.org/openssl
gem install jruby-openssl for full support.
System.java:-2:in arraycopy': java.lang.ArrayIndexOutOfBoundsException from DefaultResolver.java:111:in makeTime’
from DefaultResolver.java:277:in create' from DefaultResolver.java:317:in handleScalar’
from DefaultResolver.java:435:in orgHandler' from DefaultResolver.java:455:in node_import’
from
org/yecht/ruby/DefaultResolver$s_method_1_0$RUBYINVOKER$node_import.gen:65535:in
call' from CachingCallSite.java:146:in call’
from RubyLoadHandler.java:40:in handle' from Parser.java:300:in addNode’
from DefaultYAMLParser.java:676:in yyparse' from Parser.java:290:in yechtparse’
from Parser.java:284:in parse' from YParser.java:152:in load’
from org/yecht/ruby/YParser$s_method_0_1$RUBYINVOKER$load.gen:65535:in
call' from JavaMethod.java:630:in call’
from DynamicMethod.java:186:in call' from CachingCallSite.java:309:in cacheAndCall’
from CachingCallSite.java:148:in call' from CallOneArgNode.java:57:in interpret’
from LocalAsgnNode.java:123:in interpret' from NewlineNode.java:104:in interpret’
from InterpretedMethod.java:180:in call' from DefaultMethod.java:174:in call’
from CachingCallSite.java:309:in cacheAndCall' from CachingCallSite.java:148:in call’
from CallOneArgNode.java:57:in interpret' from LocalAsgnNode.java:123:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedMethod.java:180:in call' from DefaultMethod.java:174:in call’
from CachingCallSite.java:309:in cacheAndCall' from CachingCallSite.java:148:in call’
from CallOneArgNode.java:57:in interpret' from NewlineNode.java:104:in interpret’
from RescueNode.java:199:in executeBody' from RescueNode.java:118:in interpretWithJavaExceptions’
from RescueNode.java:110:in interpret' from InterpretedMethod.java:180:in call’
from DefaultMethod.java:174:in call' from CachingCallSite.java:309:in cacheAndCall’
from CachingCallSite.java:148:in call' from FCallOneArgNode.java:36:in interpret’
from InstAsgnNode.java:95:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from EnsureNode.java:96:in interpret’
from BeginNode.java:83:in interpret' from NewlineNode.java:104:in interpret’
from WhenOneArgNode.java:36:in whenSlowTest' from WhenOneArgNode.java:46:in when’
from CaseNode.java:133:in interpret' from NewlineNode.java:104:in interpret’
from InterpretedBlock.java:373:in evalBlockBody' from InterpretedBlock.java:346:in yield’
from InterpretedBlock.java:303:in yield' from Block.java:194:in yield’
from YieldNode.java:112:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedBlock.java:373:in evalBlockBody’
from InterpretedBlock.java:346:in yield' from InterpretedBlock.java:303:in yield’
from Block.java:194:in yield' from RubyKernel.java:1251:in loop_1_9’
from
org/jruby/RubyKernel$s_method_0_0$RUBYFRAMEDINVOKER$loop_1_9.gen:65535:in
call' from CachingCallSite.java:299:in cacheAndCall’
from CachingCallSite.java:117:in callBlock' from CachingCallSite.java:132:in callIter’
from FCallNoArgBlockNode.java:32:in interpret' from NewlineNode.java:104:in interpret’
from InterpretedMethod.java:160:in call' from DefaultMethod.java:166:in call’
from CachingCallSite.java:299:in cacheAndCall' from CachingCallSite.java:117:in callBlock’
from CachingCallSite.java:122:in call' from CallNoArgBlockNode.java:64:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedMethod.java:242:in call' from DefaultMethod.java:198:in call’
from CachingCallSite.java:339:in cacheAndCall' from CachingCallSite.java:197:in callBlock’
from CachingCallSite.java:202:in call' from RubyClass.java:815:in call’
from DynamicMethod.java:194:in call' from WrapperMethod.java:62:in call’
from CachingCallSite.java:329:in cacheAndCall' from CachingCallSite.java:188:in call’
from FCallTwoArgNode.java:38:in interpret' from LocalAsgnNode.java:123:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from EnsureNode.java:96:in interpret' from InterpretedMethod.java:242:in call’
from DefaultMethod.java:198:in call' from CachingCallSite.java:339:in cacheAndCall’
from CachingCallSite.java:197:in callBlock' from CachingCallSite.java:202:in call’
from CallTwoArgBlockPassNode.java:62:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedMethod.java:283:in call’
from DefaultMethod.java:214:in call' from CachingCallSite.java:359:in cacheAndCall’
from CachingCallSite.java:237:in callBlock' from CachingCallSite.java:252:in callIter’
from CallThreeArgBlockNode.java:64:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedMethod.java:262:in call’
from DefaultMethod.java:206:in call' from CachingCallSite.java:349:in cacheAndCall’
from CachingCallSite.java:228:in call' from FCallThreeArgNode.java:40:in interpret’
from NewlineNode.java:104:in interpret' from InterpretedBlock.java:373:in evalBlockBody’
from InterpretedBlock.java:346:in yield' from InterpretedBlock.java:303:in yield’
from Block.java:194:in yield' from RubyIO.java:1107:in open’
from RubyKernel.java:283:in open' from org/jruby/RubyKernel$s_method_0_2$RUBYFRAMEDINVOKER$open.gen:65535:in call’
from DynamicMethod.java:198:in call' from CachingCallSite.java:339:in cacheAndCall’
from CachingCallSite.java:197:in callBlock' from CachingCallSite.java:212:in callIter’
from FCallTwoArgBlockNode.java:34:in interpret' from NewlineNode.java:104:in interpret’
from IfNode.java:119:in interpret' from IfNode.java:119:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedMethod.java:221:in call' from DefaultMethod.java:190:in call’
from CachingCallSite.java:329:in cacheAndCall' from CachingCallSite.java:188:in call’
from CallTwoArgNode.java:59:in interpret' from InstAsgnNode.java:95:in interpret’
from NewlineNode.java:104:in interpret' from RescueNode.java:199:in executeBody’
from RescueNode.java:118:in interpretWithJavaExceptions' from RescueNode.java:110:in interpret’
from BeginNode.java:83:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedMethod.java:242:in call’
from DefaultMethod.java:198:in call' from CachingCallSite.java:339:in cacheAndCall’
from CachingCallSite.java:197:in callBlock' from CachingCallSite.java:202:in call’
from RubyClass.java:815:in call' from DynamicMethod.java:194:in call’
from CachingCallSite.java:329:in cacheAndCall' from CachingCallSite.java:188:in call’
from CallTwoArgNode.java:59:in interpret' from DAsgnNode.java:110:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedBlock.java:373:in evalBlockBody' from InterpretedBlock.java:346:in yield’
from InterpretedBlock.java:303:in yield' from Block.java:194:in yield’
from RubyArray.java:1630:in eachCommon' from RubyArray.java:1637:in each’
from
org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:65535:in
call' from CachingCallSite.java:299:in cacheAndCall’
from CachingCallSite.java:117:in callBlock' from CachingCallSite.java:122:in call’
from CallNoArgBlockNode.java:64:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedMethod.java:221:in call’
from DefaultMethod.java:190:in call' from CachingCallSite.java:329:in cacheAndCall’
from CachingCallSite.java:188:in call' from CallTwoArgNode.java:59:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from RescueNode.java:199:in executeBody' from RescueNode.java:118:in interpretWithJavaExceptions’
from RescueNode.java:110:in interpret' from BeginNode.java:83:in interpret’
from NewlineNode.java:104:in interpret' from InterpretedBlock.java:373:in evalBlockBody’
from InterpretedBlock.java:346:in yield' from InterpretedBlock.java:303:in yield’
from Block.java:194:in yield' from RubyArray.java:1630:in eachCommon’
from RubyArray.java:1637:in each' from org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:65535:in call’
from CachingCallSite.java:299:in cacheAndCall' from CachingCallSite.java:117:in callBlock’
from CachingCallSite.java:122:in call' from CallNoArgBlockNode.java:64:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedMethod.java:139:in call' from DefaultMethod.java:158:in call’
from CachingCallSite.java:289:in cacheAndCall' from CachingCallSite.java:108:in call’
from VCallNode.java:85:in interpret' from NewlineNode.java:104:in interpret’
from IfNode.java:119:in interpret' from IfNode.java:119:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedMethod.java:113:in call' from InterpretedMethod.java:127:in call’
from DefaultMethod.java:149:in call' from CachingCallSite.java:279:in cacheAndCall’
from CachingCallSite.java:68:in call' from CallSpecialArgNode.java:73:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from CaseNode.java:138:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedMethod.java:180:in call’
from DefaultMethod.java:174:in call' from CachingCallSite.java:309:in cacheAndCall’
from CachingCallSite.java:148:in call' from FCallOneArgNode.java:36:in interpret’
from NewlineNode.java:104:in interpret' from RescueNode.java:199:in executeBody’
from RescueNode.java:118:in interpretWithJavaExceptions' from RescueNode.java:110:in interpret’
from InterpretedMethod.java:180:in call' from DefaultMethod.java:174:in call’
from CachingCallSite.java:309:in cacheAndCall' from CachingCallSite.java:148:in call’
from CallOneArgNode.java:57:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedMethod.java:180:in call’
from DefaultMethod.java:174:in call' from CachingCallSite.java:309:in cacheAndCall’
from CachingCallSite.java:148:in call' from CallOneArgNode.java:57:in interpret’
from NewlineNode.java:104:in interpret' from RescueNode.java:199:in executeBody’
from RescueNode.java:118:in interpretWithJavaExceptions' from RescueNode.java:110:in interpret’
from BeginNode.java:83:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from RootNode.java:129:in interpret’
from Ruby.java:2551:in loadFile' from ExternalScript.java:61:in load’
from LoadService.java:255:in load' from RubyKernel.java:1010:in loadCommon’
from RubyKernel.java:992:in load' from org/jruby/RubyKernel$s_method_0_1$RUBYFRAMEDINVOKER$load.gen:65535:in call’
from DynamicMethod.java:190:in call' from DynamicMethod.java:186:in call’
from CachingCallSite.java:309:in cacheAndCall' from CachingCallSite.java:148:in call’
from FCallOneArgNode.java:36:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedBlock.java:373:in evalBlockBody’
from InterpretedBlock.java:327:in yield' from BlockBody.java:78:in call’
from Block.java:89:in call' from RubyProc.java:224:in call’
from ProcMethod.java:62:in call' from DynamicMethod.java:182:in call’
from DynamicMethod.java:178:in call' from CachingCallSite.java:289:in cacheAndCall’
from CachingCallSite.java:108:in call' from gem:1:in file
from gem:-1:in load' from Ruby.java:690:in runScript’
from Ruby.java:573:in runNormally' from Ruby.java:416:in runFromMain’
from Main.java:286:in run' from Main.java:128:in run’
from Main.java:97:in `main’

Any idea what could be wrong? Absolutely nothing was changed anywhere in
my packaging code.

This is using JRuby 1.5.5 by the way, I haven’t got the time to try more
recent versions yet, 1.5.5 has been working perfectly for me.


Luc H. - [email protected]

it looks like there is newer version of the mail gem which requires a
newer version of jruby and/or rubygems. maybe fix the version of the
mail gem to one which works.

  • Kristian

On 3 nov. 2011, at 17:17, kristian wrote:

it looks like there is newer version of the mail gem which requires a
newer version of jruby and/or rubygems. maybe fix the version of the
mail gem to one which works.

Yes, got it: the problem is in one of the mail dependencies (polyglot)
which got updated 2 days ago to 0.3.3. Forcing it to 0.3.2 before
installing the mail gems make it work.

Sorry for the noise.


Luc H. - [email protected]