Skip to content

Commit da44207

Browse files
committed
fix: synchronize with 2.x
1 parent 57c4f5f commit da44207

File tree

31 files changed

+255
-233
lines changed

31 files changed

+255
-233
lines changed

log4j-api-test/src/test/java/org/apache/logging/log4j/internal/map/UnmodifiableArrayBackedMapTest.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -394,23 +394,4 @@ void copyAndRemoveAll_should_work() {
394394
actualMap = actualMap.copyAndRemoveAll(Collections.singleton("inner"));
395395
Assertions.assertThat(actualMap).isEqualTo(expectedMap);
396396
}
397-
398-
@Test
399-
void copyAndRemoveAll_should_work() {
400-
401-
// Create the actual map
402-
UnmodifiableArrayBackedMap actualMap = UnmodifiableArrayBackedMap.EMPTY_MAP;
403-
actualMap = actualMap.copyAndPut("outer", "two");
404-
actualMap = actualMap.copyAndPut("inner", "one");
405-
actualMap = actualMap.copyAndPut("not-in-closeable", "true");
406-
407-
// Create the expected map
408-
UnmodifiableArrayBackedMap expectedMap = UnmodifiableArrayBackedMap.EMPTY_MAP;
409-
expectedMap = expectedMap.copyAndPut("outer", "two");
410-
expectedMap = expectedMap.copyAndPut("not-in-closeable", "true");
411-
412-
// Remove the key and verify
413-
actualMap = actualMap.copyAndRemoveAll(Collections.singleton("inner"));
414-
Assertions.assertThat(actualMap).isEqualTo(expectedMap);
415-
}
416397
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* Public Message Types used for Log4j 2. Users may implement their own Messages.
2020
*/
2121
@Export
22-
@Version("2.24.1")
22+
@Version("2.24.2")
2323
package org.apache.logging.log4j.message;
2424

2525
import org.osgi.annotation.bundle.Export;

