Network Server Gives NPE if SQLException has null arguments (e.g. for ERROR
XBM0H)
------------------------------------------------------------------------------------
Key: DERBY-128
URL: http://issues.apache.org/jira/browse/DERBY-128
Project: Derby
Type: Bug
Components: Network Server
Versions: 10.0.2.1
Environment: Linux
Reporter: Kathey Marsden
Priority: Minor
Network server
Network Server throws an NPE because one of the arguments of the SQLException
is null. It shouldn't do so.
To reproduce try to create a database in the root directory on Linux. Do not
run in security manager. The trace below came from an extra '/' in the url in
NSinSameJVM.java
The issues are:
1) Network Server throws an NPE because one of the arguments of the
SQLException is null in this code. It shouldn't do so.
// arguments are variable part of a message
Object[] args = ce.getArguments();
for (int i = 0; args != null && i < args.length; i++)
sqlerrmc += args[i].toString() + separator;
2) This exception seems to have null arguments which doesn't seem right.
ERROR XBM0H: Directory /NSinSameJVMTestDB cannot be created.
ERROR XBM0H: Directory /NSinSameJVMTestDB cannot be created.
at
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:322)
at
org.apache.derby.impl.services.monitor.PersistentServiceImpl$8.run(PersistentServiceImpl.java:668)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.derby.impl.services.monitor.PersistentServiceImpl.createServiceRoot(PersistentServiceImpl.java:632)
at
org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1756)
at
org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1018)
at
org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:578)
at
org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:1504)
at
org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:215)
at
org.apache.derby.impl.jdbc.EmbedConnection20.<init>(EmbedConnection20.java:56)
at
org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:72)
at
org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java:73)
at org.apache.derby.jdbc.Driver169.connect(Driver169.java:175)
at
org.apache.derby.impl.drda.Database.makeConnection(Database.java:245)
at
org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1160)
at
org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1138)
at
org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:2613)
at
org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1001)
at
org.apache.derby.impl.drda.DRDAConnThread.exchangeServerAttributes(DRDAConnThread.java:950)
at
org.apache.derby.impl.drda.DRDAConnThread.sessionInitialState(DRDAConnThread.java:563)
at
org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:219)
Cleanup action completed
2005-01-21 01:12:12.794 GMT Thread[DRDAConnThread_2,5,derby.daemons] (DATABASE
= /NSinSameJVMTestDB), (DRDAID = {2}), Failed to create database
'/NSinSameJVMTestDB', see the next exception for details.
2005-01-21 01:12:12.795 GMT Thread[DRDAConnThread_2,5,derby.daemons] (DATABASE
= /NSinSameJVMTestDB), (DRDAID = {2}), Directory /NSinSameJVMTestDB cannot be
created.
2005-01-21 01:12:12.816 GMT Thread[DRDAConnThread_2,5,derby.daemons] (DATABASE
= /NSinSameJVMTestDB), (DRDAID = NF000001.A9FB-4124733202448020360{2}), Failed
to create database '/NSinSameJVMTestDB', see the next exception for details.
2005-01-21 01:12:12.816 GMT Thread[DRDAConnThread_2,5,derby.daemons] (DATABASE
= /NSinSameJVMTestDB), (DRDAID = NF000001.A9FB-4124733202448020360{2}), null
null
java.lang.NullPointerException
at
org.apache.derby.impl.drda.DRDAConnThread.writeSQLCAGRP(DRDAConnThread.java:5076)
at
org.apache.derby.impl.drda.DRDAConnThread.writeSQLCARD(DRDAConnThread.java:4882)
at
org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1042)
at
org.apache.derby.impl.drda.DRDAConnThread.exchangeServerAttributes(DRDAConnThread.java:950)
at
org.apache.derby.impl.drda.DRDAConnThread.sessionInitialState(DRDAConnThread.java:563)
at
org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:219)
null
java.lang.NullPointerException
at
org.apache.derby.impl.drda.DRDAConnThread.writeSQLCAGRP(DRDAConnThread.java:5076)
at
org.apache.derby.impl.drda.DRDAConnThread.writeSQLCARD(DRDAConnThread.java:4882)
at
org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1042)
at
org.apache.derby.impl.drda.DRDAConnThread.exchangeServerAttributes(DRDAConnThread.java:950)
at
org.apache.derby.impl.drda.DRDAConnThread.sessionInitialState(DRDAConnThread.java:563)
at
org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:219)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira