From 3abe5b9f1846c6c6a61719e24ec70b86307d4762 Mon Sep 17 00:00:00 2001 From: Nate Jensen Date: Mon, 28 Oct 2013 09:15:20 -0500 Subject: [PATCH] Issue #2359 fix for extra long messages Former-commit-id: 0abed910739dc824b174c8de5c4b155a1fd91803 --- .../com.raytheon.uf.logsrv/config.xml | 2 +- .../raytheon/uf/logsrv/derby/DerbyDao.java | 27 ++++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/javaUtilities/com.raytheon.uf.logsrv/config.xml b/javaUtilities/com.raytheon.uf.logsrv/config.xml index 8d94e77092..fbb92b122b 100644 --- a/javaUtilities/com.raytheon.uf.logsrv/config.xml +++ b/javaUtilities/com.raytheon.uf.logsrv/config.xml @@ -1,6 +1,6 @@ - ts1-oma + ec-redbaron /awips2/edex/data/utility/nate Nathan.Jensen@raytheon.com mk2-msg10.raymail.ray.com diff --git a/javaUtilities/com.raytheon.uf.logsrv/src/com/raytheon/uf/logsrv/derby/DerbyDao.java b/javaUtilities/com.raytheon.uf.logsrv/src/com/raytheon/uf/logsrv/derby/DerbyDao.java index 0f0159934b..b6505d2ffb 100644 --- a/javaUtilities/com.raytheon.uf.logsrv/src/com/raytheon/uf/logsrv/derby/DerbyDao.java +++ b/javaUtilities/com.raytheon.uf.logsrv/src/com/raytheon/uf/logsrv/derby/DerbyDao.java @@ -59,12 +59,15 @@ public class DerbyDao { private static final String TABLE = "log"; + private static final int MAX_STR_LEN = 32672; + private static final String DB_CREATE = "CREATE TABLE " + TABLE + "(pk INT NOT NULL GENERATED BY DEFAULT AS IDENTITY, " - + "eventTime TIMESTAMP, " + "message VARCHAR(32672), " - + "javaClass VARCHAR(128), " + "lineNumber INT, " - + "stacktrace VARCHAR(32672), " + "threadName VARCHAR(128), " - + "machineName VARCHAR(128), " + "level VARCHAR(32))"; + + "eventTime TIMESTAMP, " + "message VARCHAR(" + MAX_STR_LEN + + "), " + "javaClass VARCHAR(128), " + "lineNumber INT, " + + "stacktrace VARCHAR(" + MAX_STR_LEN + "), " + + "threadName VARCHAR(128), " + "machineName VARCHAR(128), " + + "level VARCHAR(32))"; private static final String INSERT_PREPARED_STATEMENT = "INSERT INTO " + TABLE @@ -169,10 +172,22 @@ public class DerbyDao { saveStatement.setTimestamp(1, new Timestamp(event.getEventTime() .getTime())); - saveStatement.setString(2, event.getMessage()); + if (event.getMessage() == null + || event.getMessage().length() < MAX_STR_LEN) { + saveStatement.setString(2, event.getMessage()); + } else { + saveStatement.setString(2, + event.getMessage().substring(0, MAX_STR_LEN - 1)); + } saveStatement.setString(3, event.getJavaClass()); saveStatement.setInt(4, event.getLineNumber()); - saveStatement.setString(5, event.getStacktrace()); + if (event.getStacktrace() == null + || event.getStacktrace().length() < MAX_STR_LEN) { + saveStatement.setString(5, event.getStacktrace()); + } else { + saveStatement.setString(5, + event.getStacktrace().substring(0, MAX_STR_LEN - 1)); + } saveStatement.setString(6, event.getThreadName()); saveStatement.setString(7, event.getMachineName()); saveStatement.setString(8, event.getLevel());