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 da...@apache.org on 2013/04/01 05:58:20 UTC

svn commit: r1463079 - in /db/derby/code/trunk/java/client/org/apache/derby: client/am/Configuration.java client/am/LogWriter.java client/net/NetLogWriter.java client/net/NetPackageRequest.java jdbc/ClientBaseDataSourceRoot.java

Author: dag
Date: Mon Apr  1 03:58:20 2013
New Revision: 1463079

URL: http://svn.apache.org/r1463079
Log:
DERBY-6125 Code clean up in client driver.

    Patch derby-6125-03-a. This patch

    - makes a mutable public array (dncPackageConsistencyToken) private.
    - removes a couple of assignment with values that are never used (e.g. myPVH)
    - makes some members final and public
    - reworks an invariant to use SanityManager assert
    - replaces a StringBuffer with StringBuilder
    - makes a lazy initialization thread safe (codePointNameTable__)
    - removes a couple of noop bit operations
    - removes an unused method (computeDncLogWriter with existing connection overload)

Modified:
    db/derby/code/trunk/java/client/org/apache/derby/client/am/Configuration.java
    db/derby/code/trunk/java/client/org/apache/derby/client/am/LogWriter.java
    db/derby/code/trunk/java/client/org/apache/derby/client/net/NetLogWriter.java
    db/derby/code/trunk/java/client/org/apache/derby/client/net/NetPackageRequest.java
    db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSourceRoot.java

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/am/Configuration.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/am/Configuration.java?rev=1463079&r1=1463078&r2=1463079&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/am/Configuration.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/am/Configuration.java Mon Apr  1 03:58:20 2013
@@ -28,7 +28,6 @@ import java.security.PrivilegedException
 
 import org.apache.derby.iapi.services.info.ProductGenusNames;
 import org.apache.derby.iapi.services.info.ProductVersionHolder;
