
Author: ceki Date: Thu Mar 13 17:09:56 2008 New Revision: 1644 Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/spi/LoggingEventSerializationTest.java Log: - support strings of unlimited length Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java Thu Mar 13 17:09:56 2008 @@ -42,17 +42,11 @@ */ public class LoggingEvent implements Serializable { - /** - * - */ - private static final long serialVersionUID = 3022264832697160750L; + private static final long serialVersionUID = 3075964498087694229L; private static final int NULL_ARGUMENT_ARRAY = -1; private static final String NULL_ARGUMENT_ARRAY_ELEMENT = "NULL_ARGUMENT_ARRAY_ELEMENT"; - // writeUTF method in ObjectOutputStream has a size limit of 2*16; - static final int UTF_SIZE_LIMIT = 0xFFFF; - /** * */ @@ -298,9 +292,9 @@ out.writeInt(len); for (int i = 0; i < argumentArray.length; i++) { if (argumentArray[i] != null) { - out.writeUTF(cap(argumentArray[i].toString())); + out.writeObject(argumentArray[i].toString()); } else { - out.writeUTF(NULL_ARGUMENT_ARRAY_ELEMENT); + out.writeObject(NULL_ARGUMENT_ARRAY_ELEMENT); } } } else { @@ -309,18 +303,6 @@ } - /** - * writeUTF method cannot handle large strings - * @param in - * @return - */ - final String cap(String in) { - if(in.length() > UTF_SIZE_LIMIT) { - return in.substring(0, UTF_SIZE_LIMIT); - } else { - return in; - } - } private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); @@ -331,7 +313,7 @@ if (argArrayLen != NULL_ARGUMENT_ARRAY) { argumentArray = new String[argArrayLen]; for (int i = 0; i < argArrayLen; i++) { - String val = in.readUTF(); + Object val = in.readObject(); if (!NULL_ARGUMENT_ARRAY_ELEMENT.equals(val)) { argumentArray[i] = val; } Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/spi/LoggingEventSerializationTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/spi/LoggingEventSerializationTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/spi/LoggingEventSerializationTest.java Thu Mar 13 17:09:56 2008 @@ -3,7 +3,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -154,9 +153,7 @@ assertNotNull(aa); assertEquals(2, aa.length); String stringBack = (String) aa[1]; - - assertTrue(stringBack.startsWith("X")); - assertEquals(LoggingEvent.UTF_SIZE_LIMIT, stringBack.length()); + assertEquals(largeString, stringBack); } private LoggingEvent createLoggingEvent() {