I've reduced this one down to a simple case...anyone want to attack it?
fmt = "nnnC*" ary = [0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 6, 7, 0, 0, 0, 0, 0, 8, 9, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ary.pack(fmt) - Charlie Martijn Storck (JIRA) wrote:
java.lang.ArrayIndexOutOfBoundsException in RubyArray.java ---------------------------------------------------------- Key: JRUBY-3339 URL: http://jira.codehaus.org/browse/JRUBY-3339 Project: JRuby Issue Type: Bug Components: Core Classes/Modules Affects Versions: JRuby 1.2 Environment: jruby 1.1.7 (ruby 1.8.6 patchlevel 287) (2009-01-28 rev 6586) [i386-java] Mac OS X 10.5.5 Intel Reporter: Martijn Storck This bug surfaces when trying to load a Truetype font with the (100% Ruby) Prawn gem, version 0.4.1. I have been unable to trace the exact event where it happens in the Prawn code, but this is an example: {code:title="prawn.rb"} require 'rubygems'gem 'prawn', '0.4.1' require 'prawn'Prawn::Document.generate "prawn.pdf" do font "#{Prawn::BASEDIR}/data/fonts/DejaVuSans.ttf" # This is what generates the error text "Hello from JRuby" end {code} When run in the latest JRuby build as of today: {noformat} ~/dev% jruby -v jruby 1.1.7 (ruby 1.8.6 patchlevel 287) (2009-01-28 rev 6586) [i386-java] ~/dev% jruby -S gem list *** LOCAL GEMS *** prawn (0.4.1) prawn-layout (0.1.0) rake (0.8.3) rspec (1.1.12) sources (0.0.1) ~/dev% jruby prawn.rb RubyArray.java:752:in `eltInternal': java.lang.ArrayIndexOutOfBoundsException: 259 from Pack.java:1197:in `encode' from Pack.java:1494:in `pack' from RubyArray.java:3235:in `pack' from org/jruby/RubyArray$i_method_1_0$RUBYINVOKER$pack.gen:-1:in `call' from CachingCallSite.java:273:in `cacheAndCall' from CachingCallSite.java:112: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:163:in `call' from DefaultMethod.java:144:in `call' from CachingCallSite.java:273:in `cacheAndCall' from CachingCallSite.java:112:in `call' from CallOneArgNode.java:57:in `interpret' from LocalAsgnNode.java:123:in `interpret' from NewlineNode.java:104:in `interpret' from WhenOneArgNode.java:49:in `when' from CaseNode.java:128:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:201:in `call' from DefaultMethod.java:162:in `call' from CachingCallSite.java:293:in `cacheAndCall' from CachingCallSite.java:152:in `call' from CallTwoArgNode.java:59:in `interpret' from LocalAsgnNode.java:123:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:201:in `call' from DefaultMethod.java:162:in `call' from CachingCallSite.java:293:in `cacheAndCall' from CachingCallSite.java:152:in `call' from CallTwoArgNode.java:59:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:163:in `call' from DefaultMethod.java:144:in `call' from CachingCallSite.java:273:in `cacheAndCall' from CachingCallSite.java:112:in `call' from FCallOneArgNode.java:36:in `interpret' from LocalAsgnNode.java:123:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:125:in `call' from DefaultMethod.java:126:in `call' from CachingCallSite.java:253:in `cacheAndCall' from CachingCallSite.java:72:in `call' from CallNoArgNode.java:61:in `interpret' from LocalAsgnNode.java:123:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:201:in `call' from DefaultMethod.java:162:in `call' from CachingCallSite.java:293:in `cacheAndCall' from CachingCallSite.java:152:in `call' from FCallTwoArgNode.java:38:in `interpret' from NewlineNode.java:104:in `interpret' from InterpretedBlock.java:202:in `evalBlockBody' from InterpretedBlock.java:190:in `yield' from BlockBody.java:65:in `call' from BlockBody.java:71:in `call' from Block.java:80:in `call' from RubyProc.java:204:in `call' from RubyProc.java:187:in `call' from org/jruby/RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.gen:-1:in `call' from JavaMethod.java:610:in `call' from DynamicMethod.java:152:in `call' from CachingCallSite.java:273:in `cacheAndCall' from CachingCallSite.java:112:in `call' from CallOneArgNode.java:57:in `interpret' from IfNode.java:112:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:125:in `call' from DefaultMethod.java:126:in `call' from CachingCallSite.java:70:in `call' from CallNoArgNode.java:61:in `interpret' from CallOneArgNode.java:57:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedBlock.java:202:in `evalBlockBody' from InterpretedBlock.java:153:in `yield' from Block.java:84:in `yield' from RubyArray.java:1533:in `each' from org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:-1:in `call' from CachingCallSite.java:263:in `cacheAndCall' from CachingCallSite.java:81:in `callBlock' from CachingCallSite.java:86:in `call' from CallNoArgBlockNode.java:64:in `interpret' from NewlineNode.java:104:in `interpret' from InterpretedMethod.java:163:in `call' from DefaultMethod.java:144:in `call' from CachingCallSite.java:273:in `cacheAndCall' from CachingCallSite.java:112:in `call' from FCallOneArgNode.java:36:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:125:in `call' from DefaultMethod.java:126:in `call' from CachingCallSite.java:253:in `cacheAndCall' from CachingCallSite.java:72:in `call' from VCallNode.java:85:in `interpret' from CallOneArgNode.java:57:in `interpret' from NewlineNode.java:104:in `interpret' from InterpretedBlock.java:202:in `evalBlockBody' from InterpretedBlock.java:153:in `yield' from Block.java:84:in `yield' from RubyIO.java:875:in `open' from org/jruby/RubyIO$s_method_0_2$RUBYFRAMEDINVOKER$open.gen:-1:in `call' from DynamicMethod.java:261:in `call' from CachingCallSite.java:303:in `cacheAndCall' from CachingCallSite.java:161:in `callBlock' from CachingCallSite.java:176:in `callIter' from CallTwoArgBlockNode.java:62:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:163:in `call' from DefaultMethod.java:144:in `call' from CachingCallSite.java:273:in `cacheAndCall' from CachingCallSite.java:112:in `call' from CallOneArgNode.java:57:in `interpret' from NewlineNode.java:104:in `interpret' from BlockNode.java:71:in `interpret' from InterpretedMethod.java:182:in `call' from DefaultMethod.java:153:in `call' from CachingCallSite.java:283:in `cacheAndCall' from CachingCallSite.java:121:in `callBlock' from CachingCallSite.java:136:in `callIter' from prawn.rb:5:in `__file__' from prawn.rb:-1:in `load' from Ruby.java:575:in `runScript' from Ruby.java:478:in `runNormally' from Ruby.java:352:in `runFromMain' from Main.java:214:in `run' from Main.java:100:in `run' from Main.java:84:in `main' {noformat} The code works fine in MRI. Problem is also present in JRuby 1.1.6.
--------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email
