You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ck...@apache.org on 2018/04/05 02:18:35 UTC
logging-log4j2 git commit: [LOG4J2-2306] Compile with Error Prone for
static analysis
Repository: logging-log4j2
Updated Branches:
refs/heads/master 74942b3bd -> 74df59c51
[LOG4J2-2306] Compile with Error Prone for static analysis
Fixes several minor bugs uncovered by error prone.
Offset timezones are correctly parsed rather than using GMT.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/74df59c5
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/74df59c5
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/74df59c5
Branch: refs/heads/master
Commit: 74df59c51ff62589ec9b9e7df11c27b9b88edc51
Parents: 74942b3
Author: Carter Kozak <ck...@apache.org>
Authored: Wed Apr 4 15:35:46 2018 -0400
Committer: Carter Kozak <ck...@apache.org>
Committed: Wed Apr 4 22:14:44 2018 -0400
----------------------------------------------------------------------
log4j-api-java9/pom.xml | 2 ++
.../log4j/util/SortedArrayStringMapTest.java | 1 +
.../apache/logging/log4j/PerformanceComparison.java | 4 +++-
.../logging/log4j/core/impl/Log4jLogEvent.java | 2 +-
.../org/apache/logging/log4j/core/jmx/Server.java | 6 +++---
.../core/time/internal/format/FixedDateFormat.java | 6 +++++-
.../logging/log4j/core/filter/TimeFilterTest.java | 5 +++--
.../log4j/core/lookup/ResourceBundleLookupTest.java | 1 +
.../time/internal/format/FastDateParserTest.java | 2 +-
.../time/internal/format/FixedDateFormatTest.java | 2 +-
.../CsvJsonParameterLayoutFileAppenderTest.java | 1 +
.../flume/appender/FlumeEmbeddedAppenderTest.java | 9 ++++++---
.../log4j/kafka/appender/KafkaAppenderTest.java | 1 -
log4j-perf/pom.xml | 2 ++
pom.xml | 16 ++++++++++++++++
src/changes/changes.xml | 3 +++
16 files changed, 49 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-api-java9/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-api-java9/pom.xml b/log4j-api-java9/pom.xml
index 793c4b9..3d3a406 100644
--- a/log4j-api-java9/pom.xml
+++ b/log4j-api-java9/pom.xml
@@ -89,6 +89,8 @@
<target>9</target>
<release>9</release>
<proc>none</proc>
+ <!-- disable errorprone -->
+ <compilerId>javac</compilerId>
</configuration>
</plugin>
<plugin>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java
index 3d9ce3e..ea333ae 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java
@@ -47,6 +47,7 @@ public class SortedArrayStringMapTest {
new SortedArrayStringMap(-1);
}
+ @Test
public void testConstructorAllowsZeroCapacity() throws Exception {
SortedArrayStringMap sortedArrayStringMap = new SortedArrayStringMap(0);
assertEquals(0, sortedArrayStringMap.size());
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java
----------------------------------------------------------------------
diff --git a/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java b/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java
index 5c3aad6..a2c1007 100644
--- a/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java
+++ b/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java
@@ -30,6 +30,7 @@ import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.util.Profiler;
import org.junit.AfterClass;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -109,7 +110,8 @@ public class PerformanceComparison {
System.out.println("###############################################");
}
- //@Test
+ @Test
+ @Ignore
public void testRawPerformance() throws Exception {
final OutputStream os = new FileOutputStream("target/testos.log", true);
final long result1 = writeToStream(COUNT, os);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
index 455de65..11cb3dd 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
@@ -864,7 +864,7 @@ public class Log4jLogEvent implements LogEvent {
result = 31 * result + (contextStack != null ? contextStack.hashCode() : 0);
result = 31 * result + (int) (threadId ^ (threadId >>> 32));
result = 31 * result + (threadName != null ? threadName.hashCode() : 0);
- result = 31 * result + (threadPriority ^ (threadPriority >>> 32));
+ result = 31 * result + threadPriority;
result = 31 * result + (source != null ? source.hashCode() : 0);
result = 31 * result + (includeLocation ? 1 : 0);
result = 31 * result + (endOfBatch ? 1 : 0);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
index 04eaa3d..dc5a3fa 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
@@ -257,7 +257,7 @@ public final class Server {
* @param mbs the MBean Server to unregister the instrumented objects from
*/
public static void unregisterLoggerContext(final String contextName, final MBeanServer mbs) {
- final String search = String.format(LoggerContextAdminMBean.PATTERN, escape(contextName), "*");
+ final String search = String.format(LoggerContextAdminMBean.PATTERN, escape(contextName));
unregisterAllMatching(search, mbs); // unregister context mbean
// now unregister all MBeans associated with this logger context
@@ -286,12 +286,12 @@ public final class Server {
}
private static void unregisterStatusLogger(final String contextName, final MBeanServer mbs) {
- final String search = String.format(StatusLoggerAdminMBean.PATTERN, escape(contextName), "*");
+ final String search = String.format(StatusLoggerAdminMBean.PATTERN, escape(contextName));
unregisterAllMatching(search, mbs);
}
private static void unregisterContextSelector(final String contextName, final MBeanServer mbs) {
- final String search = String.format(ContextSelectorAdminMBean.PATTERN, escape(contextName), "*");
+ final String search = String.format(ContextSelectorAdminMBean.PATTERN, escape(contextName));
unregisterAllMatching(search, mbs);
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java
index 415c835..a640aea 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormat.java
@@ -306,7 +306,11 @@ public class FixedDateFormat {
final TimeZone tz;
if (options.length > 1) {
if (options[1] != null) {
- tz = TimeZone.getTimeZone(options[1]);
+ String zoneId = options[1];
+ if (zoneId.startsWith("-") || zoneId.startsWith("+")) {
+ zoneId = "GMT" + zoneId;
+ }
+ tz = TimeZone.getTimeZone(zoneId);
} else {
tz = TimeZone.getDefault();
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/TimeFilterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/TimeFilterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/TimeFilterTest.java
index c6da0e8..82135f5 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/TimeFilterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/TimeFilterTest.java
@@ -58,10 +58,11 @@ public class TimeFilterTest {
@Test
public void testTime() {
- final TimeFilter filter = TimeFilter.createFilter("02:00:00", "03:00:00", "America/LosAngeles", null, null);
+ // https://garygregory.wordpress.com/2013/06/18/what-are-the-java-timezone-ids/
+ final TimeFilter filter = TimeFilter.createFilter("02:00:00", "03:00:00", "America/Los_Angeles", null, null);
filter.start();
assertTrue(filter.isStarted());
- final Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/LosAngeles"));
+ final Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"));
cal.set(Calendar.HOUR_OF_DAY, 2);
CLOCKTIME = cal.getTimeInMillis();
LogEvent event = Log4jLogEvent.newBuilder().setTimeMillis(CLOCKTIME).build();
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/ResourceBundleLookupTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/ResourceBundleLookupTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/ResourceBundleLookupTest.java
index f1aa6bf..8d563c5 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/ResourceBundleLookupTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/ResourceBundleLookupTest.java
@@ -38,6 +38,7 @@ public class ResourceBundleLookupTest {
Assert.assertEquals("ValueA", lookup.lookup("org.apache.logging.log4j.core.lookup.resource-bundle:KeyA"));
}
+ @Test
public void testMissingKey() {
final StrLookup lookup = new ResourceBundleLookup();
Assert.assertNull(lookup.lookup("org.apache.logging.log4j.core.lookup.resource-bundle:KeyUnkown"));
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FastDateParserTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FastDateParserTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FastDateParserTest.java
index 4aee15d..139bb1c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FastDateParserTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FastDateParserTest.java
@@ -670,7 +670,7 @@ public class FastDateParserTest {
@Test
public void testLang1121() throws ParseException {
- final TimeZone kst = TimeZone.getTimeZone("KST");
+ final TimeZone kst = TimeZone.getTimeZone("Asia/Seoul");
final DateParser fdp = getInstance("yyyyMMdd", kst, Locale.KOREA);
try {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormatTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormatTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormatTest.java
index c254ca1..575ab7c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormatTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/time/internal/format/FixedDateFormatTest.java
@@ -132,7 +132,7 @@ public class FixedDateFormatTest {
public void testCreateIfSupported_customTimeZoneIfOptionsArrayWithTimeZoneElement() {
final FixedDateFormat fmt = FixedDateFormat.createIfSupported(new String[] {DEFAULT.getPattern(), "+08:00", ""});
assertEquals(DEFAULT.getPattern(), fmt.getFormat());
- assertEquals(TimeZone.getTimeZone("+08:00"), fmt.getTimeZone());
+ assertEquals(TimeZone.getTimeZone("GMT+08:00"), fmt.getTimeZone());
}
@Test(expected = NullPointerException.class)
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-csv/src/test/java/org/apache/logging/log4j/csv/appender/CsvJsonParameterLayoutFileAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-csv/src/test/java/org/apache/logging/log4j/csv/appender/CsvJsonParameterLayoutFileAppenderTest.java b/log4j-csv/src/test/java/org/apache/logging/log4j/csv/appender/CsvJsonParameterLayoutFileAppenderTest.java
index 8f87162..8b9e769 100644
--- a/log4j-csv/src/test/java/org/apache/logging/log4j/csv/appender/CsvJsonParameterLayoutFileAppenderTest.java
+++ b/log4j-csv/src/test/java/org/apache/logging/log4j/csv/appender/CsvJsonParameterLayoutFileAppenderTest.java
@@ -104,6 +104,7 @@ public class CsvJsonParameterLayoutFileAppenderTest {
testNoNulCharacters("[", "[");
}
+ @Test
public void testNoNulCharactersThreeChars() throws IOException {
testNoNulCharacters("ABC", "ABC");
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
index 035eea6..e179b0c 100644
--- a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
+++ b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
@@ -56,6 +56,7 @@ import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import com.google.common.base.Preconditions;
@@ -194,8 +195,9 @@ public class FlumeEmbeddedAppenderTest {
" Received: " + body, body.endsWith(expected));
}
}
- /* Flume 1.4.0 does not support interceptors on the embedded agent
- @Test */
+ /* Flume 1.4.0 does not support interceptors on the embedded agent */
+ @Test
+ @Ignore
public void testHeaderAddedByInterceptor() {
final StructuredDataMessage msg = new StructuredDataMessage("Test", "Test Log4j", "Test");
@@ -207,7 +209,8 @@ public class FlumeEmbeddedAppenderTest {
Assert.assertEquals("local", environmentHeader);
}
- /* @Test */
+ @Test
+ @Ignore
public void testPerformance() throws Exception {
final long start = System.currentTimeMillis();
final int count = 10000;
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java b/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java
index c1a38cb..8df3057 100644
--- a/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java
+++ b/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java
@@ -139,7 +139,6 @@ public class KafkaAppenderTest {
final ProducerRecord<byte[], byte[]> item = history.get(0);
assertNotNull(item);
assertEquals(TOPIC_NAME, item.topic());
- String msgKey = item.key().toString();
byte[] keyValue = "key".getBytes(StandardCharsets.UTF_8);
assertArrayEquals(item.key(), keyValue);
assertEquals(LOG_MESSAGE, new String(item.value(), StandardCharsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/log4j-perf/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-perf/pom.xml b/log4j-perf/pom.xml
index 3fb9af9..4316d40 100644
--- a/log4j-perf/pom.xml
+++ b/log4j-perf/pom.xml
@@ -178,6 +178,8 @@
<compilerVersion>9</compilerVersion>
<source>9</source>
<target>9</target>
+ <!-- disable errorprone -->
+ <compilerId>javac</compilerId>
</configuration>
</plugin>
<plugin>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index d8b8675..d3db404 100644
--- a/pom.xml
+++ b/pom.xml
@@ -214,6 +214,8 @@
<!-- Maven site depends on Velocity and the escaping rules are different in newer versions. -->
<!-- See https://maven.apache.org/plugins/maven-site-plugin/migrate.html -->
<velocity.plugin.version>1.5</velocity.plugin.version>
+ <errorprone.version>2.2.0</errorprone.version>
+ <plexus.errorprone.version>2.8.3</plexus.errorprone.version>
<remote.resources.plugin.version>1.5</remote.resources.plugin.version>
<manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile>
<maven.compiler.source>1.8</maven.compiler.source>
@@ -903,7 +905,21 @@
<Xmaxwarns>10000</Xmaxwarns>
<Xlint />
</compilerArguments>
+ <compilerId>javac-with-errorprone</compilerId>
+ <forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-compiler-javac-errorprone</artifactId>
+ <version>${plexus.errorprone.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_core</artifactId>
+ <version>${errorprone.version}</version>
+ </dependency>
+ </dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/74df59c5/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f519ca3..f172b52 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -115,6 +115,9 @@
<action issue="LOG4J2-2304" dev="ggregory" type="update" due-to="wumengsheng">
Log4j2 2.8.2 JMX unregister NullPointerException.
</action>
+ <action issue="LOG4J2-2306" dev="ckozak" type="fix">
+ FixedDateFormat parses timezone offsets, -8:00 is interpreted as GMT-8:00.
+ </action>
</release>
<release version="2.11.1" date="2018-MM-DD" description="GA Release 2.11.1">
<action issue="LOG4J2-2268" dev="rgoers" type="fix" due-to="Tilman Hausherr">