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 <cko...@apache.org>
Authored: Wed Apr 4 15:35:46 2018 -0400
Committer: Carter Kozak <cko...@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">

Reply via email to