-import org.apache.derby.jdbc.ClientDataSourceInterface;
 import org.apache.derby.shared.common.reference.SQLState;
 
 public class Configuration {
@@ -61,9 +60,15 @@ public class Configuration {
     // Hard-wired for JDBC
     //
     // Currently ASCII hex value of "SYSLVL01".
-    public final static byte[] dncPackageConsistencyToken =
+    private final static byte[] dncPackageConsistencyToken =
             {0x53, 0x59, 0x53, 0x4c, 0x56, 0x4c, 0x30, 0x31};
 
+    public static byte[] getDncPackageConsistencyToken() {
+        byte [] cpy = new byte[dncPackageConsistencyToken.length];
+        System.arraycopy(dncPackageConsistencyToken, 0, cpy, 0, cpy.length);
+        return cpy;
+    }
+
     // We will not set package VERSION in the initial release.
     // If we have to change the package version in the future then we can.
     public static final String dncPackageVersion = null;
@@ -189,8 +194,7 @@ public class Configuration {
     // Create ProductVersionHolder in security block for Java 2 security.
     private static ProductVersionHolder buildProductVersionHolder() throws
             java.security.PrivilegedActionException, IOException {
-        ProductVersionHolder myPVH = null;
-        myPVH = AccessController.doPrivileged(
+        return AccessController.doPrivileged(
                 new PrivilegedExceptionAction<ProductVersionHolder>() {
 
                     public ProductVersionHolder run() throws IOException {
@@ -199,8 +203,6 @@ public class Configuration {
                         return ProductVersionHolder.getProductVersionHolderFromMyEnv(versionStream);
                     }
                 });
-
-        return myPVH;
     }
     
     /**

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/am/LogWriter.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/am/LogWriter.java?rev=1463079&r1=1463078&r2=1463079&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/am/LogWriter.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/am/LogWriter.java Mon Apr  1 03:58:20 2013
@@ -23,21 +23,20 @@ package org.apache.derby.client.am;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
 import java.security.AccessController;
 import java.security.PrivilegedExceptionAction;
 import java.sql.SQLException;
 import java.util.Properties;
+import org.apache.derby.iapi.services.sanity.SanityManager;
 import org.apache.derby.jdbc.ClientBaseDataSourceRoot;
 import org.apache.derby.jdbc.ClientDataSourceInterface;
 import org.apache.derby.shared.common.reference.Attribute;
 import org.apache.derby.shared.common.reference.SQLState;
 
 public class LogWriter {
-    protected java.io.PrintWriter printWriter_;
-    protected int traceLevel_;
+    final protected PrintWriter printWriter_;
+    final private int traceLevel_;
+
     private boolean driverConfigurationHasBeenWrittenToJdbc1Stream_ = false;
     private boolean driverConfigurationHasBeenWrittenToJdbc2Stream_ = false;
 
@@ -48,8 +47,14 @@ public class LogWriter {
     }
 
     final protected boolean loggingEnabled(int traceLevel) {
-        // It is an invariant that the printWriter is never null, so remove the
-        return printWriter_ != null && (traceLevel & traceLevel_) != 0;
+        if (SanityManager.DEBUG) {
+            if (printWriter_ == null) {
+                SanityManager.THROWASSERT(
+                        "Broken invariant: printWriter_ == null");
+            }
+        }
+
+        return (traceLevel & traceLevel_) != 0;
     }
 
     // When garbage collector doesn't kick in in time
@@ -112,10 +117,6 @@ public class LogWriter {
         dncprintln(staticContextTracepointRecord);
     }
 
-    private String getMemoryMapDisplay(java.util.Map memory) {
-        return memory.toString(); // need to loop thru all keys in the map and print values
-    }
-
     // ------------- API entry and exit trace methods ----------------------------
     // Entry and exit are be traced separately because input arguments need
     // to be traced before any potential exception can occur.
@@ -877,7 +878,7 @@ public class LogWriter {
     }
 
     private String escapePassword(String pw) {
-        StringBuffer sb = new StringBuffer(pw);
+        StringBuilder sb = new StringBuilder(pw);
         for (int j = 0; j < pw.length(); j++) {
             sb.setCharAt(j, '*');
         }

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/net/NetLogWriter.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/net/NetLogWriter.java?rev=1463079&r1=1463078&r2=1463079&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/net/NetLogWriter.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/net/NetLogWriter.java Mon Apr  1 03:58:20 2013
@@ -125,6 +125,14 @@ public class NetLogWriter extends org.ap
 
         // Initialize the codepoint name table if not previously initialized.
         // This is done lazily so that it is not created if the trace isn't used (save some init time).
+
+        if (codePointNameTable__ == null) {
+            initCodePointTable();
+        }
+    }
+
+    // synchonized so only one thread can initialize the table
+    private synchronized void initCodePointTable() {
         if (codePointNameTable__ == null) {
             codePointNameTable__ = new CodePointNameTable();
         }
@@ -187,13 +195,13 @@ public class NetLogWriter extends org.ap
             return;
         }
         synchronized (printWriter_) {
-            super.tracepoint("[net]", tracepoint, className, methodName);
+            tracepoint("[net]", tracepoint, className, methodName);
 
             int fullLen = len;
             boolean printColPos = true;
             while (fullLen >= 2) { // format each DssHdr seperately
                 // get the length of this DssHdr
-                len = ((buff[offset] & 0xff) << 8) + ((buff[offset + 1] & 0xff) << 0);
+                len = ((buff[offset] & 0xff) << 8) + (buff[offset + 1] & 0xff);
 
                 // check for valid dss header or not all of dss block
                 if ((len < 10) || (len > fullLen)) {
@@ -334,7 +342,7 @@ public class NetLogWriter extends org.ap
     // Gets the int value of the two byte unsigned codepoint.
     private static int getCodePoint(byte[] buff, int offset) {
         return ((buff[offset++] & 0xff) << 8) +
-                ((buff[offset] & 0xff) << 0);
+                (buff[offset] & 0xff);
     }
 
     private static String getHeader(int type) {

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/net/NetPackageRequest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/net/NetPackageRequest.java?rev=1463079&r1=1463078&r2=1463079&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/net/NetPackageRequest.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/net/NetPackageRequest.java Mon Apr  1 03:58:20 2013
@@ -68,8 +68,8 @@ public class NetPackageRequest extends N
         byte[] pkgNameBytes = ccsidMgr.convertFromJavaString(
                 section.getPackageName(), netAgent_);
 
-        boolean scldtalenRequired = false;
-        scldtalenRequired = checkPKGNAMlengths(netAgent_.netConnection_.databaseName_,
+        boolean scldtalenRequired =
+                checkPKGNAMlengths(netAgent_.netConnection_.databaseName_,
                 dbnameBytes.length,
                 maxIdentifierLength,
                 NetConfiguration.PKG_IDENTIFIER_FIXED_LEN);
@@ -128,7 +128,8 @@ public class NetPackageRequest extends N
                 // Mark the beginning of PKGNAMCSN bytes.
                 markForCachingPKGNAMCSN();
                 buildCommonPKGNAMinfo(section);
-                writeScalarPaddedBytes(Configuration.dncPackageConsistencyToken,
+                writeScalarPaddedBytes(
+                        Configuration.getDncPackageConsistencyToken(),
                         NetConfiguration.PKGCNSTKN_FIXED_LEN,
                         NetConfiguration.NON_CHAR_DDM_DATA_PAD_BYTE);
                 // store the PKGNAMCbytes
@@ -188,7 +189,7 @@ public class NetPackageRequest extends N
         if (string == null) {
             write2Bytes(0xffff);
         } else {
-            byte[] sqlBytes = null;
+            byte[] sqlBytes;
 
             if (netAgent_.typdef_.isCcsidMbcSet()) {
                 sqlBytes = getBytes(string, netAgent_.typdef_.getCcsidMbcEncoding());
@@ -218,7 +219,6 @@ public class NetPackageRequest extends N
     //   SQLSTATEMENT_s; PROTOCOL TYPE NOCS; ENVLID 0xCB; Length Override 4
     private void buildSQLSTTGRP(String string) throws SqlException {
         buildNOCMorNOCS(string);
-        return;
     }
 
     // SQLSTT : FDOCA EARLY ROW

Modified: db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSourceRoot.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSourceRoot.java?rev=1463079&r1=1463078&r2=1463079&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSourceRoot.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientBaseDataSourceRoot.java Mon Apr  1 03:58:20 2013
@@ -601,50 +601,6 @@ public abstract class ClientBaseDataSour
         return dncLogWriter;
     }
 
-    // Compute a DNC log writer after a connection is created.
-    // Declared public for use by am.Connection.  Not a public external.
-    public static LogWriter computeDncLogWriter(
-        Connection connection,
-        PrintWriter logWriter,
-        String traceDirectory,
-        String traceFile,
-        boolean traceFileAppend,
-        String logWriterInUseSuffix,
-        int traceFileSuffixIndex,
-        int traceLevel) throws SqlException {
-
-        // Otherwise, the trace file will still be created even TRACE_NONE.
-        if (traceLevel == TRACE_NONE) {
-            return null;
-        }
-
-        PrintWriter printWriter = computePrintWriter(
-            logWriter,
-            traceDirectory,
-            traceFile,
-            traceFileAppend,
-            logWriterInUseSuffix,
-            traceFileSuffixIndex);
-
-        if (printWriter == null) {
-            return null;
-        }
-
-        LogWriter dncLogWriter =
-            connection.agent_.newLogWriter_(printWriter, traceLevel);
-
-        if (printWriter != logWriter &&
-                (traceDirectory != null || traceFile != null))
-        // When printWriter is an internal trace file and
-        // traceDirectory is not null, each connection has
-        // its own trace file and the trace file is not cached,
-        // so we can close it when DNC log writer is closed.
-        {
-            dncLogWriter.printWriterNeedsToBeClosed_ = true;
-        }
-        return dncLogWriter;
-    }
-
     // This method handles all the override semantics.  The logWriter
     // overrides the traceFile, and traceDirectory settings.  If neither
     // traceFile, nor logWriter, nor traceDirectory are set, then null is