[rspec-users] ArgumentError mystery with jruby/rspec-1.1.11

Lenny Marks lenny at aps.org
Tue Mar 10 11:30:02 EDT 2009


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
>



More information about the rspec-users mailing list