Skip to content

Commit 67be357

Browse files
committed
Port log4j-api changes from 2.x
Ports minor changes in `log4j-api` from `2.x`.
1 parent b720cc2 commit 67be357

16 files changed

+332
-289
lines changed

log4j-api/src/main/java/org/apache/logging/log4j/message/BasicThreadInformation.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
*/
1717
package org.apache.logging.log4j.message;
1818

19-
import org.apache.logging.log4j.util.Chars;
19+
import static org.apache.logging.log4j.util.Chars.LF;
20+
import static org.apache.logging.log4j.util.Chars.SPACE;
21+
2022
import org.apache.logging.log4j.util.StringBuilders;
2123

2224
/**
@@ -78,16 +80,16 @@ public int hashCode() {
7880
*/
7981
@Override
8082
public void printThreadInfo(final StringBuilder sb) {
81-
StringBuilders.appendDqValue(sb, name).append(Chars.SPACE);
83+
StringBuilders.appendDqValue(sb, name).append(SPACE);
8284
if (isDaemon) {
8385
sb.append("daemon ");
8486
}
8587
sb.append("prio=").append(priority).append(" tid=").append(id).append(' ');
8688
if (threadGroupName != null) {
8789
StringBuilders.appendKeyDqValue(sb, "group", threadGroupName);
8890
}
89-
sb.append('\n');
90-
sb.append("\tThread state: ").append(state.name()).append('\n');
91+
sb.append(LF);
92+
sb.append("\tThread state: ").append(state.name()).append(LF);
9193
}
9294

9395
/**
@@ -98,7 +100,7 @@ public void printThreadInfo(final StringBuilder sb) {
98100
@Override
99101
public void printStack(final StringBuilder sb, final StackTraceElement[] trace) {
100102
for (final StackTraceElement element : trace) {
101-
sb.append("\tat ").append(element).append('\n');
103+
sb.append("\tat ").append(element).append(LF);
102104
}
103105
}
104106
}

log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessageFactory.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ public class FormattedMessageFactory implements MessageFactory {
3131
/**
3232
* Constructs a message factory with default flow strings.
3333
*/
34-
public FormattedMessageFactory() {
35-
super();
36-
}
34+
public FormattedMessageFactory() {}
3735

3836
/**
3937
* Creates {@link StringFormattedMessage} instances.

log4j-api/src/main/java/org/apache/logging/log4j/message/LocalizedMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class LocalizedMessage implements Message, LoggerNameAwareMessage {
3838

3939
private final Locale locale;
4040

41-
private final StatusLogger logger = StatusLogger.getLogger();
41+
private static final StatusLogger logger = StatusLogger.getLogger();
4242

4343
private String loggerName;
4444
private final String key;

log4j-api/src/main/java/org/apache/logging/log4j/message/LocalizedMessageFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public ResourceBundle getResourceBundle() {
6868
@Override
6969
public Message newMessage(final String key) {
7070
if (resourceBundle == null) {
71-
return new LocalizedMessage(baseName, key, null);
71+
return new LocalizedMessage(baseName, key);
7272
}
7373
return new LocalizedMessage(resourceBundle, key);
7474
}

log4j-api/src/main/java/org/apache/logging/log4j/message/Message.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ public interface Message {
7373
*
7474
* @return The message format. Some implementations, such as ParameterizedMessage, will use this as
7575
* the message "pattern". Other Messages may simply return an empty String.
76+
* TODO Do all messages have a format? What syntax? Using a Formatter object could be cleaner.
77+
* (RG) In SimpleMessage the format is identical to the formatted message. In ParameterizedMessage and
78+
* StructuredDataMessage it is not. It is up to the Message implementer to determine what this
79+
* method will return. A Formatter is inappropriate as this is very specific to the Message
80+
* implementation so it isn't clear to me how having a Formatter separate from the Message would be cleaner.
7681
*/
7782
String getFormat();
7883

log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectArrayMessage.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.apache.logging.log4j.message;
1818

1919
import java.util.Arrays;
20+
import org.apache.logging.log4j.util.Constants;
2021

2122
/**
2223
* Handles messages that contain an Object[].
@@ -31,10 +32,8 @@
3132
*/
3233
public final class ObjectArrayMessage implements Message {
3334

34-
private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
35-
36-
private final transient Object[] array;
37-
private transient String arrayString;
35+
private final Object[] array;
36+
private String arrayString;
3837

3938
/**
4039
* Creates the ObjectMessage.
@@ -43,7 +42,7 @@ public final class ObjectArrayMessage implements Message {
4342
* The Object to format.
4443
*/
4544
public ObjectArrayMessage(final Object... obj) {
46-
this.array = obj == null ? EMPTY_OBJECT_ARRAY : obj;
45+
this.array = obj == null ? Constants.EMPTY_OBJECT_ARRAY : obj;
4746
}
4847

4948
private boolean equalObjectsOrStrings(final Object[] left, final Object[] right) {

log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public boolean equals(final Object o) {
9999
}
100100

101101
final ObjectMessage that = (ObjectMessage) o;
102-
return equalObjectsOrStrings(obj, that.obj);
102+
return obj == null ? that.obj == null : equalObjectsOrStrings(obj, that.obj);
103103
}
104104

105105
private boolean equalObjectsOrStrings(final Object left, final Object right) {
@@ -108,7 +108,7 @@ private boolean equalObjectsOrStrings(final Object left, final Object right) {
108108

109109
@Override
110110
public int hashCode() {
111-
return obj.hashCode();
111+
return obj != null ? obj.hashCode() : 0;
112112
}
113113

114114
@Override

log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ final class ParameterFormatter {
6060
private static final char DELIM_START = '{';
6161
private static final char DELIM_STOP = '}';
6262
private static final char ESCAPE_CHAR = '\\';
63-
private static final DateTimeFormatter FORMATTER =
64-
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ").withZone(ZoneId.systemDefault());
6563

6664
private static final DateTimeFormatter DATE_FORMATTER =
6765
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ").withZone(ZoneId.systemDefault());
@@ -439,7 +437,7 @@ private static boolean appendDate(final Object o, final StringBuilder str) {
439437
if (!(o instanceof Date)) {
440438
return false;
441439
}
442-
str.append(FORMATTER.format(((Date) o).toInstant()));
440+
str.append(DATE_FORMATTER.format(((Date) o).toInstant()));
443441
return true;
444442
}
445443

log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedNoReferenceMessageFactory.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,7 @@ public Throwable getThrowable() {
7878
/**
7979
* Constructs a message factory with default flow strings.
8080
*/
81-
public ParameterizedNoReferenceMessageFactory() {
82-
super();
83-
}
81+
public ParameterizedNoReferenceMessageFactory() {}
8482

8583
/**
8684
* Instance of ParameterizedStatusMessageFactory.

log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessageFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public ReusableMessageFactory(final RecyclerFactory recyclerFactory) {
6565
* @param message the message to make available again
6666
* @since 2.7
6767
*/
68-
@SuppressWarnings("deprecation")
68+
@SuppressWarnings("removal")
6969
public static void release(final Message message) { // LOG4J2-1583
7070
if (message instanceof ReusableMessage) {
7171
((ReusableMessage) message).clear();

0 commit comments

Comments
 (0)