Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: JRuby 1.6.7, JRuby 1.7.0.pre1
-
Fix Version/s: JRuby 1.6.7
-
Component/s: Ruby 1.9.2
-
Labels:None
-
Number of attachments :
Description
Gems no longer build correctly in 1.9 mode. This appears to be a regression from 1.6.6, and only master and jruby-1_6 branches exhibit it.
If you build a gem in 1.9 mode and try to install it, you get an error like this:
system ~/projects/jsr166y-gem $ jruby gem install jsr166y-20120125.gem
ERROR: While executing gem ... (Errno::EISDIR)
Is a directory - Is a directory
The problem appears to be related to how it builds the archive. With --debug, we get:
system ~/projects/jsr166y-gem $ gem --debug install jsr166y-20120125.gem
ERROR: While executing gem ... (Errno::EISDIR)
Is a directory - Is a directory
org/jruby/RubyFile.java:466:in `initialize'
org/jruby/RubyIO.java:1088:in `open'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/installer.rb:585:in `extract_files'
org/jruby/RubyArray.java:1610:in `each'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/installer.rb:565:in `extract_files'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/installer.rb:179:in `install'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/dependency_installer.rb:297:in `install'
org/jruby/RubyArray.java:1610:in `each'
org/jruby/RubyEnumerable.java:933:in `each_with_index'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/dependency_installer.rb:270:in `install'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/commands/install_command.rb:121:in `execute'
org/jruby/RubyArray.java:1610:in `each'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/commands/install_command.rb:115:in `execute'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/command.rb:278:in `invoke'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/command_manager.rb:147:in `process_args'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/command_manager.rb:117:in `run'
/Users/headius/projects/jruby/lib/ruby/shared/rubygems/gem_runner.rb:65:in `run'
/Users/headius/projects/jruby/bin/gem:21:in `(root)'
Exception `Gem::SystemExitException' at /Users/headius/projects/jruby/lib/ruby/shared/rubygems/user_interaction.rb:332 - Exiting RubyGems with exit_code 1
Logging at that particular line the path it's trying to open:
system ~/projects/jruby $ gem install ../jsr166y-gem/jsr166y-20120125.gem "/Users/headius/projects/jruby/lib/ruby/gems/shared/gems/jsr166y-20120125/lib/jsr166y.jar" "/Users/headius/projects/jruby/lib/ruby/gems/shared/gems/jsr166y-20120125/\u0015y\u000Eå=£\u0088q\u0099¡\u0000Ù\u0015\u008EËà¡ð&%IE\u009CÆ- )…\u0010õ(\u0015\r¨\u0010\u008D\u0088\u008B&4\u0089½8'\u009A1.\u000Eà²8\bW´â\u009A8\u0084wD\eÞ\u0015\u0087ñ¾8\u0082\u000FÅQÌ\u008Bv\\\u0017\u001DøTtbQ\u001CÃ×â8¾\u0015'ð\u009D8\u0089ïE7~\u0014½øY\u009CÂ]�/Ø\u0019_Oú\u0013ëÆð½9\u0019Bà\"\u009Cs³3i\u0087ûõ\u007F\u008Ab\u0018MôÊÅ `\v4\u00140ûôz\u0016p)\u0090n«\u0094- ÑW\u009D××ð\\ZÊeDk¶ *¡\u0093/�"
The path entries in the archive appear to be corrupt.
Workaround: Building the gem in 1.8 mode produces good gems that are installable in either 1.8 or 1.9 mode.
This issue seems to be resolved in jruby-1_6 branch a9e0ec1.