vy commented on code in PR #3171:
URL: https://github.com/apache/logging-log4j2/pull/3171#discussion_r2072427609
##########
log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java:
##########
@@ -222,25 +223,31 @@ void testSerializationDeserialization() {
new DummyNanoClock(1));
((StringMap) evt.getContextData()).putValue("key", "value");
- final RingBufferLogEvent other =
SerialUtil.deserialize(SerialUtil.serialize(evt));
- assertThat(other.getLoggerName()).isEqualTo(loggerName);
- assertThat(other.getMarker()).isEqualTo(marker);
- assertThat(other.getLoggerFqcn()).isEqualTo(fqcn);
- assertThat(other.getLevel()).isEqualTo(level);
- assertThat(other.getMessage()).isEqualTo(data);
- assertThat(other.getThrown()).isNull();
- assertThat(other.getThrownProxy()).isEqualTo(new ThrowableProxy(t));
- assertThat(other.getContextData()).isEqualTo(evt.getContextData());
- assertThat(other.getContextStack()).isEqualTo(contextStack);
- assertThat(other.getThreadName()).isEqualTo(threadName);
- assertThat(other.getSource()).isEqualTo(location);
- assertThat(other.getTimeMillis()).isEqualTo(12345);
- assertThat(other.getInstant().getNanoOfMillisecond()).isEqualTo(678);
+ final LogEvent other =
SerialUtil.deserialize(SerialUtil.serialize(evt));
+ assertThat(other.getLoggerName()).as("Logger
name").isEqualTo(loggerName);
Review Comment:
Nit: I wouldn't add to the complexity with extra `as()` calls, since the
assertion failure line number precisely points to the associated field.
##########
log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java:
##########
@@ -124,6 +129,11 @@ public void setBasicValues(
this.nanoClock = aNanoClock;
}
+ /**
+ * @deprecated since 2.25.0. {@link RingBufferLogEventTranslator}
instances should only be used on the thread that
+ * created it.
+ */
+ @Deprecated
Review Comment:
Since we removed `AsyncLogger::initTranslatorThreadValues`, usages of this
method will result in undefined behavior. Shouldn't we throw an `UnsupportedOE`
in this method?
##########
log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java:
##########
@@ -128,7 +128,9 @@ public <S> void forEachParameter(final ParameterConsumer<S>
action, final S stat
@Override
public Message memento() {
- return new ObjectMessage(obj);
+ Message message = new ObjectMessage(obj);
+ message.getFormattedMessage();
Review Comment:
I presume you make this call to trigger the stack trace capture. Would you
mind documenting this, please? (Also in other `message/*Message.java` changes.)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]