This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/2.x by this push:
new 1b544d38c9 Fix `SEI MET07-J` violations (#3602)
1b544d38c9 is described below
commit 1b544d38c9238a0039a99e296fe93da43b8f7ace
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Tue Apr 15 09:45:50 2025 +0200
Fix `SEI MET07-J` violations (#3602)
* Fix `SEI MET07-J` violations
This change:
- Deprecates public/protected hiding methods.
- Removes package-private hiding methods.
- For legacy modules that will disappear in 3.x, just suppresses the
warning.
Closes #3601
* Try skipping required checks
skip-checks: true
---
.../src/main/java/org/apache/log4j/Hierarchy.java | 7 +++++
.../org/apache/log4j/bridge/LogEventAdapter.java | 4 +--
.../org/apache/log4j/helpers/UtilLoggingLevel.java | 4 +++
.../org/apache/log4j/helpers/package-info.java | 2 +-
.../java/org/apache/log4j/spi/LoggingEvent.java | 2 +-
.../log4j/appserver/jetty/Log4j2Logger.java | 2 ++
.../log4j/appserver/tomcat/TomcatLogger.java | 2 ++
.../log4j/core/async/AsyncLoggerConfig.java | 32 +++++++++++++++++-----
.../logging/log4j/core/lookup/MainMapLookup.java | 4 +++
.../logging/log4j/core/lookup/package-info.java | 2 +-
.../template/json/resolver/ExceptionResolver.java | 4 ---
.../json/resolver/ExceptionResolverFactory.java | 2 +-
.../json/resolver/ExceptionRootCauseResolver.java | 4 ---
.../ExceptionRootCauseResolverFactory.java | 2 +-
.../3601_deprecate_or_remove_hiding_methods.xml | 10 +++++++
15 files changed, 61 insertions(+), 22 deletions(-)
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java
b/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java
index 6c3214836e..850ea52bd6 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java
@@ -16,6 +16,7 @@
*/
package org.apache.log4j;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
@@ -79,10 +80,16 @@ public class Hierarchy implements LoggerRepository,
RendererSupport, ThrowableRe
private static class PrivateLogManager extends
org.apache.logging.log4j.LogManager {
private static final String FQCN = Hierarchy.class.getName();
+ @SuppressFBWarnings(
+ value = "HSM_HIDING_METHOD",
+ justification = "The class is private, no confusion can
arise.")
public static LoggerContext getContext() {
return getContext(FQCN, false);
}
+ @SuppressFBWarnings(
+ value = "HSM_HIDING_METHOD",
+ justification = "The class is private, no confusion can
arise.")
public static org.apache.logging.log4j.Logger getLogger(final String
name) {
return getLogger(FQCN, name);
}
diff --git
a/log4j-1.2-api/src/main/java/org/apache/log4j/bridge/LogEventAdapter.java
b/log4j-1.2-api/src/main/java/org/apache/log4j/bridge/LogEventAdapter.java
index 40209ef813..d368473132 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/bridge/LogEventAdapter.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/bridge/LogEventAdapter.java
@@ -37,7 +37,7 @@ import org.apache.logging.log4j.util.Strings;
*/
public class LogEventAdapter extends LoggingEvent {
- private static final long JVM_START_TIME = initStartTime();
+ public static final long JVM_START_TIME = initStartTime();
private final LogEvent event;
@@ -50,7 +50,7 @@ public class LogEventAdapter extends LoggingEvent {
* elapsed since 01.01.1970.
* @return the time when the JVM started.
*/
- public static long getStartTime() {
+ public static long getJvmStartTime() {
return JVM_START_TIME;
}
diff --git
a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/UtilLoggingLevel.java
b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/UtilLoggingLevel.java
index 2eab2e81a4..f99ad0b8c7 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/UtilLoggingLevel.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/UtilLoggingLevel.java
@@ -18,6 +18,7 @@ package org.apache.log4j.helpers;
import static org.apache.logging.log4j.util.Strings.toRootUpperCase;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Level;
@@ -157,6 +158,7 @@ public class UtilLoggingLevel extends Level {
* @param val numeric value.
* @return matching level or UtilLoggerLevel.FINEST if no match.
*/
+ @SuppressFBWarnings(value = "HSM_HIDING_METHOD", justification = "Legacy
code")
public static Level toLevel(final int val) {
return toLevel(val, FINEST);
}
@@ -184,6 +186,7 @@ public class UtilLoggingLevel extends Level {
* @param s symbolic name.
* @return matching level or Level.DEBUG if no match.
*/
+ @SuppressFBWarnings(value = "HSM_HIDING_METHOD", justification = "Legacy
code")
public static Level toLevel(final String s) {
return toLevel(s, Level.DEBUG);
}
@@ -195,6 +198,7 @@ public class UtilLoggingLevel extends Level {
* @param defaultLevel level to return if no match.
* @return matching level or defaultLevel if no match.
*/
+ @SuppressFBWarnings(value = "HSM_HIDING_METHOD", justification = "Legacy
code")
public static Level toLevel(final String sArg, final Level defaultLevel) {
if (sArg == null) {
return defaultLevel;
diff --git
a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/package-info.java
b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/package-info.java
index c8459cb536..b94af3ba61 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/package-info.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/package-info.java
@@ -18,7 +18,7 @@
* Log4j 1.x compatibility layer.
*/
@Export
-@Version("2.20.2")
+@Version("2.20.3")
package org.apache.log4j.helpers;
import org.osgi.annotation.bundle.Export;
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java
b/log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java
index f17f56603d..71b9cb2246 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/spi/LoggingEvent.java
@@ -35,7 +35,7 @@ public class LoggingEvent {
* @return the JVM start time.
*/
public static long getStartTime() {
- return LogEventAdapter.getStartTime();
+ return LogEventAdapter.getJvmStartTime();
}
/**
diff --git
a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java
b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java
index 953b11f023..70b9344328 100644
---
a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java
+++
b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java
@@ -16,6 +16,7 @@
*/
package org.apache.logging.log4j.appserver.jetty;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.spi.ExtendedLogger;
@@ -51,6 +52,7 @@ public class Log4j2Logger extends AbstractLogger {
*/
private static class PrivateManager extends LogManager {
+ @SuppressFBWarnings("HSM_HIDING_METHOD")
public static LoggerContext getContext() {
final ClassLoader cl = AbstractLogger.class.getClassLoader();
return getContext(PARENT_FQCN, cl, false);
diff --git
a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java
b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java
index 2c546a22c4..11817c6618 100644
---
a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java
+++
b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.appserver.tomcat;
import aQute.bnd.annotation.Resolution;
import aQute.bnd.annotation.spi.ServiceProvider;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
@@ -163,6 +164,7 @@ public class TomcatLogger implements Log {
*/
private static class PrivateManager extends LogManager {
+ @SuppressFBWarnings("HSM_HIDING_METHOD")
public static LoggerContext getContext() {
final ClassLoader cl = TomcatLogger.class.getClassLoader();
URI uri = null;
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java
index e51eb82731..c85fa7d993 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java
@@ -16,6 +16,7 @@
*/
package org.apache.logging.log4j.core.async;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -90,7 +91,7 @@ public class AsyncLoggerConfig extends LoggerConfig {
isAdditivity(),
getProperties(),
getConfig(),
- includeLocation(getIncludeLocation()));
+ shouldIncludeLocation(getIncludeLocation()));
}
}
@@ -273,7 +274,14 @@ public class AsyncLoggerConfig extends LoggerConfig {
final boolean additive = Booleans.parseBoolean(additivity, true);
return new AsyncLoggerConfig(
- name, appenderRefs, filter, level, additive, properties,
config, includeLocation(includeLocation));
+ name,
+ appenderRefs,
+ filter,
+ level,
+ additive,
+ properties,
+ config,
+ shouldIncludeLocation(includeLocation));
}
/**
@@ -291,6 +299,7 @@ public class AsyncLoggerConfig extends LoggerConfig {
* @since 3.0
*/
@Deprecated
+ @SuppressFBWarnings("HSM_HIDING_METHOD")
public static LoggerConfig createLogger(
@PluginAttribute(value = "additivity", defaultBoolean = true)
final boolean additivity,
@PluginAttribute("level") final Level level,
@@ -310,11 +319,20 @@ public class AsyncLoggerConfig extends LoggerConfig {
additivity,
properties,
config,
- includeLocation(includeLocation));
+ shouldIncludeLocation(includeLocation));
}
- // Note: for asynchronous loggers, includeLocation default is FALSE
+ /**
+ * @deprecated since 2.25.0. The method will become private in version 3.0.
+ */
+ @Deprecated
+ @SuppressFBWarnings(value = "HSM_HIDING_METHOD", justification = "Should
be private.")
protected static boolean includeLocation(final String
includeLocationConfigValue) {
+ return shouldIncludeLocation(includeLocationConfigValue);
+ }
+
+ // Note: for asynchronous loggers, includeLocation default is FALSE
+ private static boolean shouldIncludeLocation(final String
includeLocationConfigValue) {
return Boolean.parseBoolean(includeLocationConfigValue);
}
@@ -343,7 +361,7 @@ public class AsyncLoggerConfig extends LoggerConfig {
isAdditivity(),
getProperties(),
getConfig(),
-
AsyncLoggerConfig.includeLocation(getIncludeLocation()));
+ shouldIncludeLocation(getIncludeLocation()));
}
}
@@ -376,7 +394,7 @@ public class AsyncLoggerConfig extends LoggerConfig {
additive,
properties,
config,
- AsyncLoggerConfig.includeLocation(includeLocation));
+ shouldIncludeLocation(includeLocation));
}
/**
@@ -402,7 +420,7 @@ public class AsyncLoggerConfig extends LoggerConfig {
additive,
properties,
config,
- AsyncLoggerConfig.includeLocation(includeLocation));
+ shouldIncludeLocation(includeLocation));
}
}
}
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MainMapLookup.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MainMapLookup.java
index 0b7a9a16f9..2ff23cc38f 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MainMapLookup.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MainMapLookup.java
@@ -16,6 +16,7 @@
*/
package org.apache.logging.log4j.core.lookup;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Map;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.config.plugins.Plugin;
@@ -74,6 +75,9 @@ public class MainMapLookup extends MapLookup {
* @param args
* An application's {@code public static main(String[])} arguments.
*/
+ @SuppressFBWarnings(
+ value = "HSM_HIDING_METHOD",
+ justification = "The MapLookup.setMainArguments() method hidden by
this one is deprecated.")
public static void setMainArguments(final String... args) {
if (args == null) {
return;
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/package-info.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/package-info.java
index d07f21e49e..97fc2f0c6d 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/package-info.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/package-info.java
@@ -21,7 +21,7 @@
* {@link org.apache.logging.log4j.core.lookup.StrLookup#CATEGORY Lookup}.
*/
@Export
-@Version("2.24.0")
+@Version("2.24.1")
package org.apache.logging.log4j.core.lookup;
import org.osgi.annotation.bundle.Export;
diff --git
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionResolver.java
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionResolver.java
index cb3f22669e..3820bbc6f9 100644
---
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionResolver.java
+++
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionResolver.java
@@ -387,10 +387,6 @@ public class ExceptionResolver implements EventResolver {
return logEvent.getThrown();
}
- static String getName() {
- return "exception";
- }
-
@Override
public boolean isResolvable() {
return stackTraceEnabled;
diff --git
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionResolverFactory.java
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionResolverFactory.java
index 8f88ea6e4b..a80d1e8010 100644
---
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionResolverFactory.java
+++
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionResolverFactory.java
@@ -36,7 +36,7 @@ public final class ExceptionResolverFactory implements
EventResolverFactory {
@Override
public String getName() {
- return ExceptionResolver.getName();
+ return "exception";
}
@Override
diff --git
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionRootCauseResolver.java
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionRootCauseResolver.java
index bd42ba9c81..91de00eb85 100644
---
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionRootCauseResolver.java
+++
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionRootCauseResolver.java
@@ -36,10 +36,6 @@ public final class ExceptionRootCauseResolver extends
ExceptionResolver {
super(context, config);
}
- static String getName() {
- return "exceptionRootCause";
- }
-
@Override
Throwable extractThrowable(final LogEvent logEvent) {
final Throwable thrown = logEvent.getThrown();
diff --git
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionRootCauseResolverFactory.java
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionRootCauseResolverFactory.java
index aad744aef3..1797483f50 100644
---
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionRootCauseResolverFactory.java
+++
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ExceptionRootCauseResolverFactory.java
@@ -36,7 +36,7 @@ public final class ExceptionRootCauseResolverFactory
implements EventResolverFac
@Override
public String getName() {
- return ExceptionRootCauseResolver.getName();
+ return "exceptionRootCause";
}
@Override
diff --git a/src/changelog/.2.x.x/3601_deprecate_or_remove_hiding_methods.xml
b/src/changelog/.2.x.x/3601_deprecate_or_remove_hiding_methods.xml
new file mode 100644
index 0000000000..40e2ac42f3
--- /dev/null
+++ b/src/changelog/.2.x.x/3601_deprecate_or_remove_hiding_methods.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="https://logging.apache.org/xml/ns"
+ xsi:schemaLocation="https://logging.apache.org/xml/ns
https://logging.apache.org/xml/ns/log4j-changelog-0.xsd"
+ type="fixed">
+ <issue id="3601"
link="https://github.com/apache/logging-log4j2/issues/3601"/>
+ <description format="asciidoc">
+ Deprecate or remove static hiding methods.
+ </description>
+</entry>