JRuby (please use github issues at http://bugs.jruby.org)
  1. JRuby (please use github issues at http://bugs.jruby.org)
  2. JRUBY-5861

Installing gems that have unicode characters in the gemspec cause an error in 1.9 mode

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: JRuby 1.6.5
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      0

      Description

      This is one of Mislav's gems.

      robert@dev:~/code/projects$ JRUBY_OPTS="--1.9" gem install polyamory
      StreamReader.java:98:in `checkPrintable': unacceptable character '‡' (0x87) special characters are not allowed
      in "<reader>", position 160
      from StreamReader.java:191:in `update'
      from StreamReader.java:63:in `<init>'
      from PsychParser.java:101:in `parse'
      from PsychParser$i$1$0$parse.gen:65535:in `call'
      from CachingCallSite.java:137:in `call'
      from CallOneArgNode.java:57:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:137:in `call'
      from FCallOneArgNode.java:36:in `interpret'
      from CallNoArgNode.java:63:in `interpret'
      from LocalAsgnNode.java:123:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:137: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 ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:282:in `cacheAndCall'
      from CachingCallSite.java:139: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 ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:282:in `cacheAndCall'
      from CachingCallSite.java:139:in `call'
      from CallOneArgNode.java:57:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from RescueNode.java:216:in `executeBody'
      from RescueNode.java:120:in `interpretWithJavaExceptions'
      from RescueNode.java:110:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:282:in `cacheAndCall'
      from CachingCallSite.java:139: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 ASTInterpreter.java:112:in `INTERPRET_BLOCK'
      from Interpreted19Block.java:203:in `evalBlockBody'
      from Interpreted19Block.java:154:in `yield'
      from Interpreted19Block.java:132:in `yieldSpecific'
      from Block.java:108:in `yieldSpecific'
      from YieldOneNode.java:35:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:112:in `INTERPRET_BLOCK'
      from Interpreted19Block.java:203:in `evalBlockBody'
      from Interpreted19Block.java:154:in `yield'
      from Interpreted19Block.java:127:in `yieldSpecific'
      from Block.java:99:in `yieldSpecific'
      from RubyKernel.java:1419:in `loop'
      from RubyKernel$s$0$0$loop.gen:65535:in `call'
      from CachingCallSite.java:272:in `cacheAndCall'
      from CachingCallSite.java:114:in `callBlock'
      from CachingCallSite.java:123:in `callIter'
      from FCallNoArgBlockNode.java:32:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:169:in `call'
      from DefaultMethod.java:171:in `call'
      from CachingCallSite.java:272:in `cacheAndCall'
      from CachingCallSite.java:114:in `callBlock'
      from CachingCallSite.java:123:in `callIter'
      from CallNoArgBlockNode.java:64:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:255:in `call'
      from DefaultMethod.java:203:in `call'
      from CachingCallSite.java:312:in `cacheAndCall'
      from CachingCallSite.java:182:in `callBlock'
      from CachingCallSite.java:186:in `call'
      from RubyClass.java:806:in `newInstance'
      from RubyClass$i$newInstance.gen:65535:in `call'
      from JavaMethod.java:283:in `call'
      from WrapperMethod.java:62:in `call'
      from CachingCallSite.java:302:in `cacheAndCall'
      from CachingCallSite.java:173: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 ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:255:in `call'
      from DefaultMethod.java:203:in `call'
      from CachingCallSite.java:312:in `cacheAndCall'
      from CachingCallSite.java:182:in `callBlock'
      from CachingCallSite.java:186:in `call'
      from CallTwoArgBlockPassNode.java:62:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:298:in `call'
      from DefaultMethod.java:219:in `call'
      from CachingCallSite.java:332:in `cacheAndCall'
      from CachingCallSite.java:216:in `callBlock'
      from CachingCallSite.java:225:in `callIter'
      from CallThreeArgBlockNode.java:64:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:276:in `call'
      from DefaultMethod.java:211:in `call'
      from CachingCallSite.java:322:in `cacheAndCall'
      from CachingCallSite.java:207:in `call'
      from FCallThreeArgNode.java:40:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from ASTInterpreter.java:112:in `INTERPRET_BLOCK'
      from Interpreted19Block.java:203:in `evalBlockBody'
      from Interpreted19Block.java:154:in `yield'
      from Block.java:130:in `yield'
      from RubyIO.java:1122:in `open'
      from RubyKernel.java:298:in `open'
      from RubyKernel.java:308:in `open19'
      from RubyKernel$s$0$2$open19.gen:65535:in `call'
      from DynamicMethod.java:219:in `call'
      from CachingCallSite.java:312:in `cacheAndCall'
      from CachingCallSite.java:182:in `callBlock'
      from CachingCallSite.java:191:in `callIter'
      from FCallTwoArgBlockNode.java:34:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from RescueNode.java:216:in `executeBody'
      from RescueNode.java:120:in `interpretWithJavaExceptions'
      from RescueNode.java:110:in `interpret'
      from BeginNode.java:83: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 ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:233:in `call'
      from DefaultMethod.java:195:in `call'
      from CachingCallSite.java:302:in `cacheAndCall'
      from CachingCallSite.java:173:in `call'
      from CallTwoArgNode.java:59:in `interpret'
      from InstAsgnNode.java:95:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from RescueNode.java:216:in `executeBody'
      from RescueNode.java:120:in `interpretWithJavaExceptions'
      from RescueNode.java:110:in `interpret'
      from BeginNode.java:83:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:147:in `call'
      from DefaultMethod.java:163:in `call'
      from CachingCallSite.java:262:in `cacheAndCall'
      from CachingCallSite.java:105:in `call'
      from VCallNode.java:86:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:255:in `call'
      from DefaultMethod.java:203:in `call'
      from CachingCallSite.java:312:in `cacheAndCall'
      from CachingCallSite.java:182:in `callBlock'
      from CachingCallSite.java:186:in `call'
      from RubyClass.java:806:in `newInstance'
      from RubyClass$i$newInstance.gen:65535:in `call'
      from JavaMethod.java:283:in `call'
      from CachingCallSite.java:302:in `cacheAndCall'
      from CachingCallSite.java:173: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 ASTInterpreter.java:112:in `INTERPRET_BLOCK'
      from Interpreted19Block.java:203:in `evalBlockBody'
      from Interpreted19Block.java:154:in `yield'
      from Block.java:130:in `yield'
      from RubyArray.java:1595:in `eachCommon'
      from RubyArray.java:1602:in `each'
      from RubyArray$i$0$0$each.gen:65535:in `call'
      from CachingCallSite.java:272:in `cacheAndCall'
      from CachingCallSite.java:114:in `callBlock'
      from CachingCallSite.java:123:in `callIter'
      from CallNoArgBlockNode.java:64:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:233:in `call'
      from DefaultMethod.java:195:in `call'
      from CachingCallSite.java:302:in `cacheAndCall'
      from CachingCallSite.java:173:in `call'
      from CallTwoArgNode.java:59:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from RescueNode.java:216:in `executeBody'
      from RescueNode.java:120:in `interpretWithJavaExceptions'
      from RescueNode.java:110:in `interpret'
      from BeginNode.java:83:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from ASTInterpreter.java:112:in `INTERPRET_BLOCK'
      from Interpreted19Block.java:203:in `evalBlockBody'
      from Interpreted19Block.java:154:in `yield'
      from Block.java:130:in `yield'
      from RubyArray.java:1595:in `eachCommon'
      from RubyArray.java:1602:in `each'
      from RubyArray$i$0$0$each.gen:65535:in `call'
      from CachingCallSite.java:272:in `cacheAndCall'
      from CachingCallSite.java:114:in `callBlock'
      from CachingCallSite.java:123:in `callIter'
      from CallNoArgBlockNode.java:64:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:147:in `call'
      from DefaultMethod.java:163:in `call'
      from CachingCallSite.java:262:in `cacheAndCall'
      from CachingCallSite.java:105:in `call'
      from VCallNode.java:86: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 ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:282:in `cacheAndCall'
      from CachingCallSite.java:139:in `call'
      from CallSpecialArgNode.java:67: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 ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:282:in `cacheAndCall'
      from CachingCallSite.java:139:in `call'
      from FCallOneArgNode.java:36:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from RescueNode.java:216:in `executeBody'
      from RescueNode.java:120:in `interpretWithJavaExceptions'
      from RescueNode.java:110:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:282:in `cacheAndCall'
      from CachingCallSite.java:139:in `call'
      from CallOneArgNode.java:57:in `interpret'
      from NewlineNode.java:104:in `interpret'
      from BlockNode.java:71:in `interpret'
      from ASTInterpreter.java:75:in `INTERPRET_METHOD'
      from InterpretedMethod.java:190:in `call'
      from DefaultMethod.java:179:in `call'
      from CachingCallSite.java:282:in `cacheAndCall'
      from CachingCallSite.java:139:in `call'
      from /usr/local/rvm/rubies/jruby-1.6.2/bin/gem:25:in `chained_0_rescue_1$RUBY$SYNTHETIC_file_'
      from /usr/local/rvm/rubies/jruby-1.6.2/bin/gem:24:in `_file_'
      from /usr/local/rvm/rubies/jruby-1.6.2/bin/gem:-1:in `load'
      from Ruby.java:671:in `runScript'
      from Ruby.java:575:in `runNormally'
      from Ruby.java:424:in `runFromMain'
      from Main.java:278:in `doRunFromMain'
      from Main.java:198:in `internalRun'
      from Main.java:164:in `run'
      from Main.java:148:in `run'
      from Main.java:128:in `main'

        Issue Links

          Activity

          Hide
          Clemens Fuchslocher added a comment -

          Same problem here.

          1. JRuby 1.6.2 and LC_ALL=en_US.utf8

          Doesn't work:

          $ export LC_ALL=en_US.utf8
          
          $ which jruby
          /opt/jruby-1.6/bin/jruby
          
          $ jruby --1.9 --version
          jruby 1.6.2 (ruby-1.9.2-p136) (2011-05-23 e2ea975) (Java HotSpot(TM) Client VM 1.6.0_24) [linux-i386-java]
          
          $ jruby --1.9 -e "require 'java'; p java.lang.System.getProperty('file.encoding');"
          "UTF-8"
          
          $ which gem
          /opt/jruby-1.6/bin/gem
          
          $ gem --version
          1.5.1
          
          $ jruby --1.9 -S gem install polyamory
          StreamReader.java:98:in `checkPrintable': unacceptable character '' (0x87) special characters are not allowed
          in "<reader>", position 160
          	from StreamReader.java:191:in `update'
          	from StreamReader.java:63:in `<init>'
          	from PsychParser.java:101:in `parse'
          	from PsychParser$i$1$0$parse.gen:65535:in `call'
          	...
          	from CachingCallSite.java:139:in `call'
          	from /opt/jruby-1.6/bin/gem:21:in `chained_0_rescue_1$RUBY$SYNTHETIC__file__'
          	from /opt/jruby-1.6/bin/gem:20:in `__file__'
          	from /opt/jruby-1.6/bin/gem:-1:in `load'
          	from Ruby.java:671:in `runScript'
          	from Ruby.java:575:in `runNormally'
          	from Ruby.java:424:in `runFromMain'
          	from Main.java:278:in `doRunFromMain'
          	from Main.java:198:in `internalRun'
          	from Main.java:164:in `run'
          	from Main.java:148:in `run'
          	from Main.java:128:in `main'
          

          2. Ruby 1.9.2 and LC_ALL=en_US.utf8

          Does work:

          $ export LC_ALL=C
          
          $ which ruby
          /opt/ruby-1.9/bin/ruby
          
          $ ruby --version
          ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
          
          $ which gem
          /opt/ruby-1.9/bin/gem
          
          $ gem --version
          1.3.7
          
          $ gem install polyamory
          Successfully installed polyamory-0.0.4
          1 gem installed
          

          3. Ruby 1.9.2 and LC_ALL=C

          Doesn't work:

          $ export LC_ALL=C
          
          $ which ruby
          /opt/ruby-1.9/bin/ruby
          
          $ ruby --version
          ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
          
          $ which gem
          /opt/ruby-1.9/bin/gem
          
          $ gem --version
          1.3.7
          
          $ gem install polyamory
          ERROR:  While executing gem ... (ArgumentError)
              invalid byte sequence in US-ASCII
          
          Show
          Clemens Fuchslocher added a comment - Same problem here. 1. JRuby 1.6.2 and LC_ALL=en_US.utf8 Doesn't work: $ export LC_ALL=en_US.utf8 $ which jruby /opt/jruby-1.6/bin/jruby $ jruby --1.9 --version jruby 1.6.2 (ruby-1.9.2-p136) (2011-05-23 e2ea975) (Java HotSpot(TM) Client VM 1.6.0_24) [linux-i386-java] $ jruby --1.9 -e "require 'java'; p java.lang.System.getProperty('file.encoding');" "UTF-8" $ which gem /opt/jruby-1.6/bin/gem $ gem --version 1.5.1 $ jruby --1.9 -S gem install polyamory StreamReader.java:98:in `checkPrintable': unacceptable character '' (0x87) special characters are not allowed in "<reader>", position 160 from StreamReader.java:191:in `update' from StreamReader.java:63:in `<init>' from PsychParser.java:101:in `parse' from PsychParser$i$1$0$parse.gen:65535:in `call' ... from CachingCallSite.java:139:in `call' from /opt/jruby-1.6/bin/gem:21:in `chained_0_rescue_1$RUBY$SYNTHETIC__file__' from /opt/jruby-1.6/bin/gem:20:in `__file__' from /opt/jruby-1.6/bin/gem:-1:in `load' from Ruby.java:671:in `runScript' from Ruby.java:575:in `runNormally' from Ruby.java:424:in `runFromMain' from Main.java:278:in `doRunFromMain' from Main.java:198:in `internalRun' from Main.java:164:in `run' from Main.java:148:in `run' from Main.java:128:in `main' 2. Ruby 1.9.2 and LC_ALL=en_US.utf8 Does work: $ export LC_ALL=C $ which ruby /opt/ruby-1.9/bin/ruby $ ruby --version ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux] $ which gem /opt/ruby-1.9/bin/gem $ gem --version 1.3.7 $ gem install polyamory Successfully installed polyamory-0.0.4 1 gem installed 3. Ruby 1.9.2 and LC_ALL=C Doesn't work: $ export LC_ALL=C $ which ruby /opt/ruby-1.9/bin/ruby $ ruby --version ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux] $ which gem /opt/ruby-1.9/bin/gem $ gem --version 1.3.7 $ gem install polyamory ERROR: While executing gem ... (ArgumentError) invalid byte sequence in US-ASCII
          Hide
          Clemens Fuchslocher added a comment -

          Similar issue: JRUBY-5758.

          Show
          Clemens Fuchslocher added a comment - Similar issue: JRUBY-5758 .
          Hide
          Thomas E Enebo added a comment -

          Resolving this since I seem to be able to install polyamory in 1.9 mode now.

          Show
          Thomas E Enebo added a comment - Resolving this since I seem to be able to install polyamory in 1.9 mode now.

            People

            • Assignee:
              Thomas E Enebo
              Reporter:
              Robert Rouse
            • Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: