NullPointerException in ScriptingContainer.setCurrentDirectory()
----------------------------------------------------------------
Key: JRUBY-5453
URL: http://jira.codehaus.org/browse/JRUBY-5453
Project: JRuby
Issue Type: Bug
Components: Embedding
Environment: latest JRuby 1.6 code in master branch as of February 5,
running on OS X 10.6.6
Reporter: Adam Murray
The following test fails:
public void testSetCurrentDirectoryAfterMinimalSetup() {
String directory = System.getProperty( "user.home" );
ScriptingContainer instance = new ScriptingContainer();
instance.setCurrentDirectory(directory);
assertEquals(directory, instance.getCurrentDirectory());
}
with java.lang.NullPointerException
at
org.jruby.embed.internal.SingletonLocalContextProvider.isRuntimeInitialized(SingletonLocalContextProvider.java:83)
at
org.jruby.embed.ScriptingContainer.setCurrentDirectory(ScriptingContainer.java:585)
at
org.jruby.test.TestScriptingContainer.testSetCurrentDirectoryAfterMinimalSetup(TestScriptingContainer.java:14)
I was able to fix it by changing
SingletonLocalContextProvider.isRuntimeInitialized() to:
public boolean isRuntimeInitialized() {
if (localContext == null) {
localContext = getInstance();
}
return localContext.initialized;
}
My change was to add the if condition, which matches the way a null
localContext is handled in the other methods in this class.
I'll submit a pull requests for this on github, but I was a little confused by
the unit test situation with ScriptingContainer. I found tests under
test/org/jruby/embed, but they didn't seem to be running as part of the ant
test tasks. I guess it might be because those tests use the "new style" JUnit
annotations, but MainTestSuite still does things the "old way". So I guess some
adjustments need to be made to get the tests in the embed package hooked up to
the main test suite. Instead of attempting to address this situation, I simply
added a new TestCase subclass under test/org/jruby/test/
--
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