[ 
https://issues.apache.org/jira/browse/DERBY-5916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13469130#comment-13469130
 ] 

Mamta A. Satoor commented on DERBY-5916:
----------------------------------------

I want to clarify that removeTempDirectory() call from 
BaseDataFileFactory.stop() will not result into a NPE even if storageFactory is 
null. This is because removeTempDirectory() checks for the nullability of 
storageFactory. Part of code in BaseDataFileFactory.stop() is as follows
       removeTempDirectory();

       if (isReadOnly())                // do enough to close all files, then 
return 
       {
        storageFactory.shutdown();
        return;
       }

      // re-enable stub removal until a better method can be found.
     // only remove stub if caches are cleaned
    if (removeStubsOK && OK)    
        removeStubs();

With this existing code in trunk, we can run into NPE if storageFactory is null 
and isReadOnly() returns true. If isReadOnly() returns false, and next if 
condition is true, then removeStubs() can run into NPE because we do not check 
for storageFactory nullability.

So, in addition to nullabiliuty check before calling storageFactory,shutdown(), 
I will also add a nullability check inside removeStubs().

                
> java.lang.NullPointerException 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.stop() connecting to 
> network server
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5916
>                 URL: https://issues.apache.org/jira/browse/DERBY-5916
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>            Reporter: Kathey Marsden
>            Assignee: Mamta A. Satoor
>              Labels: derby_triage10_10
>         Attachments: DERBY5916_patch1_diff.txt
>
>
>  I got a report of the exception below trying to connect to  database with 
> absolute path and network server and the database name attribute.  I haven't 
> gotten  information  on the derby version or  platform, Below is the url I 
> received with some characters replaced.
> ij> connect 
> 'jdbc:derby://localhost:1527/;databaseName=/home/uxxxx/Installs/hxxx_ext/mxxxxxxxx_db;create=true'
>  ;
>  java.lang.NullPointerException
>         at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.stop(Unknown Source)
>         at org.apache.derby.impl.services.monitor.TopService.stop(Unknown 
> Source)
>         at org.apache.derby.impl.services.monitor.TopService.shutdown(Unknown 
> Source)
>         at 
> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
>         at 
> org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unknown
>  Source)
>         at 
> org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(Unknown
>  Source)
>         at 
> org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(Unknown
>  Source)
>         at 
> org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
>         at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown 
> Source)
>         at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
>         at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
>         at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown 
> Source)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown 
> Source)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown 
> Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
> Cleanup action completed
> 2012-08-31 22:41:09.216 GMT Thread[DRDAConnThread_10,5,main] (DATABASE = ), 
> (DRDAID = {1}), Java exception: ': java.lang.NullPointerException'.
> I wanted to go ahead and file it even without much information as I noticed 
> there was a similar issue reported on the list but never filed:
> http://old.nabble.com/Random-DRDA-Error-on-IBM-J9-JVM-td33532717.html#a33532717

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to