Cucumber Japanese example raises exception on JRuby
---------------------------------------------------

                 Key: JRUBY-4940
                 URL: http://jira.codehaus.org/browse/JRUBY-4940
             Project: JRuby
          Issue Type: Bug
          Components: Parser
    Affects Versions: JRuby 1.5.1
         Environment: OSX
Java 1.5.0_24/1.6.0_20
JRuby 1.5.1
Cucumber 0.8.5
            Reporter: Yoko Harada
            Assignee: Thomas E Enebo
         Attachments: CucumberRunner.java

Japanese example bundled in Cucumber raises the error:

load error: 
/Users/yoko/Projects/jruby/lib/ruby/gems/1.8/gems/cucumber-0.8.5/examples/i18n/ja/features/step_definitons/calculator_steps
 -- org.jcodings.exception.EncodingException: invalid code point value 
(LoadError)

The example worked and showed the result correctly in Japanese on ruby 1.8.6 
(2008-08-11 patchlevel 287) [i686-darwin].

When I tried the example using attached Program, Exception was raised in line 
80 of org.jcodings.specific.BaseUTF8Encoding#codeToMbcLength(int). The int 
value given in this method was -27. The trace to the EncodingExcetpion was in 
below:
{noformat} 
CucumberRunner [Java Application]       
        evergreen.CucumberRunner at localhost:62834     
                Thread [main] (Suspended (exception EncodingException)) 
                        
NonStrictUTF8Encoding(BaseUTF8Encoding).codeToMbcLength(int) line: 80   
                        RubyYaccLexer.isMultiByteChar(int) line: 466    
                        RubyYaccLexer.isIdentifierChar(int) line: 456   
                        RubyYaccLexer.identifier(int, boolean) line: 1420       
                        RubyYaccLexer.yylex() line: 1033        
                        RubyYaccLexer.advance() line: 293       
                        DefaultRubyParser.yyparse(RubyYaccLexer) line: 1380     
                        DefaultRubyParser.yyparse(RubyYaccLexer, Object) line: 
1332     
                        DefaultRubyParser.parse(ParserConfiguration, 
LexerSource) line: 3986    
                        Parser.parse(String, LexerSource, DynamicScope, 
ParserConfiguration) line: 111  
                        Parser.parse(String, byte[], DynamicScope, 
ParserConfiguration) line: 82        
                        Parser.parse(String, InputStream, DynamicScope, 
ParserConfiguration) line: 90   
                        Ruby.parseFile(InputStream, String, DynamicScope, int) 
line: 2259       
                        Ruby.parseFile(InputStream, String, DynamicScope) line: 
2263    
                        Ruby.loadFile(String, InputStream, boolean) line: 2540  
                        ExternalScript.load(Ruby, boolean) line: 61     
                        LoadService.tryLoadingLibraryOrScript(Ruby, 
LoadService$SearchState) line: 671  
                        LoadService.smartLoad(String) line: 314 
                        LoadService.require(String) line: 357   
                        LoadService.lockAndRequire(String) line: 289    
                        RubyKernel.requireCommon(Ruby, IRubyObject, 
IRubyObject, Block) line: 984       
                        RubyKernel.require(IRubyObject, IRubyObject, Block) 
line: 967   
                        
RubyKernel$s_method_1_0$RUBYFRAMEDINVOKER$require.call(ThreadContext, 
IRubyObject, RubyModule, String, IRubyObject, Block) line: 65535  
                        
RubyKernel$s_method_1_0$RUBYFRAMEDINVOKER$require(JavaMethod$JavaMethodOneOrNBlock).call(ThreadContext,
 IRubyObject, RubyModule, String, IRubyObject) line: 319 
                        AliasMethod.call(ThreadContext, IRubyObject, 
RubyModule, String, IRubyObject) line: 61  
                        
FunctionalCachingCallSite(CachingCallSite).cacheAndCall(IRubyObject, RubyClass, 
ThreadContext, IRubyObject, IRubyObject) line: 309      
                        
FunctionalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, IRubyObject) line: 148 
                        FCallOneArgNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 36     
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        RescueNode.executeBody(Ruby, ThreadContext, 
IRubyObject, Block) line: 199       
                        RescueNode.interpretWithJavaExceptions(Ruby, 
ThreadContext, IRubyObject, Block) line: 118       
                        RescueNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 110 
                        InterpretedMethod.call(ThreadContext, IRubyObject, 
RubyModule, String, IRubyObject) line: 180   
                        
FunctionalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, IRubyObject) line: 146 
                        FCallOneArgNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 36     
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        InterpretedMethod.call(ThreadContext, IRubyObject, 
RubyModule, String, IRubyObject) line: 180   
                        
NormalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, IRubyObject) line: 146     
                        CallOneArgNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 57      
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        BlockNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 71   
                        IfNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 117     
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        InterpretedMethod.call(ThreadContext, IRubyObject, 
RubyModule, String, IRubyObject) line: 180   
                        
FunctionalCachingCallSite(CachingCallSite).cacheAndCall(IRubyObject, RubyClass, 
ThreadContext, IRubyObject, IRubyObject) line: 309      
                        
FunctionalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, IRubyObject) line: 148 
                        FCallOneArgNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 36     
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        InterpretedBlock.evalBlockBody(ThreadContext, 
IRubyObject) line: 373    
                        InterpretedBlock.yield(ThreadContext, IRubyObject, 
Binding, Block$Type, Block) line: 346        
                        InterpretedBlock.yield(ThreadContext, IRubyObject, 
Binding, Block$Type) line: 303       
                        Block.yield(ThreadContext, IRubyObject) line: 194       
                        RubyArray.eachCommon(ThreadContext, Block) line: 1630   
                        RubyArray.each(ThreadContext, Block) line: 1637 
                        
RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.call(ThreadContext, IRubyObject, 
RubyModule, String, Block) line: 65535   
                        
NormalCachingCallSite(CachingCallSite).cacheAndCall(IRubyObject, RubyClass, 
Block, ThreadContext, IRubyObject) line: 299        
                        
NormalCachingCallSite(CachingCallSite).callBlock(ThreadContext, IRubyObject, 
IRubyObject, Block) line: 117      
                        
NormalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, Block) line: 122   
                        CallNoArgBlockNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 64  
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        BlockNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 71   
                        InterpretedMethod.call(ThreadContext, IRubyObject, 
RubyModule, String, IRubyObject) line: 180   
                        
NormalCachingCallSite(CachingCallSite).cacheAndCall(IRubyObject, RubyClass, 
ThreadContext, IRubyObject, IRubyObject) line: 309  
                        
NormalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, IRubyObject) line: 148     
                        CallOneArgNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 57      
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        BlockNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 71   
                        RescueNode.executeBody(Ruby, ThreadContext, 
IRubyObject, Block) line: 199       
                        RescueNode.interpretWithJavaExceptions(Ruby, 
ThreadContext, IRubyObject, Block) line: 118       
                        RescueNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 110 
                        InterpretedMethod.call(ThreadContext, IRubyObject, 
RubyModule, String, IRubyObject) line: 180   
                        
NormalCachingCallSite(CachingCallSite).cacheAndCall(IRubyObject, RubyClass, 
ThreadContext, IRubyObject, IRubyObject) line: 309  
                        
NormalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, IRubyObject) line: 148     
                        CallOneArgNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 57      
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        InterpretedMethod.call(ThreadContext, IRubyObject, 
RubyModule, String, IRubyObject) line: 180   
                        
NormalCachingCallSite(CachingCallSite).cacheAndCall(IRubyObject, RubyClass, 
ThreadContext, IRubyObject, IRubyObject) line: 309  
                        
NormalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, IRubyObject) line: 148     
                        CallOneArgNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 57      
                        LocalAsgnNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 123      
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        BlockNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 71   
                        RescueNode.executeBody(Ruby, ThreadContext, 
IRubyObject, Block) line: 199       
                        RescueNode.interpretWithJavaExceptions(Ruby, 
ThreadContext, IRubyObject, Block) line: 118       
                        RescueNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 110 
                        BeginNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 83   
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        BlockNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 71   
                        RootNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 129   
                        Ruby.loadFile(String, InputStream, boolean) line: 2540  
                        ExternalScript.load(Ruby, boolean) line: 61     
                        LoadService.load(String, boolean) line: 255     
                        RubyKernel.loadCommon(IRubyObject, Ruby, IRubyObject[], 
Block) line: 1010       
                        RubyKernel.load(IRubyObject, IRubyObject[], Block) 
line: 992    
                        
RubyKernel$s_method_0_1$RUBYFRAMEDINVOKER$load.call(ThreadContext, IRubyObject, 
RubyModule, String, IRubyObject[], Block) line: 65535   
                        
RubyKernel$s_method_0_1$RUBYFRAMEDINVOKER$load(DynamicMethod).call(ThreadContext,
 IRubyObject, RubyModule, String, IRubyObject, Block) line: 190        
                        
RubyKernel$s_method_0_1$RUBYFRAMEDINVOKER$load(DynamicMethod).call(ThreadContext,
 IRubyObject, RubyModule, String, IRubyObject) line: 186       
                        
FunctionalCachingCallSite(CachingCallSite).cacheAndCall(IRubyObject, RubyClass, 
ThreadContext, IRubyObject, IRubyObject) line: 309      
                        
FunctionalCachingCallSite(CachingCallSite).call(ThreadContext, IRubyObject, 
IRubyObject, IRubyObject) line: 148 
                        FCallOneArgNode.interpret(Ruby, ThreadContext, 
IRubyObject, Block) line: 36     
                        NewlineNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 104        
                        BlockNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 71   
                        RootNode.interpret(Ruby, ThreadContext, IRubyObject, 
Block) line: 129   
                        Ruby.runInterpreter(Node) line: 711     
                        EmbedEvalUnitImpl.run() line: 119       
                        ScriptingContainer.runUnit(EmbedEvalUnit) line: 1149    
                        ScriptingContainer.runScriptlet(PathType, String) line: 
1194    
                        CucumberRunner.<init>() line: 16        
                        CucumberRunner.main(String[]) line: 20          
{noformat} 



-- 
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


Reply via email to