From 93e0b181a8cd1d60998d628013b87ba7e29961cf Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Wed, 1 Nov 2017 11:11:28 -0700 Subject: [PATCH] Fix for static logger member in abstract class 'SQLServerClobBase' --- .../microsoft/sqlserver/jdbc/SQLServerClob.java | 15 ++++++--------- .../microsoft/sqlserver/jdbc/SQLServerNClob.java | 11 +++++------ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerClob.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerClob.java index a9556baf31..89ff484a8d 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerClob.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerClob.java @@ -35,9 +35,6 @@ public class SQLServerClob extends SQLServerClobBase implements Clob { private static final long serialVersionUID = 2872035282200133865L; - // Loggers should be class static to avoid lock contention with multiple threads - private static final Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc.internals.SQLServerClob"); - /** * Create a new CLOB * @@ -50,19 +47,19 @@ public class SQLServerClob extends SQLServerClobBase implements Clob { @Deprecated public SQLServerClob(SQLServerConnection connection, String data) { - super(connection, data, (null == connection) ? null : connection.getDatabaseCollation(), logger, null); + super(connection, data, (null == connection) ? null : connection.getDatabaseCollation(), null); if (null == data) throw new NullPointerException(SQLServerException.getErrString("R_cantSetNull")); } SQLServerClob(SQLServerConnection connection) { - super(connection, "", connection.getDatabaseCollation(), logger, null); + super(connection, "", connection.getDatabaseCollation(), null); } SQLServerClob(BaseInputStream stream, TypeInfo typeInfo) throws SQLServerException, UnsupportedEncodingException { - super(null, stream, typeInfo.getSQLCollation(), logger , typeInfo); + super(null, stream, typeInfo.getSQLCollation(), typeInfo); } final JDBCType getJdbcType() { @@ -91,7 +88,9 @@ abstract class SQLServerClobBase implements Serializable { private ArrayList activeStreams = new ArrayList<>(1); transient SQLServerConnection con; - private static Logger logger; + + private final Logger logger = Logger.getLogger(getClass().getName()); + final private String traceID = getClass().getName().substring(1 + getClass().getName().lastIndexOf('.')) + ":" + nextInstanceID(); final public String toString() { @@ -129,7 +128,6 @@ private String getDisplayClassName() { SQLServerClobBase(SQLServerConnection connection, Object data, SQLCollation collation, - Logger logger, TypeInfo typeInfo) { this.con = connection; if (data instanceof BaseInputStream) { @@ -140,7 +138,6 @@ private String getDisplayClassName() { } this.sqlCollation = collation; this.typeInfo = typeInfo; - SQLServerClobBase.logger = logger; if (logger.isLoggable(Level.FINE)) { String loggingInfo = (null != connection) ? connection.toString() : "null connection"; diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerNClob.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerNClob.java index 213bc422b7..7263b91448 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerNClob.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerNClob.java @@ -10,23 +10,22 @@ import java.io.UnsupportedEncodingException; import java.sql.NClob; -import java.util.logging.Logger; /** * SQLServerNClob represents a National Character Set LOB object and implements java.sql.NClob. */ public final class SQLServerNClob extends SQLServerClobBase implements NClob { - // Loggers should be class static to avoid lock contention with multiple threads - private static final Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc.internals.SQLServerNClob"); - SQLServerNClob(SQLServerConnection connection) { - super(connection, "", connection.getDatabaseCollation(), logger, null); + private static final long serialVersionUID = 1L; + + SQLServerNClob(SQLServerConnection connection) { + super(connection, "", connection.getDatabaseCollation(), null); } SQLServerNClob(BaseInputStream stream, TypeInfo typeInfo) throws SQLServerException, UnsupportedEncodingException { - super(null, stream, typeInfo.getSQLCollation(), logger , typeInfo); + super(null, stream, typeInfo.getSQLCollation(), typeInfo); } final JDBCType getJdbcType() {