No, I had to add these tests. They are a bit awkward, as it involves creating a 
serialized event and then deleting the exception class and testing...

Sent from my iPhone

> On 2014/05/25, at 4:03, Gary Gregory <[email protected]> wrote:
> 
> Did the commit break a unit test then.
> 
> Gary
> 
> 
> -------- Original message --------
> From: Ralph Goers
> Date:05/24/2014 10:28 (GMT-05:00) 
> To: Log4J Developers List
> Cc: [email protected]
> Subject: Re: svn commit: r1597291 - in /logging/log4j/log4j2/trunk: 
> log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/ 
> log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ 
> log4j-core/src/test/java/org/apache/logging/log4j/core/impl/ lo...
> 
> I think this breaks serialization - the fix I did for LOG4J2-542.  The 
> Throwable must be volatile as it may not exist on the remote system, so you 
> cannot rely on it for deserialization.
> 
> Sent from my iPad
> 
> > On May 24, 2014, at 6:54 AM, [email protected] wrote:
> > 
> > Author: rpopma
> > Date: Sat May 24 13:54:16 2014
> > New Revision: 1597291
> > 
> > URL: http://svn.apache.org/r1597291
> > Log:
> > LOG4J2-250: Refactor Log4jLogEvent to lazily create ThrowableProxy
> > 
> > Modified:
> >    
> > logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/MapRewritePolicy.java
> >    
> > logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
> >    
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java
> >    
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
> >    
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/LogEventFixtures.java
> >    
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
> >    logging/log4j/log4j2/trunk/src/changes/changes.xml
> > 
> > Modified: 
> > logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/MapRewritePolicy.java
> > URL: 
> > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/MapRewritePolicy.java?rev=1597291&r1=1597290&r2=1597291&view=diff
> > ==============================================================================
> > --- 
> > logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/MapRewritePolicy.java
> >  (original)
> > +++ 
> > logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/MapRewritePolicy.java
> >  Sat May 24 13:54:16 2014
> > @@ -81,8 +81,8 @@ public final class MapRewritePolicy impl
> >         if (source instanceof Log4jLogEvent) {
> >             Log4jLogEvent event = (Log4jLogEvent) source;
> >             return Log4jLogEvent.createEvent(event.getLoggerName(), 
> > event.getMarker(), event.getLoggerFqcn(),
> > -                event.getLevel(), message, event.getThrownProxy(), 
> > event.getContextMap(), event.getContextStack(),
> > -                event.getThreadName(), event.getSource(), 
> > event.getTimeMillis());
> > +                event.getLevel(), message, event.getThrown(), 
> > event.getThrownProxy(), event.getContextMap(), 
> > +                event.getContextStack(), event.getThreadName(), 
> > event.getSource(), event.getTimeMillis());
> >         }
> >         return new Log4jLogEvent(source.getLoggerName(), 
> > source.getMarker(), source.getLoggerFqcn(), source.getLevel(),
> >             message, source.getThrown(), source.getContextMap(), 
> > source.getContextStack(), source.getThreadName(),
> > 
> > Modified: 
> > logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
> > URL: 
> > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java?rev=1597291&r1=1597290&r2=1597291&view=diff
> > ==============================================================================
> > --- 
> > logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
> >  (original)
> > +++ 
> > logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
> >  Sat May 24 13:54:16 2014
> > @@ -49,7 +49,8 @@ public class Log4jLogEvent implements Lo
> >     private final String loggerName;
> >     private final Message message;
> >     private final long timeMillis;
> > -    private final ThrowableProxy thrownProxy;
> > +    private final Throwable thrown;
> > +    private ThrowableProxy thrownProxy;
> >     private final Map<String, String> contextMap;
> >     private final ThreadContext.ContextStack contextStack;
> >     private String threadName = null;
> > @@ -65,7 +66,7 @@ public class Log4jLogEvent implements Lo
> >      *
> >      */
> >     public Log4jLogEvent(final long timestamp) {
> > -        this(Strings.EMPTY, null, Strings.EMPTY, null, null, 
> > (ThrowableProxy) null, null, null, null, null, timestamp);
> > +        this(Strings.EMPTY, null, Strings.EMPTY, null, null, (Throwable) 
> > null, null, null, null, null, timestamp);
> >     }
> > 
> >     /**
> > @@ -115,11 +116,11 @@ public class Log4jLogEvent implements Lo
> >      * @param timestamp The timestamp of the event.
> >      */
> >     public Log4jLogEvent(final String loggerName, final Marker marker, 
> > final String loggerFQCN, final Level level,
> > -                         final Message message, final Throwable t,
> > -                         final Map<String, String> mdc, final 
> > ThreadContext.ContextStack ndc, final String threadName,
> > +                         final Message message, final Throwable t, final 
> > Map<String, String> mdc,
> > +                         final ThreadContext.ContextStack ndc, final 
> > String threadName,
> >                          final StackTraceElement location, final long 
> > timestamp) {
> > -        this(loggerName, marker, loggerFQCN, level, message, t == null ? 
> > null : new ThrowableProxy(t), mdc, ndc, threadName,
> > -            location, timestamp);
> > +        this(loggerName, marker, loggerFQCN, level, message, t, null, mdc, 
> > ndc, threadName,
> > +                location, timestamp);
> >     }
> > 
> >     /**
> > @@ -129,7 +130,8 @@ public class Log4jLogEvent implements Lo
> >      * @param loggerFQCN The fully qualified class name of the caller.
> >      * @param level The logging Level.
> >      * @param message The Message.
> > -     * @param t A ThrowableProxy or null.
> > +     * @param thrown A Throwable or null.
> > +     * @param thrownProxy A ThrowableProxy or null.
> >      * @param mdc The mapped diagnostic context.
> >      * @param ndc the nested diagnostic context.
> >      * @param threadName The name of the thread.
> > @@ -137,11 +139,14 @@ public class Log4jLogEvent implements Lo
> >      * @param timestamp The timestamp of the event.
> >      */
> >     public static Log4jLogEvent createEvent(final String loggerName, final 
> > Marker marker, final String loggerFQCN,
> > -                                            final Level level, final 
> > Message message, final ThrowableProxy t,
> > +                                            final Level level, final 
> > Message message, final Throwable thrown, 
> > +                                            final ThrowableProxy 
> > thrownProxy,
> >                                             final Map<String, String> mdc, 
> > final ThreadContext.ContextStack ndc,
> >                                             final String threadName, final 
> > StackTraceElement location,
> >                                             final long timestamp) {
> > -     return new Log4jLogEvent(loggerName, marker, loggerFQCN, level, 
> > message, t, mdc, ndc, threadName, location, timestamp);
> > +        final Log4jLogEvent result = new Log4jLogEvent(loggerName, marker, 
> > loggerFQCN, level, message, thrown, 
> > +                thrownProxy, mdc, ndc, threadName, location, timestamp);
> > +        return result;
> >     }
> > 
> >     /**
> > @@ -151,6 +156,7 @@ public class Log4jLogEvent implements Lo
> >      * @param loggerFQCN The fully qualified class name of the caller.
> >      * @param level The logging Level.
> >      * @param message The Message.
> > +     * @param thrown A Throwable or null.
> >      * @param thrownProxy A ThrowableProxy or null.
> >      * @param contextMap The mapped diagnostic context.
> >      * @param contextStack the nested diagnostic context.
> > @@ -159,14 +165,15 @@ public class Log4jLogEvent implements Lo
> >      * @param timestamp The timestamp of the event.
> >      */
> >     private Log4jLogEvent(final String loggerName, final Marker marker, 
> > final String loggerFQCN, final Level level,
> > -                         final Message message, final ThrowableProxy 
> > thrownProxy,
> > -                         final Map<String, String> contextMap, final 
> > ThreadContext.ContextStack contextStack, final String threadName,
> > -                         final StackTraceElement source, final long 
> > timestamp) {
> > +            final Message message, final Throwable thrown, ThrowableProxy 
> > thrownProxy, 
> > +            final Map<String, String> contextMap, final 
> > ThreadContext.ContextStack contextStack, 
> > +            final String threadName, final StackTraceElement source, final 
> > long timestamp) {
> >         this.loggerName = loggerName;
> >         this.marker = marker;
> >         this.loggerFqcn = loggerFQCN;
> >         this.level = (level == null) ? Level.OFF : level; // LOG4J2-462, 
> > LOG4J2-465
> >         this.message = message;
> > +        this.thrown = thrown;
> >         this.thrownProxy = thrownProxy;
> >         this.contextMap = contextMap == null ? ThreadContext.EMPTY_MAP : 
> > contextMap;
> >         this.contextStack = contextStack == null ? 
> > ThreadContext.EMPTY_STACK : contextStack;
> > @@ -250,7 +257,7 @@ public class Log4jLogEvent implements Lo
> >      */
> >     @Override
> >     public Throwable getThrown() {
> > -        return thrownProxy == null ? null : thrownProxy.getThrowable();
> > +        return thrown;
> >     }
> > 
> >     /**
> > @@ -259,6 +266,9 @@ public class Log4jLogEvent implements Lo
> >      */
> >     @Override
> >     public ThrowableProxy getThrownProxy() {
> > +        if (thrownProxy == null && thrown != null) {
> > +            thrownProxy = new ThrowableProxy(thrown);
> > +        }
> >         return thrownProxy;
> >     }
> > 
> > @@ -377,7 +387,7 @@ public class Log4jLogEvent implements Lo
> >             final LogEventProxy proxy = (LogEventProxy) event;
> >             final Log4jLogEvent result = new 
> > Log4jLogEvent(proxy.loggerName, proxy.marker,
> >                     proxy.loggerFQCN, proxy.level, proxy.message,
> > -                    proxy.thrownProxy, proxy.contextMap, 
> > proxy.contextStack, proxy.threadName,
> > +                    proxy.thrown, proxy.thrownProxy, proxy.contextMap, 
> > proxy.contextStack, proxy.threadName,
> >                     proxy.source, proxy.timeMillis);
> >             result.setEndOfBatch(proxy.isEndOfBatch);
> >             result.setIncludeLocation(proxy.isLocationRequired);
> > @@ -447,6 +457,9 @@ public class Log4jLogEvent implements Lo
> >         if (threadName != null ? !threadName.equals(that.threadName) : 
> > that.threadName != null) {
> >             return false;
> >         }
> > +        if (thrown != null ? !thrown.equals(that.thrown) : that.thrown != 
> > null) {
> > +            return false;
> > +        }
> >         if (thrownProxy != null ? !thrownProxy.equals(that.thrownProxy) : 
> > that.thrownProxy != null) {
> >             return false;
> >         }
> > @@ -462,6 +475,7 @@ public class Log4jLogEvent implements Lo
> >         result = 31 * result + loggerName.hashCode();
> >         result = 31 * result + message.hashCode();
> >         result = 31 * result + (int) (timeMillis ^ (timeMillis >>> 32));
> > +        result = 31 * result + (thrown != null ? thrown.hashCode() : 0);
> >         result = 31 * result + (thrownProxy != null ? 
> > thrownProxy.hashCode() : 0);
> >         result = 31 * result + (contextMap != null ? contextMap.hashCode() 
> > : 0);
> >         result = 31 * result + (contextStack != null ? 
> > contextStack.hashCode() : 0);
> > @@ -484,6 +498,7 @@ public class Log4jLogEvent implements Lo
> >         private final String loggerName;
> >         private final Message message;
> >         private final long timeMillis;
> > +        private final Throwable thrown;
> >         private final ThrowableProxy thrownProxy;
> >         private final Map<String, String> contextMap;
> >         private final ThreadContext.ContextStack contextStack;
> > @@ -499,6 +514,7 @@ public class Log4jLogEvent implements Lo
> >             this.loggerName = event.loggerName;
> >             this.message = event.message;
> >             this.timeMillis = event.timeMillis;
> > +            this.thrown = event.thrown;
> >             this.thrownProxy = event.thrownProxy;
> >             this.contextMap = event.contextMap;
> >             this.contextStack = event.contextStack;
> > @@ -513,9 +529,8 @@ public class Log4jLogEvent implements Lo
> >          * @return Log4jLogEvent.
> >          */
> >         protected Object readResolve() {
> > -            final Log4jLogEvent result = new Log4jLogEvent(loggerName, 
> > marker, loggerFQCN,
> > -                    level, message, thrownProxy, contextMap, contextStack, 
> > threadName, source,
> > -                    timeMillis);
> > +            final Log4jLogEvent result = new Log4jLogEvent(loggerName, 
> > marker, loggerFQCN, level, message, thrown,
> > +                    thrownProxy, contextMap, contextStack, threadName, 
> > source, timeMillis);
> >             result.setEndOfBatch(isEndOfBatch);
> >             result.setIncludeLocation(isLocationRequired);
> >             return result;
> > 
> > Modified: 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java
> > URL: 
> > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java?rev=1597291&r1=1597290&r2=1597291&view=diff
> > ==============================================================================
> > --- 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java
> >  (original)
> > +++ 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java
> >  Sat May 24 13:54:16 2014
> > @@ -83,6 +83,37 @@ public class Log4jLogEventTest {
> >         assertEquals(evt.isEndOfBatch(), evt2.isEndOfBatch());
> >         assertEquals(evt.isIncludeLocation(), evt2.isIncludeLocation());
> >     }
> > +    
> > +    @Test
> > +    public void testJavaIoSerializableWithThrown() throws Exception {
> > +        final Error thrown = new InternalError("test error");
> > +        final Log4jLogEvent evt = new Log4jLogEvent("some.test", null, 
> > Strings.EMPTY,
> > +                Level.INFO, new SimpleMessage("abc"), thrown);
> > +
> > +        final ByteArrayOutputStream arr = new ByteArrayOutputStream();
> > +        final ObjectOutputStream out = new ObjectOutputStream(arr);
> > +        out.writeObject(evt);
> > +
> > +        final ByteArrayInputStream inArr = new 
> > ByteArrayInputStream(arr.toByteArray());
> > +        final ObjectInputStream in = new ObjectInputStream(inArr);
> > +        final Log4jLogEvent evt2 = (Log4jLogEvent) in.readObject();
> > +
> > +        assertEquals(evt.getTimeMillis(), evt2.getTimeMillis());
> > +        assertEquals(evt.getLoggerFqcn(), evt2.getLoggerFqcn());
> > +        assertEquals(evt.getLevel(), evt2.getLevel());
> > +        assertEquals(evt.getLoggerName(), evt2.getLoggerName());
> > +        assertEquals(evt.getMarker(), evt2.getMarker());
> > +        assertEquals(evt.getContextMap(), evt2.getContextMap());
> > +        assertEquals(evt.getContextStack(), evt2.getContextStack());
> > +        assertEquals(evt.getMessage(), evt2.getMessage());
> > +        assertEquals(evt.getSource(), evt2.getSource());
> > +        assertEquals(evt.getThreadName(), evt2.getThreadName());
> > +        assertEquals(evt.getThrown().getClass(), 
> > evt2.getThrown().getClass());
> > +        assertEquals(evt.getThrown().getMessage(), 
> > evt2.getThrown().getMessage());
> > +        assertEquals(evt.getThrownProxy(), evt2.getThrownProxy());
> > +        assertEquals(evt.isEndOfBatch(), evt2.isEndOfBatch());
> > +        assertEquals(evt.isIncludeLocation(), evt2.isIncludeLocation());
> > +    }
> > 
> >     @Test
> >     public void testNullLevelReplacedWithOFF() throws Exception {
> > 
> > Modified: 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
> > URL: 
> > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java?rev=1597291&r1=1597290&r2=1597291&view=diff
> > ==============================================================================
> > --- 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
> >  (original)
> > +++ 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/JsonLayoutTest.java
> >  Sat May 24 13:54:16 2014
> > @@ -100,10 +100,11 @@ public class JsonLayoutTest {
> >         assertTrue(str, str.contains(DQUOTE + name + DQUOTE + propSep));
> >     }
> > 
> > -    private void testAllFeatures(final boolean includeSource, final 
> > boolean compact, final boolean includeContext) throws Exception {
> > +    private void testAllFeatures(final boolean includeSource, final 
> > boolean compact, final boolean includeContext)
> > +            throws Exception {
> >         final Log4jLogEvent expected = LogEventFixtures.createLogEvent();
> > -        final AbstractJacksonLayout layout = 
> > JsonLayout.createLayout(Boolean.toString(includeSource), 
> > Boolean.toString(includeContext),
> > -                "false", Boolean.toString(compact), "UTF-8");
> > +        final AbstractJacksonLayout layout = 
> > JsonLayout.createLayout(Boolean.toString(includeSource),
> > +                Boolean.toString(includeContext), "false", 
> > Boolean.toString(compact), "UTF-8");
> >         final String str = layout.toSerializable(expected);
> >         // System.out.println(str);
> >         final String propSep = this.toPropertySeparator(compact);
> > @@ -251,8 +252,8 @@ public class JsonLayoutTest {
> >     @Test
> >     public void testLayoutLoggerName() throws Exception {
> >         final AbstractJacksonLayout layout = 
> > JsonLayout.createLayout("false", null, "false", "true", "UTF-8");
> > -        final Log4jLogEvent expected = Log4jLogEvent.createEvent("a.B", 
> > null, "f.q.c.n", Level.DEBUG, new SimpleMessage("M"), null, null,
> > -                null, "threadName", null, 1);
> > +        final Log4jLogEvent expected = Log4jLogEvent.createEvent("a.B", 
> > null, "f.q.c.n", Level.DEBUG, 
> > +                new SimpleMessage("M"), null, null, null, null, 
> > "threadName", null, 1);
> >         final String str = layout.toSerializable(expected);
> >         assertTrue(str, str.contains("\"loggerName\":\"a.B\""));
> >         final Log4jLogEvent actual = new 
> > Log4jJsonObjectMapper().readValue(str, Log4jLogEvent.class);
> > 
> > Modified: 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/LogEventFixtures.java
> > URL: 
> > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/LogEventFixtures.java?rev=1597291&r1=1597290&r2=1597291&view=diff
> > ==============================================================================
> > --- 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/LogEventFixtures.java
> >  (original)
> > +++ 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/LogEventFixtures.java
> >  Sat May 24 13:54:16 2014
> > @@ -56,7 +56,7 @@ class LogEventFixtures {
> >         final IOException ioException = new IOException("testIOEx", cause);
> >         Throwables.addSuppressed(ioException, new 
> > IndexOutOfBoundsException("I am suppressed exception 1"));
> >         Throwables.addSuppressed(ioException, new 
> > IndexOutOfBoundsException("I am suppressed exception 2"));
> > -        final ThrowableProxy throwable = new ThrowableProxy(ioException);
> > +        final ThrowableProxy throwableProxy = new 
> > ThrowableProxy(ioException);
> >         final Map<String, String> contextMap = new HashMap<String, 
> > String>();
> >         contextMap.put("MDC.A", "A_Value");
> >         contextMap.put("MDC.B", "B_Value");
> > @@ -64,13 +64,15 @@ class LogEventFixtures {
> >         contextStack.clear();
> >         contextStack.push("stack_msg1");
> >         contextStack.add("stack_msg2");
> > -        final Log4jLogEvent expected = Log4jLogEvent.createEvent("a.B", 
> > cMarker, "f.q.c.n", Level.DEBUG, new SimpleMessage("Msg"),
> > -                throwable, contextMap, contextStack, "MyThreadName", 
> > source, 1);
> > +        final Log4jLogEvent expected = Log4jLogEvent.createEvent("a.B", 
> > cMarker, "f.q.c.n", Level.DEBUG, 
> > +                new SimpleMessage("Msg"), ioException, throwableProxy, 
> > contextMap, contextStack, "MyThreadName", source,
> > +                1);
> >         // validate event?
> >         return expected;
> >     }
> > 
> > -    static void assertEqualLogEvents(final LogEvent expected, final 
> > LogEvent actual, final boolean includeSource, final boolean includeContext) 
> > {
> > +    static void assertEqualLogEvents(final LogEvent expected, final 
> > LogEvent actual, final boolean includeSource, 
> > +            final boolean includeContext) {
> >         assertEquals(expected.getClass(), actual.getClass());
> >         assertEquals(includeContext ? expected.getContextMap() : 
> > Collections.EMPTY_MAP, actual.getContextMap());
> >         assertEquals(expected.getContextStack(), actual.getContextStack());
> > @@ -82,13 +84,16 @@ class LogEventFixtures {
> >         assertEquals(expected.getTimeMillis(), actual.getTimeMillis());
> >         assertEquals(includeSource ? expected.getSource() : null, 
> > actual.getSource());
> >         assertEquals(expected.getThreadName(), actual.getThreadName());
> > +        assertNotNull("original should have an exception", 
> > expected.getThrown());
> > +        assertNull("exception should not be serialized", 
> > actual.getThrown());
> >         assertEquals(expected.getThrownProxy(), actual.getThrownProxy());
> >         assertEquals(expected.isEndOfBatch(), actual.isEndOfBatch());
> >         assertEquals(expected.isIncludeLocation(), 
> > actual.isIncludeLocation());
> > -        if (includeSource) {
> > -            assertEquals(expected.hashCode(), actual.hashCode());
> > -            assertEquals(expected, actual);
> > -        }
> > +
> > +        // original: non-null thrown & null thrownProxy
> > +        // deserialized: null thrown & non-null thrownProxy
> > +        assertNotEquals(expected.hashCode(), actual.hashCode());
> > +        assertNotEquals(expected, actual);
> >     }
> > 
> > }
> > 
> > Modified: 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
> > URL: 
> > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java?rev=1597291&r1=1597290&r2=1597291&view=diff
> > ==============================================================================
> > --- 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
> >  (original)
> > +++ 
> > logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/XmlLayoutTest.java
> >  Sat May 24 13:54:16 2014
> > @@ -256,8 +256,8 @@ public class XmlLayoutTest {
> >     @Test
> >     public void testLayoutLoggerName() {
> >         final XmlLayout layout = XmlLayout.createLayout("false", "true", 
> > "true", null, null);
> > -        final Log4jLogEvent event = Log4jLogEvent.createEvent("a.B", null, 
> > "f.q.c.n", Level.DEBUG, new SimpleMessage("M"), null, null,
> > -                null, "threadName", null, 1);
> > +        final Log4jLogEvent event = Log4jLogEvent.createEvent("a.B", null, 
> > "f.q.c.n", Level.DEBUG, 
> > +                new SimpleMessage("M"), null, null, null, null, 
> > "threadName", null, 1);
> >         final String str = layout.toSerializable(event);
> >         assertTrue(str, str.contains("loggerName=\"a.B\""));
> >     }
> > 
> > Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
> > URL: 
> > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1597291&r1=1597290&r2=1597291&view=diff
> > ==============================================================================
> > --- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
> > +++ logging/log4j/log4j2/trunk/src/changes/changes.xml Sat May 24 13:54:16 
> > 2014
> > @@ -22,6 +22,9 @@
> >   </properties>
> >   <body>
> >     <release version="2.0-rc2" date="2014-MM-DD" description="Bug fixes and 
> > enhancements">
> > +      <action issue="LOG4J2-250" dev="rpopma" type="update">
> > +        Refactor Log4jLogEvent to lazily create ThrowableProxy.
> > +      </action>
> >       <action issue="LOG4J2-647" dev="ggregory" type="update">
> >         Upgrade to Flume 1.5.0.
> >       </action>
> > 
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to