Lenny Marks
2008-Dec-08 21:31 UTC
[rspec-users] ArgumentError mystery with jruby/rspec-1.1.11
I just got bitten by a strange issue with rspec-1.1.11 and jruby 1.1.3-1.1.6RC1. I''d love to know what the problem was if anyone has any ideas. It''s almost as if, rspec didn''t like something about this particular class since substituting others worked fine. It does work with Rspec edge so I guess its not too important. Hopefully if anyone else runs into this they''ll hit upon this. -lenny # reproduce.rb require ''./spring.jar'' describe "test with spring" do it "should not raise ArgumentError" do Java ::org.springframework.context.support.ClassPathXmlApplicationContext # line 7 end end > jruby-1.1.3/bin/jruby -v -S spec -v jruby 1.1.3 (ruby 1.8.6 patchlevel 114) (2008-12-08 rev 6586) [x86_64- java] rspec 1.1.11 > jruby-1.1.3/bin/jruby -S spec -fs -b reproduce.rb test with spring - should not raise ArgumentError (ERROR - 1) 1) ArgumentError in ''test with spring should not raise ArgumentError'' ArgumentError /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/extensions/ main.rb:23:in `describe'' /home/jis/compsvc/lenny/tmp/x/./reproduce.rb:7: /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ example_methods.rb:81:in `instance_eval'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ example_methods.rb:81:in `eval_block'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ example_methods.rb:15:in `execute'' /Users/Shared/eds_test/share/jruby-1.1.3/lib/ruby/1.8/timeout.rb:48:in `timeout'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ example_methods.rb:12:in `execute'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ example_group_methods.rb:245:in `execute_examples'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ example_group_methods.rb:244:in `each'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ example_group_methods.rb:244:in `execute_examples'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ example_group_methods.rb:141:in `run'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ example_group_runner.rb:22:in `run'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ example_group_runner.rb:21:in `each'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ example_group_runner.rb:21:in `run'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ options.rb:115:in `run_examples'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ command_line.rb:10:in `run'' /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/bin/spec:4: /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/bin/spec:19:in `load'' /Users/Shared/eds_test/share/jruby-1.1.3/bin/spec:19: /jruby-1.1.3/bin/jruby -v rspec/bin/spec -v jruby 1.1.3 (ruby 1.8.6 patchlevel 114) (2008-12-08 rev 6586) [x86_64- java] rspec 1.1.11.1 > jruby-1.1.3/bin/jruby rspec/bin/spec -fs reproduce.rb test with spring - should not raise ArgumentError Finished in 0.329 seconds 1 example, 0 failures
Arthur Smith
2009-Mar-04 19:57 UTC
[rspec-users] ArgumentError mystery with jruby/rspec-1.1.11
We''ve seen this behavior again, this time with rspec-1.1.12 and jruby 1.2.0RC1; the common factors seem to be: (1) jruby (2) rspec 1.1.11 or 1.1.12 (3) naming a java class with the string ''context'' or ''Context'' in its name. In this case the bit of ruby causing trouble was: SecurityContextHolder = Java::org.acegisecurity.context.SecurityContextHolder And running ''jruby script/spec -b ...'' gave: ArgumentError in ''ManuscriptPublishedController check_unauthorized should respond with unauthorized for create if user does not have privilege'' ArgumentError [...]/jruby-1.2.0RC1/lib/ruby/gems/1.8/gems/rspec-1.1.12/lib/spec/example/example_group_factory.rb:54:in `create_example_group'' [...]/jruby-1.2.0RC1/lib/ruby/gems/1.8/gems/rspec-1.1.12/lib/spec/dsl/main.rb:25:in `describe'' [...] Replacing the above SecurityContextHolder definition with an import: import ''org.acegisecurity.context.SecurityContextHolder'' fixed the errors. Any explanations out there? Arthur Smith Lenny Marks wrote:> I just got bitten by a strange issue with rspec-1.1.11 and jruby > 1.1.3-1.1.6RC1. I''d love to know what the problem was if anyone has > any ideas. It''s almost as if, rspec didn''t like something about this > particular class since substituting others worked fine. It does work > with Rspec edge so I guess its not too important. Hopefully if anyone > else runs into this they''ll hit upon this. > > -lenny > > # reproduce.rb > > require ''./spring.jar'' > > describe "test with spring" do > > it "should not raise ArgumentError" do > > Java::org.springframework.context.support.ClassPathXmlApplicationContext > # line 7 > end > > end > > > jruby-1.1.3/bin/jruby -v -S spec -v > jruby 1.1.3 (ruby 1.8.6 patchlevel 114) (2008-12-08 rev 6586) > [x86_64-java] > rspec 1.1.11 > > > > jruby-1.1.3/bin/jruby -S spec -fs -b reproduce.rb > > test with spring > - should not raise ArgumentError (ERROR - 1) > > 1) > ArgumentError in ''test with spring should not raise ArgumentError'' > ArgumentError > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/extensions/main.rb:23:in > `describe'' > /home/jis/compsvc/lenny/tmp/x/./reproduce.rb:7: > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/example_methods.rb:81:in > `instance_eval'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/example_methods.rb:81:in > `eval_block'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/example_methods.rb:15:in > `execute'' > /Users/Shared/eds_test/share/jruby-1.1.3/lib/ruby/1.8/timeout.rb:48:in > `timeout'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/example_methods.rb:12:in > `execute'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/example_group_methods.rb:245:in > `execute_examples'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/example_group_methods.rb:244:in > `each'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/example_group_methods.rb:244:in > `execute_examples'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/example_group_methods.rb:141:in > `run'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/example_group_runner.rb:22:in > `run'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/example_group_runner.rb:21:in > `each'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/example_group_runner.rb:21:in > `run'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/options.rb:115:in > `run_examples'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/command_line.rb:10:in > `run'' > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/bin/spec:4: > /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/bin/spec:19:in `load'' > /Users/Shared/eds_test/share/jruby-1.1.3/bin/spec:19: > > > /jruby-1.1.3/bin/jruby -v rspec/bin/spec -v > jruby 1.1.3 (ruby 1.8.6 patchlevel 114) (2008-12-08 rev 6586) > [x86_64-java] > rspec 1.1.11.1 > > > jruby-1.1.3/bin/jruby rspec/bin/spec -fs reproduce.rb > > test with spring > - should not raise ArgumentError > > Finished in 0.329 seconds > > 1 example, 0 failures > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > >
Lenny Marks
2009-Mar-10 15:30 UTC
[rspec-users] ArgumentError mystery with jruby/rspec-1.1.11
It seems this is actually related to the java package name containing ''context''. I''ve posted a rspec bug for this along with a simple case to demonstrate. I realize this may wind up kicked over to the JRuby people... http://rspec.lighthouseapp.com/projects/5645-rspec/tickets/728-rspecjruby-gives-argumenterror-when-java-class-with-context-in-package-name-is-referenced -lenny On Mar 4, 2009, at 2:57 PM, Arthur Smith wrote:> We''ve seen this behavior again, this time with rspec-1.1.12 and > jruby 1.2.0RC1; the common factors seem to be: > > (1) jruby > (2) rspec 1.1.11 or 1.1.12 > (3) naming a java class with the string ''context'' or ''Context'' in > its name. > > In this case the bit of ruby causing trouble was: > > SecurityContextHolder = > Java::org.acegisecurity.context.SecurityContextHolder > > And running ''jruby script/spec -b ...'' gave: > > ArgumentError in ''ManuscriptPublishedController check_unauthorized > should respond with unauthorized for create if user does not have > privilege'' > ArgumentError > [...]/jruby-1.2.0RC1/lib/ruby/gems/1.8/gems/rspec-1.1.12/lib/spec/ > example/example_group_factory.rb:54:in `create_example_group'' > [...]/jruby-1.2.0RC1/lib/ruby/gems/1.8/gems/rspec-1.1.12/lib/spec/ > dsl/main.rb:25:in `describe'' > [...] > > Replacing the above SecurityContextHolder definition with an import: > > import ''org.acegisecurity.context.SecurityContextHolder'' > > fixed the errors. Any explanations out there? > > Arthur Smith > > Lenny Marks wrote: >> I just got bitten by a strange issue with rspec-1.1.11 and jruby >> 1.1.3-1.1.6RC1. I''d love to know what the problem was if anyone has >> any ideas. It''s almost as if, rspec didn''t like something about >> this particular class since substituting others worked fine. It >> does work with Rspec edge so I guess its not too important. >> Hopefully if anyone else runs into this they''ll hit upon this. >> >> -lenny >> >> # reproduce.rb >> >> require ''./spring.jar'' >> >> describe "test with spring" do >> >> it "should not raise ArgumentError" do >> >> Java >> ::org >> .springframework.context.support.ClassPathXmlApplicationContext # >> line 7 >> end >> >> end >> >> > jruby-1.1.3/bin/jruby -v -S spec -v >> jruby 1.1.3 (ruby 1.8.6 patchlevel 114) (2008-12-08 rev 6586) >> [x86_64-java] >> rspec 1.1.11 >> >> >> > jruby-1.1.3/bin/jruby -S spec -fs -b reproduce.rb >> >> test with spring >> - should not raise ArgumentError (ERROR - 1) >> >> 1) >> ArgumentError in ''test with spring should not raise ArgumentError'' >> ArgumentError >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/extensions/ >> main.rb:23:in `describe'' >> /home/jis/compsvc/lenny/tmp/x/./reproduce.rb:7: >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ >> example_methods.rb:81:in `instance_eval'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ >> example_methods.rb:81:in `eval_block'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ >> example_methods.rb:15:in `execute'' >> /Users/Shared/eds_test/share/jruby-1.1.3/lib/ruby/1.8/timeout.rb: >> 48:in `timeout'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ >> example_methods.rb:12:in `execute'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ >> example_group_methods.rb:245:in `execute_examples'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ >> example_group_methods.rb:244:in `each'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ >> example_group_methods.rb:244:in `execute_examples'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/example/ >> example_group_methods.rb:141:in `run'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ >> example_group_runner.rb:22:in `run'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ >> example_group_runner.rb:21:in `each'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ >> example_group_runner.rb:21:in `run'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ >> options.rb:115:in `run_examples'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/lib/spec/runner/ >> command_line.rb:10:in `run'' >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/bin/spec:4: >> /Users/Shared/RubyGems/1.8/gems/rspec-1.1.11/bin/spec:19:in `load'' >> /Users/Shared/eds_test/share/jruby-1.1.3/bin/spec:19: >> >> >> /jruby-1.1.3/bin/jruby -v rspec/bin/spec -v >> jruby 1.1.3 (ruby 1.8.6 patchlevel 114) (2008-12-08 rev 6586) >> [x86_64-java] >> rspec 1.1.11.1 >> >> > jruby-1.1.3/bin/jruby rspec/bin/spec -fs reproduce.rb >> >> test with spring >> - should not raise ArgumentError >> >> Finished in 0.329 seconds >> >> 1 example, 0 failures >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> >> > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >