Description
In DropSchemaConstantAction.executeConstantAction, getSchemaDescriptor is called with a null parameter. Instead, one could reuse the current transaction controller directly available with "activation.getLanguageConnectionContext().getTransactionExecute()" as it's done with other subclasses of DDLConstantAction.
Regards, --Martin
Index: java/engine/org/apache/derby/impl/sql/execute/DropSchemaConstantAction.java
===================================================================
— java/engine/org/apache/derby/impl/sql/execute/DropSchemaConstantAction.java (revision 1001658)
+++ java/engine/org/apache/derby/impl/sql/execute/DropSchemaConstantAction.java (working copy)
@@ -27,6 +27,7 @@
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
import org.apache.derby.iapi.sql.dictionary.SchemaDescriptor;
import org.apache.derby.iapi.sql.execute.ConstantAction;
+import org.apache.derby.iapi.store.access.TransactionController;
/**
- This class describes actions that are ALWAYS performed for a
@@ -82,6 +83,7 @@
{
LanguageConnectionContext lcc = activation.getLanguageConnectionContext();
DataDictionary dd = lcc.getDataDictionary();
+ TransactionController tc = lcc.getTransactionExecute();
/*
-
- Inform the data dictionary that we are about to write to it.
@@ -94,7 +96,7 @@
*/
dd.startWriting(lcc);
- Inform the data dictionary that we are about to write to it.
- SchemaDescriptor sd = dd.getSchemaDescriptor(schemaName, null, true);
+ SchemaDescriptor sd = dd.getSchemaDescriptor(schemaName, tc, true);
sd.drop(lcc, activation);