jruby / jcodings

Java-based codings helper classes for Joni and JRuby
MIT License
21 stars 29 forks source link

ArrayIndexOutOfBounds exception GB18030 #24

Closed ahorek closed 6 years ago

ahorek commented 6 years ago

repo https://github.com/mikel/mail

This is the only test failing on jruby, so I think it's worth to track it here.

https://travis-ci.org/mikel/mail/jobs/416928052

 1) Mail::Encodings B encodings should decode GB18030 encoded string misidentified as GB2312
     Failure/Error: Unable to find org.jcodings.transcode.TranscodeFunctions.funSioFromGB18030(TranscodeFunctions.java to read failed line

     Java::JavaLang::ArrayIndexOutOfBoundsException:
       3
     # org.jcodings.transcode.TranscodeFunctions.funSioFromGB18030(TranscodeFunctions.java:424)
     # org.jcodings.transcode.specific.From_GB18030_Transcoder.startInfoToOutput(From_GB18030_Transcoder.java:40)
     # org.jcodings.transcode.Transcoding.transcodeRestartable0(Transcoding.java:283)
     # org.jcodings.transcode.Transcoding.transcodeRestartable(Transcoding.java:105)
     # org.jcodings.transcode.Transcoding.convert(Transcoding.java:86)
     # org.jcodings.transcode.EConv.transSweep(EConv.java:236)
     # org.jcodings.transcode.EConv.transConvNeedReport(EConv.java:300)
     # org.jcodings.transcode.EConv.transConv(EConv.java:294)
     # org.jcodings.transcode.EConv.convertInternal(EConv.java:406)
     # org.jcodings.transcode.EConv.convert(EConv.java:452)
     # org.jruby.util.io.EncodingUtils.transcodeLoop(EncodingUtils.java:1403)
     # org.jruby.util.io.EncodingUtils.transcodeLoop(EncodingUtils.java:1315)
     # org.jruby.util.io.EncodingUtils.strTranscode0(EncodingUtils.java:939)
     # org.jruby.util.io.EncodingUtils.strTranscode(EncodingUtils.java:860)
     # org.jruby.util.io.EncodingUtils.strEncode(EncodingUtils.java:832)
     # org.jruby.RubyString.encode(RubyString.java:6040)
     # org.jruby.RubyString$INVOKER$i$encode.call(RubyString$INVOKER$i$encode.gen)
     # org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:199)
lopex commented 6 years ago

reduced: "�".force_encoding(Encoding::GB18030).encode(Encoding::GB2312)

which comes from: https://github.com/mikel/mail/blob/master/lib/mail/version_specific/ruby_1_9.rb#L273

lopex commented 6 years ago

@enebo we shall spin another release with this one right ?