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 rh...@apache.org on 2011/04/13 15:34:11 UTC
svn commit: r1091774 - in /db/derby/code/branches/10.8/java:
engine/org/apache/derby/impl/services/monitor/ engine/org/apache/derby/loc/
shared/org/apache/derby/shared/common/reference/
testing/org/apache/derbyTesting/functionTests/tests/lang/
Author: rhillegas
Date: Wed Apr 13 13:34:11 2011
New Revision: 1091774
URL: http://svn.apache.org/viewvc?rev=1091774&view=rev
Log:
DERBY-4589: Port 1091772 from trunk to 10.8 branch.
Added:
db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/HalfCreatedDatabaseTest.java
- copied unchanged from r1091772, db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/HalfCreatedDatabaseTest.java
Modified:
db/derby/code/branches/10.8/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java
db/derby/code/branches/10.8/java/engine/org/apache/derby/loc/messages.xml
db/derby/code/branches/10.8/java/shared/org/apache/derby/shared/common/reference/SQLState.java
db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java
db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
Modified: db/derby/code/branches/10.8/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java?rev=1091774&r1=1091773&r2=1091774&view=diff
==============================================================================
--- db/derby/code/branches/10.8/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java (original)
+++ db/derby/code/branches/10.8/java/engine/org/apache/derby/impl/services/monitor/StorageFactoryService.java Wed Apr 13 13:34:11 2011
@@ -659,8 +659,11 @@ final class StorageFactoryService implem
getDirectoryPath( name));
}
else
+ {
+ vetService( storageFactory, name );
throw StandardException.newException(SQLState.SERVICE_DIRECTORY_EXISTS_ERROR,
getDirectoryPath( name));
+ }
}
if (serviceDirectory.mkdirs())
@@ -693,6 +696,22 @@ final class StorageFactoryService implem
throw StandardException.newException(SQLState.SERVICE_DIRECTORY_CREATE_ERROR, t, name);
} // end of createServiceRoot
+ /**
+ Verify that the service directory looks ok before objecting that the database
+ already exists.
+ */
+ private void vetService( StorageFactory storageFactory, String serviceName ) throws StandardException
+ {
+ // check for existence of service.properties descriptor file
+ StorageFile service_properties = storageFactory.newStorageFile( PersistentService.PROPERTIES_NAME );
+
+ if ( !service_properties.exists() )
+ {
+ throw StandardException.newException
+ ( SQLState.MISSING_SERVICE_PROPERTIES, serviceName, PersistentService.PROPERTIES_NAME );
+ }
+ }
+
private String getDirectoryPath( String name)
{
StringBuffer sb = new StringBuffer();
Modified: db/derby/code/branches/10.8/java/engine/org/apache/derby/loc/messages.xml
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8/java/engine/org/apache/derby/loc/messages.xml?rev=1091774&r1=1091773&r2=1091774&view=diff
==============================================================================
--- db/derby/code/branches/10.8/java/engine/org/apache/derby/loc/messages.xml (original)
+++ db/derby/code/branches/10.8/java/engine/org/apache/derby/loc/messages.xml Wed Apr 13 13:34:11 2011
@@ -3691,6 +3691,13 @@ Guide.
</msg>
<msg>
+ <name>XBM0A.D</name>
+ <text>The database directory '{0}' exists. However, it does not contain the expected '{1}' file. Perhaps Derby was brought down in the middle of creating this database. You may want to delete this directory and try creating the database again.</text>
+ <arg>directoryName</arg>
+ <arg>servicePropertiesName</arg>
+ </msg>
+
+ <msg>
<name>XBM0G.D</name>
<text>Failed to start encryption engine. Please make sure you are running Java 2 and have downloaded an encryption provider such as jce and put it in your class path. </text>
</msg>
Modified: db/derby/code/branches/10.8/java/shared/org/apache/derby/shared/common/reference/SQLState.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8/java/shared/org/apache/derby/shared/common/reference/SQLState.java?rev=1091774&r1=1091773&r2=1091774&view=diff
==============================================================================
--- db/derby/code/branches/10.8/java/shared/org/apache/derby/shared/common/reference/SQLState.java (original)
+++ db/derby/code/branches/10.8/java/shared/org/apache/derby/shared/common/reference/SQLState.java Wed Apr 13 13:34:11 2011
@@ -164,6 +164,7 @@ public interface SQLState {
String SERVICE_MISSING_IMPLEMENTATION = "XBM02.D";
String MISSING_PRODUCT_VERSION = "XBM05.D";
String SERVICE_WRONG_BOOT_PASSWORD = "XBM06.D";
+ String MISSING_SERVICE_PROPERTIES = "XBM0A.D";
String SERVICE_BOOT_PASSWORD_TOO_SHORT = "XBM07.D";
String MISSING_ENCRYPTION_PROVIDER = "XBM0G.D";
String SERVICE_DIRECTORY_CREATE_ERROR = "XBM0H.D";
Modified: db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java?rev=1091774&r1=1091773&r2=1091774&view=diff
==============================================================================
--- db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java (original)
+++ db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java Wed Apr 13 13:34:11 2011
@@ -162,6 +162,7 @@ public final class ErrorCodeTest extends
{"XBM06","Startup failed. An encrypted database cannot be accessed without the correct boot password. ","45000"},
{"XBM07","Startup failed. Boot password must be at least 8 bytes long.","45000"},
{"XBM08","Could not instantiate {0} StorageFactory class {1}.","45000"},
+ {"XBM0A","The database directory '{0}' exists. However, it does not contain the expected '{1}' file. Perhaps Derby was brought down in the middle of creating this database. You may want to delete this directory and try creating the database again.","45000"},
{"XBM0G","Failed to start encryption engine. Please make sure you are running Java 2 and have downloaded an encryption provider such as jce and put it in your class path. ","45000"},
{"XBM0H","Directory {0} cannot be created.","45000"},
{"XBM0I","Directory {0} cannot be removed.","45000"},
Modified: db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java?rev=1091774&r1=1091773&r2=1091774&view=diff
==============================================================================
--- db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java (original)
+++ db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java Wed Apr 13 13:34:11 2011
@@ -220,6 +220,7 @@ public class _Suite extends BaseTestCase
suite.addTest(OrderByAndOffsetFetchInSubqueries.suite());
suite.addTest(Derby5005Test.suite());
suite.addTest(AutoIncrementTest.suite());
+ suite.addTest(HalfCreatedDatabaseTest.suite());
return suite;
}
}