You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/04/23 09:19:01 UTC

svn commit: r1470834 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/ImportSql.java resource/jdbc/logging/LoggingPreparedSqlStatement.java

Author: rmannibucau
Date: Tue Apr 23 07:19:01 2013
New Revision: 1470834

URL: http://svn.apache.org/r1470834
Log:
TOMEE-905 TOMEE-906 avoid NPE when logging sql statements + allowing to deactivate sql imports

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ImportSql.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ImportSql.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ImportSql.java?rev=1470834&r1=1470833&r2=1470834&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ImportSql.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ImportSql.java Tue Apr 23 07:19:01 2013
@@ -17,6 +17,7 @@
 package org.apache.openejb.assembler.classic;
 
 import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 
@@ -35,6 +36,8 @@ import java.util.Enumeration;
 public class ImportSql {
     private static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB, EntityManagerFactoryCallable.class.getName());
 
+    public static final String OPENEJB_SQL_IMPORT = "openejb.sql.import";
+
     public static final String IMPORT_FILE_PREFIX = "import-";
     public static final String IMPORT_FILE_EXTENSION = ".sql";
 
@@ -58,7 +61,7 @@ public class ImportSql {
     }
 
     public boolean hasSomethingToImport() {
-        return !done && imports != null && imports.hasMoreElements();
+        return !done && imports != null && imports.hasMoreElements() && SystemInstance.get().getOptions().get(OPENEJB_SQL_IMPORT, true);
     }
 
     public void doImport() {

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java?rev=1470834&r1=1470833&r2=1470834&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java Tue Apr 23 07:19:01 2013
@@ -59,8 +59,12 @@ public class LoggingPreparedSqlStatement
                     if (str.contains("?")) {
                         try {
                             str = str.replaceFirst("\\?", param.value.toString());
-                        } catch (Exception e) {
-                            str = str.replaceFirst("\\?", param.value.getClass().getName());
+                        } catch (final Exception e) {
+                            if (param.value == null) {
+                                str = str.replaceFirst("\\?", "null");
+                            } else {
+                                str = str.replaceFirst("\\?", param.value.getClass().getName());
+                            }
                         }
                         lastBatch = param.batchIndex;
                     } else {
@@ -72,7 +76,11 @@ public class LoggingPreparedSqlStatement
                         try {
                             str += param.value.toString();
                         } catch (Exception e) {
-                            str += param.value.getClass().getName();
+                            if (param.value == null) {
+                                str += "null";
+                            } else {
+                                str += param.value.getClass().getName();
+                            }
                         }
 
                         if (i == parameters.size() - 1 || parameters.get(i + 1).batchIndex != lastBatch) {