Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-128

Network Server Gives NPE if SQLException has null arguments (e.g. for ERROR XBM0H)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 10.0.2.1
    • 10.1.2.1
    • Network Server
    • None
    • Linux

    Description

      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)

      Attachments

        1. derby-128.178332.diff
          1 kB
        2. derby-128.178332.stat
          0.1 kB
        3. derbyall_report.txt
          13 kB

        Issue Links

          Activity

            People

              dyret Dyre Tjeldvoll
              kmarsden Katherine Marsden
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: