You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by km...@apache.org on 2011/11/29 02:36:14 UTC

svn commit: r1207729 - in /db/derby/code/trunk/java: engine/org/apache/derby/impl/io/ engine/org/apache/derby/impl/services/monitor/ engine/org/apache/derby/io/ testing/org/apache/derbyTesting/functionTests/util/corruptio/

Author: kmarsden
Date: Tue Nov 29 01:36:12 2011
New Revision: 1207729

URL: http://svn.apache.org/viewvc?rev=1207729&view=rev
Log:
DERBY-5096 DisconnectException: "Connection was refused because the database DB was not found" when creating db for first time

Patch adjusts the canonicalName after mkdirs() if it does not match getCanonicalPAth()



Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/io/BaseStorageFactory.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/io/VFMemoryStorageFactory.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java
    db/derby/code/trunk/java/engine/org/apache/derby/io/StorageFactory.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/corruptio/CorruptBaseStorageFactory.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/io/BaseStorageFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/io/BaseStorageFactory.java?rev=1207729&r1=1207728&r2=1207729&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/io/BaseStorageFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/io/BaseStorageFactory.java Tue Nov 29 01:36:12 2011
@@ -111,6 +111,15 @@ abstract class BaseStorageFactory implem
     }
     
     /**
+     * Set the canonicalName. May need adjustment due to DERBY-5096
+     * 
+     * @param name uniquely identifiable name for this database
+     */
+    public void setCanonicalName(String name) {
+       canonicalName = name;
+    }
+    
+    /**
      * Construct a StorageFile from a path name.
      *
      * @param path The path name of the file

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/io/VFMemoryStorageFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/io/VFMemoryStorageFactory.java?rev=1207729&r1=1207728&r2=1207729&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/io/VFMemoryStorageFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/io/VFMemoryStorageFactory.java Tue Nov 29 01:36:12 2011
@@ -190,6 +190,15 @@ public class VFMemoryStorageFactory
     }
 
     /**
+     * Set the canonicalName. May need adjustment due to DERBY-5096
+     * 
+     * @param name uniquely identifiable name for this database
+     */
+    public void setCanonicalName(String name) {
+       canonicalName = name;
+    }
+    
+    /**
      * Returns a handle to the specific storage file.
      *
      * @param path the path of the file or directory

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java?rev=1207729&r1=1207728&r2=1207729&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java Tue Nov 29 01:36:12 2011
@@ -760,7 +760,12 @@ final class StorageFactoryService implem
                             if (serviceDirectory.mkdirs())
                             {
                                 serviceDirectory.limitAccessToOwner();
-
+                                // DERBY-5096 On iseries, the storageFactory canonicalName may need to be adjusted
+                                // for casing after the directory is created.
+                                String serviceDirCanonicalPath = serviceDirectory.getCanonicalPath();
+                                if (storageFactory.getCanonicalName() != serviceDirCanonicalPath) {
+                                    storageFactory.setCanonicalName(serviceDirCanonicalPath);
+                                }
                                 try
                                 {
                                     return storageFactory.getCanonicalName();

Modified: db/derby/code/trunk/java/engine/org/apache/derby/io/StorageFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/io/StorageFactory.java?rev=1207729&r1=1207728&r2=1207729&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/io/StorageFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/io/StorageFactory.java Tue Nov 29 01:36:12 2011
@@ -231,4 +231,12 @@ public interface StorageFactory
      */
     public StorageFile createTemporaryFile (String prefix, String suffix)
                                                             throws IOException;
+    
+    /**
+     * Set the canonicalName. May need adjustment due to DERBY-5096
+     * 
+     * @param name uniquely identifiable name for this database
+     */
+    public void setCanonicalName(String name);
+    
 }

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/corruptio/CorruptBaseStorageFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/corruptio/CorruptBaseStorageFactory.java?rev=1207729&r1=1207728&r2=1207729&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/corruptio/CorruptBaseStorageFactory.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/corruptio/CorruptBaseStorageFactory.java Tue Nov 29 01:36:12 2011
@@ -118,6 +118,15 @@ abstract class CorruptBaseStorageFactory
     }
     
     /**
+     * Set the canonicalName. May need adjustment due to DERBY-5096
+     * 
+     * @param name uniquely identifiable name for this database
+     */
+    public void setCanonicalName(String name) {
+       realStorageFactory.setCanonicalName(name);
+    }
+    
+    /**
      * Construct a StorageFile from a path name.
      *
      * @param path The path name of the file