log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,11 @@ private static MessageFactory2 adaptMessageFactory(final MessageFactory result)
168168
*
169169
* @param logger The logger to check
170170
* @param messageFactory The message factory to check.
171+
* @deprecated As of version {@code 2.25.0}, planned to be removed!
172+
* Instead, in {@link LoggerContext#getLogger(String, MessageFactory)} implementations, namespace loggers with message factories.
173+
* If your implementation uses {@link LoggerRegistry}, you are already covered.
171174
*/
175+
@Deprecated
172176
public static void checkMessageFactory(final ExtendedLogger logger, final MessageFactory messageFactory) {
173177
final String name = logger.getName();
174178
final MessageFactory loggerMessageFactory = logger.getMessageFactory();

log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggerContext.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.apache.logging.log4j.Logger;
2020
import org.apache.logging.log4j.message.MessageFactory;
21+
import org.jspecify.annotations.Nullable;
2122

2223
/**
2324
* Anchor point for logging implementations.
@@ -55,7 +56,7 @@ default ExtendedLogger getLogger(Class<?> cls) {
5556
* @return The logger.
5657
* @since 2.14.0
5758
*/
58-
default ExtendedLogger getLogger(Class<?> cls, MessageFactory messageFactory) {
59+
default ExtendedLogger getLogger(Class<?> cls, @Nullable MessageFactory messageFactory) {
5960
final String canonicalName = cls.getCanonicalName();
6061
return getLogger(canonicalName != null ? canonicalName : cls.getName(), messageFactory);
6162
}
@@ -74,7 +75,7 @@ default ExtendedLogger getLogger(Class<?> cls, MessageFactory messageFactory) {
7475
* the logger but will log a warning if mismatched.
7576
* @return The logger with the specified name.
7677
*/
77-
ExtendedLogger getLogger(String name, MessageFactory messageFactory);
78+
ExtendedLogger getLogger(String name, @Nullable MessageFactory messageFactory);
7879

7980
/**
8081
* Gets the LoggerRegistry.
@@ -119,7 +120,7 @@ default Object getObject(String key) {
119120
* @return true if the Logger exists, false otherwise.
120121
* @since 2.5
121122
*/
122-
boolean hasLogger(String name, MessageFactory messageFactory);
123+
boolean hasLogger(String name, @Nullable MessageFactory messageFactory);
123124

124125
/**
125126
* Associates an object into the LoggerContext by name for later use.

log4j-api/src/main/java/org/apache/logging/log4j/spi/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* API classes.
2020
*/
2121
@Export
22-
@Version("2.24.2")
22+
@Version("2.25.0")
2323
package org.apache.logging.log4j.spi;
2424

2525
import org.osgi.annotation.bundle.Export;

log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public static int parseInt(final String s, final int defaultValue) {
172172
private final boolean ignoreExceptions;
173173
private final Layout<? extends Serializable> layout;
174174

175-
private ErrorHandler handler = new DefaultErrorHandler(this);
175+
private volatile ErrorHandler handler = new DefaultErrorHandler(this);
176176

177177
@Override
178178
public boolean requiresLocation() {
@@ -316,10 +316,6 @@ public void setHandler(final ErrorHandler handler) {
316316
LOGGER.error("The handler cannot be set to null");
317317
return;
318318
}
319-
if (isStarted()) {
320-
LOGGER.error("The handler cannot be changed once the appender is started");
321-
return;
322-
}
323319
this.handler = handler;
324320
}
325321

log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ public void send(final Layout<?> layout, final LogEvent event) throws IOExceptio
100100
header.getName(), header.evaluate(getConfiguration().getStrSubstitutor()));
101101
}
102102
if (sslConfiguration != null) {
103-
((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
103+
((HttpsURLConnection) urlConnection)
104+
.setSSLSocketFactory(sslConfiguration.getSslContext().getSocketFactory());
104105
}
105106
if (isHttps && !verifyHostname) {
106107
((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);

log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
package org.apache.logging.log4j.core.config;
1818

1919
import java.io.ByteArrayOutputStream;
20+
import java.io.File;
2021
import java.io.IOException;
2122
import java.io.InputStream;
2223
import java.lang.ref.WeakReference;
24+
import java.net.URI;
2325
import java.util.ArrayList;
2426
import java.util.Arrays;
2527
import java.util.Collection;
@@ -279,9 +281,10 @@ protected void initializeWatchers(
279281
if (configSource != null && (configSource.getFile() != null || configSource.getURL() != null)) {
280282
if (monitorIntervalSeconds > 0) {
281283
watchManager.setIntervalSeconds(monitorIntervalSeconds);
282-
if (configSource.getFile() != null) {
283-
final Source cfgSource = new Source(configSource);
284-
final long lastModified = configSource.getFile().lastModified();
284+
File file = configSource.getFile();
285+
if (file != null) {
286+
final Source cfgSource = new Source(file);
287+
final long lastModified = file.lastModified();
285288
final ConfigurationFileWatcher watcher =
286289
new ConfigurationFileWatcher(this, reconfigurable, listeners, lastModified);
287290
watchManager.watch(cfgSource, watcher);
@@ -297,8 +300,10 @@ protected void initializeWatchers(
297300
}
298301

299302
private void monitorSource(final Reconfigurable reconfigurable, final ConfigurationSource configSource) {
300-
if (configSource.getLastModified() > 0) {
301-
final Source cfgSource = new Source(configSource);
303+
URI uri = configSource.getURI();
304+
if (uri != null && configSource.getLastModified() > 0) {
305+
File file = configSource.getFile();
306+
final Source cfgSource = file != null ? new Source(file) : new Source(uri);
302307
final Watcher watcher = WatcherFactory.getInstance(pluginPackages)
303308
.newWatcher(cfgSource, this, reconfigurable, listeners, configSource.getLastModified());
304309
if (watcher != null) {

log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public ConfigurationSource(final InputStream stream, final URL url, final long l
142142
* @param stream the input stream, the caller is responsible for closing this resource.
143143
* @throws IOException if an exception occurred reading from the specified stream
144144
*/
145-
public ConfigurationSource(final InputStream stream) throws IOException {
145+
public ConfigurationSource(InputStream stream) throws IOException {
146146
this(toByteArray(stream), null, 0);
147147
}
148148

@@ -298,20 +298,21 @@ public InputStream getInputStream() {
298298

299299
@Override
300300
public String toString() {
301-
if (isLocation()) {
302-
return getLocation();
301+
if (source != null) {
302+
return source.getLocation();
303303
}
304304
if (this == NULL_SOURCE) {
305305
return "NULL_SOURCE";
306306
}
307+
byte[] data = this.data;
307308
final int length = data == null ? -1 : data.length;
308309
return "stream (" + length + " bytes, unknown location)";
309310
}
310311

311312
/**
312313
* Loads the configuration from a URI.
313314
* @param configLocation A URI representing the location of the configuration.
314-
* @return The ConfigurationSource for the configuration.
315+
* @return The ConfigurationSource for the configuration or {@code null}.
315316
*/
316317
public static /*@Nullable*/ ConfigurationSource fromUri(final URI configLocation) {
317318
final File configFile = FileUtils.fileFromUri(configLocation);

log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,8 @@ public SmtpManager createManager(final String name, final FactoryData data) {
308308
if (smtpProtocol.equals("smtps")) {
309309
final SslConfiguration sslConfiguration = data.getSslConfiguration();
310310
if (sslConfiguration != null) {
311-
final SSLSocketFactory sslSocketFactory = sslConfiguration.getSslSocketFactory();
311+
final SSLSocketFactory sslSocketFactory =
312+
sslConfiguration.getSslContext().getSocketFactory();
312313
properties.put(prefix + ".ssl.socketFactory", sslSocketFactory);
313314
properties.setProperty(
314315
prefix + ".ssl.checkserveridentity", Boolean.toString(sslConfiguration.isVerifyHostName()));

0 commit comments

Comments
 (0)