Hi Colm,

I agree with Bryan that it appears that this test has not been run since we introduced the BOOLEAN datatype five years ago in release 10.7.1.1. And I agree with Mike that the real problem seems to be that the correct Java security permissions haven't been granted to the Derby engine. The test doesn't appear to be designed to be run under a Java Security Manager. I say this because there is no doPrivileged block wrapping the check for the existence of the database directory at line 69. Here's a theory about what's going on:

1) The test itself is running on a client-side VM which is not governed by a SecurityManager.

2) But the IDE is running the engine in a separate server VM under a SecurityManager.

3) The server-side security policy is missing a permission.

It may be that your IDE hasn't been adjusted to account for the new permission which must be granted to derby.jar when you use Derby 10.12.1.1:

permission org.apache.derby.security.SystemPermission "engine", "usederbyinternals";

Hope this helps,
-Rick


On 12/16/15 12:03 PM, Colm McHugh wrote:
Hi Derby devs,

I am getting the exception below when running RunOptimizerTest (in org.apache.derbyTesting.system.optimizer). My goal is to step through the query compilation code to understand how it works. I am using Java 1.8. I am using netbeans 8.0.1 and the class path includes derbyrun.jar and derbyTesting.jar. Any help appreciated.

run:
Running test with url jdbc:derby:testdb;create=true
Initializing db ...
SQL Exception :java.sql.SQLException: XJ041.C : [0] testdb
java.sql.SQLException: XJ041.C : [0] testdb
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:115) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:141)
at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:255)
at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2656) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435)
at org.apache.derby.jdbc.InternalDriver$1.run(InternalDriver.java:663)
at org.apache.derby.jdbc.InternalDriver$1.run(
InternalDriver.java:659)

========================= R E S U L T S =========================
at java.security.AccessController.doPrivileged(Native Method)

at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:657)
at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:306)
at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:963)
at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:147)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at org.apache.derbyTesting.system.optimizer.RunOptimizerTest.main(RunOptimizerTest.java:94)
Caused by: ERROR XJ041: XJ041.C : [0] testdb
at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:290) at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:170) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:75)
... 14 more
Caused by: ERROR XBM01: XBM01.D
at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:290) at org.apache.derby.iapi.services.monitor.Monitor.exceptionStartingModule(Monitor.java:743) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1841) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1006) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4062)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4056) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2649)
... 11 more
Caused by: java.lang.NullPointerException
at org.apache.derby.impl.store.raw.log.LogToFile.writeControlFile(LogToFile.java:2411)
at org.apache.derby.impl.store.raw.log.LogToFile.boot(LogToFile.java:3383)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1986) at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:334) at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:537) at org.apache.derby.impl.services.monitor.FileMonitor.startModule(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:460) at org.apache.derby.impl.store.raw.data.BaseDataFileFactory$10.run(BaseDataFileFactory.java:3058)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.bootServiceModule(BaseDataFileFactory.java:3052) at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.bootLogFactory(BaseDataFileFactory.java:1811) at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.setRawStoreFactory(BaseDataFileFactory.java:1287)
at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java:227)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1986) at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:334) at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:537) at org.apache.derby.impl.services.monitor.FileMonitor.startModule(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:460) at org.apache.derby.impl.store.access.RAMAccessManager$5.run(RAMAccessManager.java:1393)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.store.access.RAMAccessManager.bootServiceModule(RAMAccessManager.java:1387) at org.apache.derby.impl.store.access.RAMAccessManager.boot(RAMAccessManager.java:1039) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1986) at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:334) at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:537) at org.apache.derby.impl.services.monitor.FileMonitor.startModule(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java:460)
at org.apache.derby.impl.db.BasicDatabase$5.run(BasicDatabase.java:1001)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.db.BasicDatabase.bootServiceModule(BasicDatabase.java:995) at org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java:777)
at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java:186)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1986) at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:334) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1814)
... 18 more
BUILD SUCCESSFUL (total time: 2 seconds)

Reply via email to