On 4/4/2012 12:43 PM, Brandon L. Duncan wrote:
Peter, definitely using the 10.8.2.2 jars. The scenario, which I'm in
the process of parsing down to share on JIRA is a single shell script
called from qsh to start the network server, run ij, and finally
shutdown the network server. The same classpath is shared through all
three java calls.
Looking at the stack trace. I think we are losing the initial boot
exception that leads to the shutdown because of the NullPointerException.
As a quick hack to see what the exception is you can put a
t.printStackTrace() about line 1829 of BaseMonitor.
} catch (Throwable t) {
.....
if (ts != null) {
ts.shutdown(); < It is in here that the NPE occurs.
synchronized (this) {
services.remove(ts);
}
I'd check the database and make sure it is consistent [1] and also if
you have a reproduction that you cannot share, perform JIT diagnostics.
First disable JIT with -Xint and see if it still reproduces. Hopefully
your reproduction starts with a new database each time.
I think you should go ahead and file the Jira and include the derby.log,
the jvm information and as much information as you can and add the
reproduction once you get it to a state where you can attach.
Thanks
Kathey
[1] http://wiki.apache.org/db-derby/DatabaseConsistencyCheck
> action starting
> java.lang.NullPointerException
> at
>
org.apache.derby.impl.store.raw.data.BaseDataFileFactory.stop(BaseDataFileFactory.java:541)
> at
>
org.apache.derby.impl.services.monitor.TopService.stop(TopService.java:443)
> at
>
org.apache.derby.impl.services.monitor.TopService.shutdown(TopService.java:394)
> at
>
org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1845)
> at
>
org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(BaseMonitor.java:1682)
> at
>
org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(BaseMonitor.java:1560)
> at
>
org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(BaseMonitor.java:979)
> at
>
org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Monitor.java:550)
> at
>
org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:2697)
> at
>
org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:385)
> at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:70)
> at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:248)
> at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:126)
> at org.apache.derby.impl.drda.Database.makeConnection(Database.java:257)
> at
>
org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1447)
> at
>
org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1397)
> at
>
org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3248)
> at
>
org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1177)
> at
>
org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:982)
> at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:295)