Repository: tomee Updated Branches: refs/heads/master bd8d48e67 -> d345fab76
TOMEE-1589 supporting openjpa externalizer Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/d345fab7 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/d345fab7 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/d345fab7 Branch: refs/heads/master Commit: d345fab76f4145fd89ea7430e82c909eab022116 Parents: bd8d48e Author: Romain Manni-Bucau <[email protected]> Authored: Wed May 20 12:36:59 2015 +0200 Committer: Romain Manni-Bucau <[email protected]> Committed: Wed May 20 12:36:59 2015 +0200 ---------------------------------------------------------------------- .../jdbc/logging/LoggingPreparedSqlStatement.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/d345fab7/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java index 9500366..242d6b8 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/logging/LoggingPreparedSqlStatement.java @@ -21,6 +21,8 @@ import org.apache.openejb.util.Join; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; +import java.io.ByteArrayInputStream; +import java.io.ObjectInputStream; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.sql.ParameterMetaData; @@ -81,7 +83,19 @@ public class LoggingPreparedSqlStatement implements InvocationHandler { final Parameter param = parameters.get(i); if (str.contains("?")) { try { - str = str.replaceFirst("\\?", param.value.toString()); + String val; + if (ByteArrayInputStream.class.isInstance(param.value)) { + final ByteArrayInputStream bais = ByteArrayInputStream.class.cast(param.value); + try { + bais.reset(); // already read when arriving here - mainly openjpa case + val = new ObjectInputStream(bais).readObject().toString(); + } catch (final Exception e) { + val = param.value.toString(); + } + } else { + val = param.value.toString(); + } + str = str.replaceFirst("\\?", val); } catch (final Exception e) { if (param.value == null) { str = str.replaceFirst("\\?", "null");
