There are two files in the codline that use SanityManager without first checking to see if the compiler is running in SANE mode. This means that when the code is built in INSANE mode, the references to SanityManager will still exist in the compiled class file, which is wrong.

Attached is a very simple patch that modifies the following two files by adding an "if (SanityManager.DEBUG)" block around the code in question:

org/apache/derby/iapi/sql/dictionary/ColumnDescriptor.java
org/apache/derby/impl/store/raw/data/FileContainer.java

Could a committer please commit?
Army
Index: java/engine/org/apache/derby/impl/store/raw/data/FileContainer.java
===================================================================
--- java/engine/org/apache/derby/impl/store/raw/data/FileContainer.java 
(revision 185885)
+++ java/engine/org/apache/derby/impl/store/raw/data/FileContainer.java 
(working copy)
@@ -1748,12 +1748,14 @@
                 }
                 catch (StandardException se)
                 {
-                    SanityManager.DEBUG_PRINT("FileContainer",
-                        "got exception from initPage:"  +
-                        "\nreuse = " + reuse +
-                        "\ncreatePageArgs[1] = " + createPageArgs[1] +
-                        "\nallocPage = " + allocPage
-                        );
+                    if (SanityManager.DEBUG) {
+                        SanityManager.DEBUG_PRINT("FileContainer",
+                            "got exception from initPage:"  +
+                            "\nreuse = " + reuse +
+                            "\ncreatePageArgs[1] = " + createPageArgs[1] +
+                            "\nallocPage = " + allocPage
+                            );
+                    }
                     allocCache.dumpAllocationCache();
 
                     throw se;
Index: java/engine/org/apache/derby/iapi/sql/dictionary/ColumnDescriptor.java
===================================================================
--- java/engine/org/apache/derby/iapi/sql/dictionary/ColumnDescriptor.java      
(revision 185885)
+++ java/engine/org/apache/derby/iapi/sql/dictionary/ColumnDescriptor.java      
(working copy)
@@ -105,12 +105,9 @@
                        this.uuid = table.getUUID();
                }
 
-               if (SanityManager.DEBUG)
-               {
-                       assertAutoinc(autoinc,
-                                     autoincInc,
-                                     columnDefaultInfo);
-               }
+               assertAutoinc(autoinc,
+                             autoincInc,
+                             columnDefaultInfo);
 
                this.autoincStart = autoincStart;
                this.autoincInc = autoincInc;
@@ -153,12 +150,9 @@
                this.uuid = uuid;
                this.defaultUUID = defaultUUID;
 
-               if (SanityManager.DEBUG)
-               {
-                       assertAutoinc(autoinc,
-                                     autoincInc,
-                                     columnDefaultInfo);
-               }
+               assertAutoinc(autoinc,
+                             autoincInc,
+                             columnDefaultInfo);
                
                this.autoincStart = autoincStart;
                this.autoincInc = autoincInc;
@@ -397,19 +391,24 @@
        private static void assertAutoinc(boolean autoinc,
                                          long autoincInc,
                                          DefaultInfo defaultInfo){
-               if (autoinc){
-                       SanityManager.ASSERT((autoincInc != 0), "increment is 
zero for  autoincrement column");
-                       SanityManager.ASSERT((defaultInfo == null ||
+
+               if (SanityManager.DEBUG) {
+                       if (autoinc){
+                               SanityManager.ASSERT((autoincInc != 0),
+                                       "increment is zero for  autoincrement 
column");
+                               SanityManager.ASSERT((defaultInfo == null ||
                                              
defaultInfo.isDefaultValueAutoinc()),
                                             "If column is autoinc and have 
defaultInfo, " + 
                                             "isDefaultValueAutoinc must be 
true.");
-               }
-               else{
-                       SanityManager.ASSERT((autoincInc == 0), "increment is 
non-zero for non-autoincrement column");
-                       SanityManager.ASSERT((defaultInfo == null ||
+                       }
+                       else{
+                               SanityManager.ASSERT((autoincInc == 0),
+                                       "increment is non-zero for 
non-autoincrement column");
+                               SanityManager.ASSERT((defaultInfo == null ||
                                              ! 
defaultInfo.isDefaultValueAutoinc()),
                                             "If column is not autoinc and have 
defaultInfo, " + 
                                             "isDefaultValueAutoinc can not be 
true");
+                       }
                }
        }
 

Reply via email to