You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2018/03/10 05:40:08 UTC

[01/14] logging-chainsaw git commit: Collapse identical catch blocks

Repository: logging-chainsaw
Updated Branches:
  refs/heads/master 3a3c4488a -> 1a8b61ce2


Collapse identical catch blocks


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/3d91bdda
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/3d91bdda
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/3d91bdda

Branch: refs/heads/master
Commit: 3d91bdda584365aae0363b8ef3a4334eaf32846e
Parents: 3a3c448
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:00:39 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:00:39 2018 -0600

----------------------------------------------------------------------
 .../log4j/chainsaw/LogFilePatternLayoutBuilder.java     |  8 ++------
 src/main/java/org/apache/log4j/chainsaw/LogUI.java      |  6 +-----
 .../java/org/apache/log4j/chainsaw/ProgressPanel.java   |  5 +----
 .../log4j/chainsaw/ReceiverConfigurationPanel.java      |  6 ++----
 .../org/apache/log4j/chainsaw/color/RuleColorizer.java  |  2 --
 .../java/org/apache/log4j/net/MulticastReceiver.java    |  6 ++----
 src/main/java/org/apache/log4j/net/UDPReceiver.java     |  6 ++----
 src/main/java/org/apache/log4j/net/XMLSocketNode.java   | 12 ++++--------
 .../java/org/apache/log4j/xml/LogFileXMLReceiver.java   |  8 +-------
 9 files changed, 15 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
index d125bf0..8b5d039 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
@@ -152,14 +152,10 @@ public class LogFilePatternLayoutBuilder
   public static Map getAppenderConfiguration(File file) {
     try {
       return getXMLFileAppenderConfiguration(file);
-    } catch (IOException e) {
-      //ignore
-    } catch (ParserConfigurationException e) {
-      //ignore
-    } catch (SAXException e) {
+    } catch (IOException | SAXException | ParserConfigurationException e) {
       //ignore
     }
-    try {
+      try {
       return getPropertiesFileAppenderConfiguration(file);
     } catch (Exception e) {
       //ignore

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/chainsaw/LogUI.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
index c5223a3..c286c08 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
@@ -446,11 +446,7 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
                     } else {
                         logger.info("Updated configuration but file does not exist");
                     }
-                } catch (MalformedURLException e) {
-                    logger.error("Updated configuration - failed to convert config string to URL", e);
-                }
-                catch (URISyntaxException e)
-                {
+                } catch (MalformedURLException | URISyntaxException e) {
                     logger.error("Updated configuration - failed to convert config string to URL", e);
                 }
             }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java b/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java
index bd2e52d..6d93b0b 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java
@@ -72,10 +72,7 @@ public class ProgressPanel extends JPanel {
     }else {
         runnable.run();
     }
-    } catch (InterruptedException e) {
-      // TODO Auto-generated catch block
-      e.printStackTrace();
-    } catch (InvocationTargetException e) {
+    } catch (InterruptedException | InvocationTargetException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
index e99fca4..4494f1f 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
@@ -842,12 +842,10 @@ class ReceiverConfigurationPanel extends JPanel {
       try {
         URL newConfigurationURL = new URL(log4jConfigURLTextField.getText());
         return new File(newConfigurationURL.toURI());
-      } catch (URISyntaxException e) {
-        e.printStackTrace();
-      } catch (MalformedURLException e) {
+      } catch (URISyntaxException | MalformedURLException e) {
         e.printStackTrace();
       }
-      return null;
+        return null;
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java b/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
index 6fa4331..7e6fa26 100644
--- a/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
+++ b/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
@@ -235,8 +235,6 @@ public class RuleColorizer implements Colorizer {
 
         o.writeObject(getRules());
         o.flush();
-      } catch (FileNotFoundException fnfe) {
-        fnfe.printStackTrace();
       } catch (IOException ioe) {
         ioe.printStackTrace();
       } finally {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/net/MulticastReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/MulticastReceiver.java b/src/main/java/org/apache/log4j/net/MulticastReceiver.java
index 9500693..db47c8e 100644
--- a/src/main/java/org/apache/log4j/net/MulticastReceiver.java
+++ b/src/main/java/org/apache/log4j/net/MulticastReceiver.java
@@ -138,13 +138,11 @@ public class MulticastReceiver extends Receiver implements PortBased,
       }
     } catch (ClassNotFoundException cnfe) {
       getLogger().warn("Unable to find decoder", cnfe);
-    } catch (IllegalAccessException iae) {
+    } catch (IllegalAccessException | InstantiationException iae) {
       getLogger().warn("Could not construct decoder", iae);
-    } catch (InstantiationException ie) {
-      getLogger().warn("Could not construct decoder", ie);
     }
 
-    try {
+      try {
       addr = InetAddress.getByName(address);
     } catch (UnknownHostException uhe) {
       uhe.printStackTrace();

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/net/UDPReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/UDPReceiver.java b/src/main/java/org/apache/log4j/net/UDPReceiver.java
index 0f6d0c2..cdc2091 100644
--- a/src/main/java/org/apache/log4j/net/UDPReceiver.java
+++ b/src/main/java/org/apache/log4j/net/UDPReceiver.java
@@ -151,13 +151,11 @@ public class UDPReceiver extends Receiver implements PortBased, Pauseable {
       }
     } catch (ClassNotFoundException cnfe) {
       getLogger().warn("Unable to find decoder", cnfe);
-    } catch (IllegalAccessException iae) {
+    } catch (IllegalAccessException | InstantiationException iae) {
       getLogger().warn("Could not construct decoder", iae);
-    } catch (InstantiationException ie) {
-      getLogger().warn("Could not construct decoder", ie);
     }
 
-    try {
+      try {
       socket = new DatagramSocket(port);
       receiverThread = new UDPReceiverThread();
       receiverThread.start();

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/net/XMLSocketNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/XMLSocketNode.java b/src/main/java/org/apache/log4j/net/XMLSocketNode.java
index 212150d..3e5aebb 100644
--- a/src/main/java/org/apache/log4j/net/XMLSocketNode.java
+++ b/src/main/java/org/apache/log4j/net/XMLSocketNode.java
@@ -63,13 +63,11 @@ public class XMLSocketNode extends ComponentBase implements Runnable {
       }
     } catch (ClassNotFoundException cnfe) {
       getLogger().warn("Unable to find decoder", cnfe);
-    } catch (IllegalAccessException iae) {
+    } catch (IllegalAccessException | InstantiationException iae) {
       getLogger().warn("Unable to construct decoder", iae);
-    } catch (InstantiationException ie) {
-      getLogger().warn("Unable to construct decoder", ie);
     }
 
-    this.socket = socket;
+      this.socket = socket;
   }
 
   /**
@@ -84,13 +82,11 @@ public class XMLSocketNode extends ComponentBase implements Runnable {
       }
     } catch (ClassNotFoundException cnfe) {
       getLogger().warn("Unable to find decoder", cnfe);
-    } catch (IllegalAccessException iae) {
+    } catch (IllegalAccessException | InstantiationException iae) {
       getLogger().warn("Unable to construct decoder", iae);
-    } catch (InstantiationException ie) {
-      getLogger().warn("Unable to construct decoder", ie);
     }
 
-    this.socket = socket;
+      this.socket = socket;
     this.receiver = receiver;
   }
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/3d91bdda/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java b/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
index d839483..3fcb7c1 100644
--- a/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
+++ b/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
@@ -212,13 +212,7 @@ public class LogFileXMLReceiver extends Receiver {
                     if (o instanceof Decoder) {
                         decoderInstance = (Decoder) o;
                     }
-                } catch (ClassNotFoundException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                } catch (InstantiationException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                } catch (IllegalAccessException e) {
+                } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                 }


[11/14] logging-chainsaw git commit: Simplify boolean return expressions

Posted by ma...@apache.org.
Simplify boolean return expressions


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/0a52dc99
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/0a52dc99
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/0a52dc99

Branch: refs/heads/master
Commit: 0a52dc99070b5e1b3f99fe99bd2466a1418632a4
Parents: 27a76c0
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:10:36 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:10:36 2018 -0600

----------------------------------------------------------------------
 .../ChainsawCyclicBufferTableModel.java         | 11 +++----
 .../java/org/apache/log4j/chainsaw/LogUI.java   | 11 ++-----
 .../log4j/chainsaw/LoggerNameTreePanel.java     |  9 ++----
 .../org/apache/log4j/chainsaw/RuleMediator.java | 19 +++++------
 .../filter/EventTypeEntryContainer.java         |  5 +--
 .../receivers/PluginPropertyEditorPanel.java    |  6 +---
 .../java/org/apache/log4j/db/DBAppender.java    | 34 +++++++++-----------
 7 files changed, 33 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/0a52dc99/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
index c15a2e8..81887b6 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
@@ -766,15 +766,12 @@ fireTableRowsInserted(begin, end);
    * @see javax.swing.table.TableModel#isCellEditable(int, int)
    */
   public boolean isCellEditable(int rowIndex, int columnIndex) {
-    if (getColumnName(columnIndex).equalsIgnoreCase(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE)) {
-      return true;
-    }
+      if (getColumnName(columnIndex).equalsIgnoreCase(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE)) {
+          return true;
+      }
 
-    if (columnIndex >= columnNames.size()) {
-        return false;
-    }
+      return columnIndex < columnNames.size() && super.isCellEditable(rowIndex, columnIndex);
 
-    return super.isCellEditable(rowIndex, columnIndex);
   }
 
   /* (non-Javadoc)

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/0a52dc99/src/main/java/org/apache/log4j/chainsaw/LogUI.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
index 98174ad..82aba92 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
@@ -1580,11 +1580,7 @@ e.printStackTrace();
           Map.Entry entry = (Map.Entry) aPanelSet;
           Object o = entry.getValue();
           boolean valueToSend;
-          if (o instanceof LogPanel) {
-              valueToSend = ((DockablePanel) entry.getValue()).isDocked();
-          } else {
-              valueToSend = true;
-          }
+          valueToSend = !(o instanceof LogPanel) || ((DockablePanel) entry.getValue()).isDocked();
           m.put(entry.getKey(), valueToSend);
       }
 
@@ -1780,11 +1776,8 @@ e.printStackTrace();
    * @return log tree panel visible flag
    */
   public boolean isLogTreePanelVisible() {
-    if (getCurrentLogPanel() == null) {
-      return false;
-    }
+      return getCurrentLogPanel() != null && getCurrentLogPanel().isLogTreeVisible();
 
-    return getCurrentLogPanel().isLogTreeVisible();
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/0a52dc99/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
index 84a53f9..79ab5c0 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
@@ -195,19 +195,14 @@ final class LoggerNameTreePanel extends JPanel implements LoggerNameListener
     colorRuleDelegate = 
         new AbstractRule()
         {
-          public boolean evaluate(LoggingEvent e, Map matches)
-          {
+          public boolean evaluate(LoggingEvent e, Map matches) {
             boolean hiddenLogger = e.getLoggerName() != null && isHiddenLogger(e.getLoggerName());
             boolean hiddenExpression = (ignoreExpressionRule != null && ignoreExpressionRule.evaluate(e, null));
             boolean alwaysDisplayExpression = (alwaysDisplayExpressionRule != null && alwaysDisplayExpressionRule.evaluate(e, null));
             boolean hidden = (!alwaysDisplayExpression) && (hiddenLogger || hiddenExpression);
             String currentlySelectedLoggerName = getCurrentlySelectedLoggerName();
 
-            if (!isFocusOnSelected() && !hidden && currentlySelectedLoggerName != null && !"".equals(currentlySelectedLoggerName))
-            {
-            	return (e.getLoggerName().startsWith(currentlySelectedLoggerName+".") || e.getLoggerName().endsWith(currentlySelectedLoggerName)) ;
-            }
-            return false;
+            return !isFocusOnSelected() && !hidden && currentlySelectedLoggerName != null && !"".equals(currentlySelectedLoggerName) && (e.getLoggerName().startsWith(currentlySelectedLoggerName + ".") || e.getLoggerName().endsWith(currentlySelectedLoggerName));
           }
         };
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/0a52dc99/src/main/java/org/apache/log4j/chainsaw/RuleMediator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/RuleMediator.java b/src/main/java/org/apache/log4j/chainsaw/RuleMediator.java
index b8f6270..0e26fb9 100644
--- a/src/main/java/org/apache/log4j/chainsaw/RuleMediator.java
+++ b/src/main/java/org/apache/log4j/chainsaw/RuleMediator.java
@@ -50,20 +50,17 @@ public class RuleMediator extends AbstractRule {
    * @see org.apache.log4j.chainsaw.rule.Rule#evaluate(org.apache.log4j.spi.LoggingEvent)
    */
   public boolean evaluate(LoggingEvent e, Map matches) {
-    if (findRuleRequired) {
-      if (findRule == null) {
-        return false;
+      if (findRuleRequired) {
+          if (findRule == null) {
+              return false;
+          }
+          if (!findRule.evaluate(e, null)) {
+              return false;
+          }
       }
-      if (!findRule.evaluate(e, null)) {
-        return false;
-      }
-    }
 
-    if (loggerRule != null && !loggerRule.evaluate(e, null)) {
-      return false;
-    }
+      return (loggerRule == null || loggerRule.evaluate(e, null)) && (filterRule == null || filterRule.evaluate(e, null));
 
-      return filterRule == null || filterRule.evaluate(e, null);
   }
 
   public boolean isFindRuleRequired() {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/0a52dc99/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java b/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java
index 505fb15..459356d 100644
--- a/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java
+++ b/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java
@@ -75,10 +75,7 @@ public class EventTypeEntryContainer {
   }
   
   public boolean modelExists(String fieldName) {
-      if (fieldName != null) {
-        return modelMap.keySet().contains(fieldName.toUpperCase());
-      }
-      return false;
+      return fieldName != null && modelMap.keySet().contains(fieldName.toUpperCase());
   }
   
   public ListModel getModel(String fieldName) {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/0a52dc99/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
index 7479931..9cd329c 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
@@ -318,12 +318,8 @@ public class PluginPropertyEditorPanel extends JPanel {
         public boolean isCellEditable(int rowIndex, int columnIndex) {
 
 //        TODO Determine if the property is one of the ones a User could edit
-            if (columnIndex == 1) {
-
-                return descriptors[rowIndex].getWriteMethod() != null;
-            }
+            return columnIndex == 1 && descriptors[rowIndex].getWriteMethod() != null;
 
-            return false;
         }
 
         /* (non-Javadoc)

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/0a52dc99/src/main/java/org/apache/log4j/db/DBAppender.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/db/DBAppender.java b/src/main/java/org/apache/log4j/db/DBAppender.java
index f1efbea..799d5b5 100644
--- a/src/main/java/org/apache/log4j/db/DBAppender.java
+++ b/src/main/java/org/apache/log4j/db/DBAppender.java
@@ -167,27 +167,23 @@ public class DBAppender extends AppenderSkeleton implements UnrecognizedElementH
   }
 
   public void activateOptions() {
-    LogLog.debug("DBAppender.activateOptions called");
+      LogLog.debug("DBAppender.activateOptions called");
 
-    if (connectionSource == null) {
-      throw new IllegalStateException(
-        "DBAppender cannot function without a connection source");
-    }
+      if (connectionSource == null) {
+          throw new IllegalStateException(
+                  "DBAppender cannot function without a connection source");
+      }
 
-    sqlDialect = Util.getDialectFromCode(connectionSource.getSQLDialectCode());
-    if (GET_GENERATED_KEYS_METHOD != null) {
-        cnxSupportsGetGeneratedKeys = connectionSource.supportsGetGeneratedKeys();
-    } else {
-        cnxSupportsGetGeneratedKeys = false;
-    }
-    cnxSupportsBatchUpdates = connectionSource.supportsBatchUpdates();
-    if (!cnxSupportsGetGeneratedKeys && (sqlDialect == null)) {
-      throw new IllegalStateException(
-        "DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect");
-    }
-    
-    // all nice and dandy on the eastern front
-    super.activateOptions();
+      sqlDialect = Util.getDialectFromCode(connectionSource.getSQLDialectCode());
+      cnxSupportsGetGeneratedKeys = GET_GENERATED_KEYS_METHOD != null && connectionSource.supportsGetGeneratedKeys();
+      cnxSupportsBatchUpdates = connectionSource.supportsBatchUpdates();
+      if (!cnxSupportsGetGeneratedKeys && (sqlDialect == null)) {
+          throw new IllegalStateException(
+                  "DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect");
+      }
+
+      // all nice and dandy on the eastern front
+      super.activateOptions();
   }
 
   /**


[12/14] logging-chainsaw git commit: Remove unused imports

Posted by ma...@apache.org.
Remove unused imports


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/badb4f7d
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/badb4f7d
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/badb4f7d

Branch: refs/heads/master
Commit: badb4f7d9a46ed31abdf2380327647dd2c7b0964
Parents: 0a52dc9
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:11:15 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:14:49 2018 -0600

----------------------------------------------------------------------
 .../org/apache/log4j/chainsaw/AbstractPreferencePanel.java     | 2 --
 .../apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java | 6 ------
 src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java     | 3 ---
 .../apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java  | 1 -
 .../org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java     | 4 ----
 .../org/apache/log4j/chainsaw/CopyEventsToClipboardAction.java | 1 -
 src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java    | 1 -
 src/main/java/org/apache/log4j/chainsaw/FileMenu.java          | 3 ---
 src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java    | 1 -
 .../org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java | 1 -
 src/main/java/org/apache/log4j/chainsaw/LogPanel.java          | 1 -
 .../org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java     | 1 -
 .../org/apache/log4j/chainsaw/LogPanelPreferenceModel.java     | 1 -
 .../org/apache/log4j/chainsaw/LogPanelPreferencePanel.java     | 4 ----
 src/main/java/org/apache/log4j/chainsaw/LogUI.java             | 6 ------
 .../java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java    | 5 -----
 .../org/apache/log4j/chainsaw/TableColorizingRenderer.java     | 1 -
 src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java   | 3 ---
 src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java      | 1 -
 src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java  | 5 -----
 .../java/org/apache/log4j/chainsaw/color/RuleColorizer.java    | 2 --
 .../apache/log4j/chainsaw/filter/EventTypeEntryContainer.java  | 1 -
 src/main/java/org/apache/log4j/chainsaw/help/HelpLocator.java  | 1 -
 .../org/apache/log4j/chainsaw/layout/EventDetailLayout.java    | 1 -
 .../org/apache/log4j/chainsaw/layout/LayoutEditorPane.java     | 2 --
 .../java/org/apache/log4j/chainsaw/messages/MessageCenter.java | 2 --
 .../log4j/chainsaw/plugins/PluginClassLoaderFactory.java       | 1 -
 .../org/apache/log4j/chainsaw/prefs/LoadSettingsEvent.java     | 1 -
 .../log4j/chainsaw/receivers/NewReceiverDialogPanel.java       | 3 ---
 .../log4j/chainsaw/receivers/PluginPropertyEditorPanel.java    | 4 ----
 .../org/apache/log4j/chainsaw/receivers/ReceiversHelper.java   | 1 -
 .../org/apache/log4j/chainsaw/receivers/ReceiversPanel.java    | 2 --
 .../apache/log4j/chainsaw/receivers/ReceiversTreeModel.java    | 2 --
 .../apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java   | 2 --
 .../org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java     | 2 --
 src/main/java/org/apache/log4j/db/DBAppender.java              | 1 -
 src/main/java/org/apache/log4j/net/MulticastReceiver.java      | 1 -
 src/main/java/org/apache/log4j/net/SocketHubReceiver.java      | 1 -
 src/main/java/org/apache/log4j/net/SocketNode13.java           | 1 -
 src/main/java/org/apache/log4j/net/SocketReceiver.java         | 1 -
 src/main/java/org/apache/log4j/net/UDPReceiver.java            | 1 -
 src/main/java/org/apache/log4j/net/XMLSocketNode.java          | 1 -
 src/main/java/org/apache/log4j/plugins/PluginRegistry.java     | 1 -
 src/main/java/org/apache/log4j/rewrite/MapRewritePolicy.java   | 1 -
 .../java/org/apache/log4j/rewrite/PropertyRewritePolicy.java   | 1 -
 .../java/org/apache/log4j/varia/LogFilePatternReceiver.java    | 1 -
 src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java     | 1 -
 src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java  | 1 -
 src/main/java/org/apache/log4j/xml/XMLDecoder.java             | 1 -
 src/test/java/org/apache/log4j/db/FullCycleDBTest.java         | 1 -
 50 files changed, 93 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
index daceffe..722e8a3 100644
--- a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
@@ -34,8 +34,6 @@ import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTree;
 import javax.swing.SwingUtilities;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeCellRenderer;
 import javax.swing.tree.DefaultTreeSelectionModel;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
index 7f36aaa..5981cd4 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
@@ -19,10 +19,6 @@ package org.apache.log4j.chainsaw;
 
 import java.awt.Dimension;
 import java.awt.FlowLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -50,8 +46,6 @@ import javax.swing.JSlider;
 import javax.swing.JTextField;
 import javax.swing.SwingConstants;
 import javax.swing.UIManager;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.TreeModel;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
index a5daa90..4828747 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
@@ -19,8 +19,6 @@ package org.apache.log4j.chainsaw;
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Point;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 
 import javax.swing.JButton;
 import javax.swing.JDialog;
@@ -30,7 +28,6 @@ import javax.swing.JScrollPane;
 import javax.swing.ScrollPaneConstants;
 import javax.swing.SwingUtilities;
 import javax.swing.event.HyperlinkEvent;
-import javax.swing.event.HyperlinkListener;
 
 import org.apache.log4j.Logger;
 import org.apache.log4j.chainsaw.help.HelpManager;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
index 81887b6..050d1c7 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
@@ -22,7 +22,6 @@ import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
index c9df7e2..30e283c 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
@@ -22,14 +22,10 @@ import java.awt.Dimension;
 import java.awt.Insets;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.swing.AbstractAction;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/CopyEventsToClipboardAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/CopyEventsToClipboardAction.java b/src/main/java/org/apache/log4j/chainsaw/CopyEventsToClipboardAction.java
index 6817de5..10609c0 100644
--- a/src/main/java/org/apache/log4j/chainsaw/CopyEventsToClipboardAction.java
+++ b/src/main/java/org/apache/log4j/chainsaw/CopyEventsToClipboardAction.java
@@ -13,7 +13,6 @@ package org.apache.log4j.chainsaw;
 import java.awt.Toolkit;
 import java.awt.datatransfer.StringSelection;
 import java.awt.event.ActionEvent;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.swing.AbstractAction;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java b/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
index bcf1da3..b89ad31 100644
--- a/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
+++ b/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
@@ -22,7 +22,6 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URL;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/FileMenu.java b/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
index e3454e9..433d2ac 100644
--- a/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
+++ b/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
@@ -25,7 +25,6 @@ import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
 import java.net.URL;
-import java.util.Iterator;
 
 import javax.swing.AbstractAction;
 import javax.swing.Action;
@@ -33,8 +32,6 @@ import javax.swing.ImageIcon;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
 import javax.swing.KeyStroke;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
 
 import org.apache.log4j.chainsaw.icons.ChainsawIcons;
 import org.apache.log4j.chainsaw.osx.OSXIntegration;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java b/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java
index 5eef108..50f6a54 100644
--- a/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java
+++ b/src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java
@@ -28,7 +28,6 @@ import java.io.FileWriter;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.zip.ZipEntry;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
index 344b2fd..6357835 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
@@ -23,7 +23,6 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
index c5ec888..d1e7199 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
@@ -119,7 +119,6 @@ import javax.swing.event.PopupMenuListener;
 import javax.swing.event.TableColumnModelEvent;
 import javax.swing.event.TableColumnModelListener;
 import javax.swing.event.TableModelEvent;
-import javax.swing.event.TableModelListener;
 import javax.swing.table.TableCellEditor;
 import javax.swing.table.TableColumn;
 import javax.swing.table.TableColumnModel;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
index f0fbc47..0c98207 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
@@ -19,7 +19,6 @@
  */
 package org.apache.log4j.chainsaw;
 
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.Enumeration;
 import java.util.HashMap;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferenceModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferenceModel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferenceModel.java
index 405f31e..0d57646 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferenceModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferenceModel.java
@@ -26,7 +26,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
index 1425b31..fce03be 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
@@ -19,15 +19,11 @@ package org.apache.log4j.chainsaw;
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
-import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
 import java.util.Enumeration;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.swing.BorderFactory;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/LogUI.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
index 82aba92..7615a54 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
@@ -26,18 +26,15 @@ import java.awt.Frame;
 import java.awt.Point;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
-import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.io.IOException;
-import java.lang.Thread.UncaughtExceptionHandler;
 import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.URISyntaxException;
@@ -50,7 +47,6 @@ import java.security.Policy;
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -84,7 +80,6 @@ import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import javax.swing.event.EventListenerList;
 import javax.swing.event.HyperlinkEvent;
-import javax.swing.event.HyperlinkListener;
 
 import org.apache.log4j.Appender;
 import org.apache.log4j.AppenderSkeleton;
@@ -124,7 +119,6 @@ import org.apache.log4j.spi.Decoder;
 import org.apache.log4j.spi.LoggerRepository;
 import org.apache.log4j.spi.LoggerRepositoryEx;
 import org.apache.log4j.spi.LoggingEvent;
-import org.apache.log4j.spi.RepositorySelector;
 import org.apache.log4j.xml.DOMConfigurator;
 import org.apache.log4j.xml.XMLDecoder;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
index 79ab5c0..2818b1b 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
@@ -33,14 +33,11 @@ import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseMotionAdapter;
 import java.awt.event.MouseMotionListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -72,8 +69,6 @@ import javax.swing.event.ChangeListener;
 import javax.swing.event.EventListenerList;
 import javax.swing.event.TreeModelEvent;
 import javax.swing.event.TreeModelListener;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeCellRenderer;
 import javax.swing.tree.DefaultTreeSelectionModel;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
index 970c5c2..1b20aec 100644
--- a/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
+++ b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
@@ -25,7 +25,6 @@ import java.awt.Toolkit;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java b/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
index e4a5ad8..a91bae9 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
@@ -18,10 +18,7 @@
 package org.apache.log4j.chainsaw;
 
 import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.swing.DefaultBoundedRangeModel;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java b/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
index f475a00..b74c3ef 100644
--- a/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
@@ -36,7 +36,6 @@ import javax.swing.JScrollPane;
 import javax.swing.JToolBar;
 import javax.swing.SwingUtilities;
 import javax.swing.event.HyperlinkEvent;
-import javax.swing.event.HyperlinkListener;
 
 import org.apache.log4j.chainsaw.icons.ChainsawIcons;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java b/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
index a1d33f6..41bdcf5 100644
--- a/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
@@ -28,11 +28,8 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -60,8 +57,6 @@ import javax.swing.ListCellRenderer;
 import javax.swing.ListSelectionModel;
 import javax.swing.WindowConstants;
 import javax.swing.border.Border;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
 import javax.swing.table.DefaultTableModel;
 import javax.swing.table.TableCellRenderer;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java b/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
index 7e6fa26..6df8efd 100644
--- a/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
+++ b/src/main/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
@@ -25,7 +25,6 @@ import java.io.BufferedOutputStream;
 import java.io.EOFException;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -33,7 +32,6 @@ import java.io.ObjectOutputStream;
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java b/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java
index 459356d..561230c 100644
--- a/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java
+++ b/src/main/java/org/apache/log4j/chainsaw/filter/EventTypeEntryContainer.java
@@ -21,7 +21,6 @@ package org.apache.log4j.chainsaw.filter;
 
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/help/HelpLocator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/help/HelpLocator.java b/src/main/java/org/apache/log4j/chainsaw/help/HelpLocator.java
index 5185985..03d6983 100644
--- a/src/main/java/org/apache/log4j/chainsaw/help/HelpLocator.java
+++ b/src/main/java/org/apache/log4j/chainsaw/help/HelpLocator.java
@@ -22,7 +22,6 @@ import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.log4j.LogManager;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/layout/EventDetailLayout.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/layout/EventDetailLayout.java b/src/main/java/org/apache/log4j/chainsaw/layout/EventDetailLayout.java
index c74a084..87c5945 100644
--- a/src/main/java/org/apache/log4j/chainsaw/layout/EventDetailLayout.java
+++ b/src/main/java/org/apache/log4j/chainsaw/layout/EventDetailLayout.java
@@ -18,7 +18,6 @@
 package org.apache.log4j.chainsaw.layout;
 
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.Set;
 
 import org.apache.log4j.EnhancedPatternLayout;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java b/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
index df1cb9b..37fd3d6 100644
--- a/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
+++ b/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
@@ -37,8 +37,6 @@ import javax.swing.JScrollPane;
 import javax.swing.JToolBar;
 import javax.swing.ScrollPaneConstants;
 import javax.swing.WindowConstants;
-import javax.swing.event.CaretEvent;
-import javax.swing.event.CaretListener;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java b/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java
index 5ddb7a3..ba782a1 100644
--- a/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java
+++ b/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java
@@ -20,8 +20,6 @@ package org.apache.log4j.chainsaw.messages;
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.event.ActionEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 
 import javax.swing.AbstractAction;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java b/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java
index 6c11118..06a7505 100644
--- a/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java
+++ b/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java
@@ -17,7 +17,6 @@
 package org.apache.log4j.chainsaw.plugins;
 
 import java.io.File;
-import java.io.FilenameFilter;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/prefs/LoadSettingsEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/prefs/LoadSettingsEvent.java b/src/main/java/org/apache/log4j/chainsaw/prefs/LoadSettingsEvent.java
index 695532b..19df785 100644
--- a/src/main/java/org/apache/log4j/chainsaw/prefs/LoadSettingsEvent.java
+++ b/src/main/java/org/apache/log4j/chainsaw/prefs/LoadSettingsEvent.java
@@ -19,7 +19,6 @@ package org.apache.log4j.chainsaw.prefs;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
index de998b7..4992843 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
@@ -19,10 +19,7 @@ package org.apache.log4j.chainsaw.receivers;
 
 import java.awt.BorderLayout;
 import java.awt.Dimension;
-import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.io.IOException;
 import java.net.URL;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
index 9cd329c..95979c7 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
@@ -23,13 +23,9 @@ import java.awt.event.WindowEvent;
 import java.beans.BeanInfo;
 import java.beans.IntrospectionException;
 import java.beans.Introspector;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.beans.PropertyDescriptor;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java
index 9da4688..5912aa1 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversHelper.java
@@ -29,7 +29,6 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.xml.parsers.DocumentBuilder;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
index 13c7262..d206fa5 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
@@ -19,11 +19,9 @@ package org.apache.log4j.chainsaw.receivers;
 
 import java.awt.*;
 import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java
index 4eb0793..7d75a20 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java
@@ -17,12 +17,10 @@
 
 package org.apache.log4j.chainsaw.receivers;
 
-import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.util.Collection;
 import java.util.Vector;
 import java.util.Enumeration;
-import java.util.Iterator;
 
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeModel;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java b/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
index c109fe9..8b4470d 100644
--- a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
+++ b/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
@@ -23,8 +23,6 @@ import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.awt.Insets;
 import java.awt.Toolkit;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java b/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
index cb1160a..de5ec14 100644
--- a/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
+++ b/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
@@ -45,8 +45,6 @@ import javax.swing.JScrollPane;
 import javax.swing.JTable;
 import javax.swing.JToolBar;
 import javax.swing.SwingUtilities;
-import javax.swing.event.TableModelEvent;
-import javax.swing.event.TableModelListener;
 
 import org.apache.log4j.BasicConfigurator;
 import org.apache.log4j.LogManager;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/db/DBAppender.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/db/DBAppender.java b/src/main/java/org/apache/log4j/db/DBAppender.java
index 799d5b5..c17d79a 100644
--- a/src/main/java/org/apache/log4j/db/DBAppender.java
+++ b/src/main/java/org/apache/log4j/db/DBAppender.java
@@ -34,7 +34,6 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.Iterator;
 import java.util.Properties;
 import java.util.Set;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/net/MulticastReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/MulticastReceiver.java b/src/main/java/org/apache/log4j/net/MulticastReceiver.java
index db47c8e..5e4f283 100644
--- a/src/main/java/org/apache/log4j/net/MulticastReceiver.java
+++ b/src/main/java/org/apache/log4j/net/MulticastReceiver.java
@@ -24,7 +24,6 @@ import java.net.MulticastSocket;
 import java.net.SocketException;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.log4j.plugins.Pauseable;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/SocketHubReceiver.java b/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
index ca06b70..73f88e5 100644
--- a/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
+++ b/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
@@ -25,7 +25,6 @@ import java.io.IOException;
 import java.net.Socket;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 
 /**

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/net/SocketNode13.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/SocketNode13.java b/src/main/java/org/apache/log4j/net/SocketNode13.java
index a8cf374..cc9e1d0 100644
--- a/src/main/java/org/apache/log4j/net/SocketNode13.java
+++ b/src/main/java/org/apache/log4j/net/SocketNode13.java
@@ -23,7 +23,6 @@ import java.io.ObjectInputStream;
 import java.net.Socket;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.log4j.Logger;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/net/SocketReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/SocketReceiver.java b/src/main/java/org/apache/log4j/net/SocketReceiver.java
index 78263ab..6c482f0 100644
--- a/src/main/java/org/apache/log4j/net/SocketReceiver.java
+++ b/src/main/java/org/apache/log4j/net/SocketReceiver.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/net/UDPReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/UDPReceiver.java b/src/main/java/org/apache/log4j/net/UDPReceiver.java
index cdc2091..bc927ab 100644
--- a/src/main/java/org/apache/log4j/net/UDPReceiver.java
+++ b/src/main/java/org/apache/log4j/net/UDPReceiver.java
@@ -22,7 +22,6 @@ import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 import java.net.SocketException;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.log4j.plugins.Pauseable;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/net/XMLSocketNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/net/XMLSocketNode.java b/src/main/java/org/apache/log4j/net/XMLSocketNode.java
index 3e5aebb..09a3238 100644
--- a/src/main/java/org/apache/log4j/net/XMLSocketNode.java
+++ b/src/main/java/org/apache/log4j/net/XMLSocketNode.java
@@ -27,7 +27,6 @@ import java.io.InputStream;
 
 import java.net.Socket;
 
-import java.util.Iterator;
 import java.util.List;
 
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/plugins/PluginRegistry.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/plugins/PluginRegistry.java b/src/main/java/org/apache/log4j/plugins/PluginRegistry.java
index 0e67432..5cb8e8f 100644
--- a/src/main/java/org/apache/log4j/plugins/PluginRegistry.java
+++ b/src/main/java/org/apache/log4j/plugins/PluginRegistry.java
@@ -19,7 +19,6 @@ package org.apache.log4j.plugins;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/rewrite/MapRewritePolicy.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/rewrite/MapRewritePolicy.java b/src/main/java/org/apache/log4j/rewrite/MapRewritePolicy.java
index f5a3da8..415baf4 100644
--- a/src/main/java/org/apache/log4j/rewrite/MapRewritePolicy.java
+++ b/src/main/java/org/apache/log4j/rewrite/MapRewritePolicy.java
@@ -17,7 +17,6 @@
 package org.apache.log4j.rewrite;
 
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
 import org.apache.log4j.Logger;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/rewrite/PropertyRewritePolicy.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/rewrite/PropertyRewritePolicy.java b/src/main/java/org/apache/log4j/rewrite/PropertyRewritePolicy.java
index 2fb88ae..5c2686e 100644
--- a/src/main/java/org/apache/log4j/rewrite/PropertyRewritePolicy.java
+++ b/src/main/java/org/apache/log4j/rewrite/PropertyRewritePolicy.java
@@ -18,7 +18,6 @@ package org.apache.log4j.rewrite;
 
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.StringTokenizer;
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java b/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
index 442095c..7af7b06 100644
--- a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
+++ b/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
@@ -28,7 +28,6 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java b/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
index 35d71c7..ab73627 100644
--- a/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
+++ b/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
@@ -25,7 +25,6 @@ import java.io.Reader;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Collection;
-import java.util.Iterator;
 
 import org.apache.log4j.helpers.Constants;
 import org.apache.log4j.plugins.Receiver;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java b/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
index 76ad21b..a217415 100644
--- a/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
+++ b/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
@@ -27,7 +27,6 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 import java.util.zip.ZipInputStream;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/main/java/org/apache/log4j/xml/XMLDecoder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/xml/XMLDecoder.java b/src/main/java/org/apache/log4j/xml/XMLDecoder.java
index e476b33..caee24b 100644
--- a/src/main/java/org/apache/log4j/xml/XMLDecoder.java
+++ b/src/main/java/org/apache/log4j/xml/XMLDecoder.java
@@ -26,7 +26,6 @@ import java.io.StringReader;
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 import java.util.zip.ZipInputStream;

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/badb4f7d/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/log4j/db/FullCycleDBTest.java b/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
index 6f4334e..bbac287 100644
--- a/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
+++ b/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
@@ -36,7 +36,6 @@ import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 import java.util.HashMap;


[04/14] logging-chainsaw git commit: Replace anonymous classes with method references

Posted by ma...@apache.org.
Replace anonymous classes with method references


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/561fad68
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/561fad68
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/561fad68

Branch: refs/heads/master
Commit: 561fad6880a4eefaa97868ae37339ef3bf28dedf
Parents: 1c866d2
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:03:36 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:03:36 2018 -0600

----------------------------------------------------------------------
 .../log4j/chainsaw/ApplicationPreferenceModelPanel.java |  7 +------
 .../log4j/chainsaw/ChainsawCyclicBufferTableModel.java  |  6 +-----
 src/main/java/org/apache/log4j/chainsaw/LogPanel.java   |  8 +-------
 src/main/java/org/apache/log4j/chainsaw/LogUI.java      | 12 ++----------
 .../apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java  |  6 +-----
 5 files changed, 6 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/561fad68/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
index d876738..a6c1d23 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
@@ -123,12 +123,7 @@ public static void main(String[] args) {
       new ApplicationPreferenceModelPanel(model);
     f.getContentPane().add(panel);
 
-    model.addPropertyChangeListener(
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          System.out.println(evt);
-        }
-      });
+    model.addPropertyChangeListener(System.out::println);
     panel.setOkCancelActionListener(
       new ActionListener() {
         public void actionPerformed(ActionEvent e) {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/561fad68/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
index 86ecce7..9b513e2 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
@@ -374,11 +374,7 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
       uniqueRow = 0;
     }
 
-    SwingHelper.invokeOnEDT(new Runnable() {
-    	public void run() {
-    	    fireTableDataChanged();
-    	}
-    });
+    SwingHelper.invokeOnEDT(this::fireTableDataChanged);
 
     notifyCountListeners();
     loggerNameModelDelegate.reset();

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/561fad68/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
index 35ab3d8..63286a1 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
@@ -3388,13 +3388,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
                   //                logger.debug("Typed something recently applying filter");
                   if (!(textFeld.getText().trim().equals(lastText.trim()))) {
                     lastText = textFeld.getText();
-                    EventQueue.invokeLater(new Runnable()
-                    {
-                        public void run()
-                        {
-                          setFilter();
-                        }
-                    });
+                    EventQueue.invokeLater(DelayedTextDocumentListener.this::setFilter);
                   }
                 } else {
                   // they stopped typing a while ago, let's forget about it

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/561fad68/src/main/java/org/apache/log4j/chainsaw/LogUI.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
index c286c08..fb67907 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
@@ -453,11 +453,7 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
         }});
 
     LogManager.getRootLogger().setLevel(Level.TRACE);
-    EventQueue.invokeLater(new Runnable() {
-        public void run() {
-            logUI.activateViewer();
-        }
-    });
+    EventQueue.invokeLater(logUI::activateViewer);
 
     logger.info("SecurityManager is now: " + System.getSecurityManager());
 
@@ -1074,11 +1070,7 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     if (
       noReceiversDefined
         && applicationPreferenceModel.isShowNoReceiverWarning()) {
-      SwingHelper.invokeOnEDT(new Runnable() {
-          public void run() {
-              showReceiverConfigurationPanel();
-          }
-      });
+      SwingHelper.invokeOnEDT(this::showReceiverConfigurationPanel);
     }
 
     Container container = tutorialFrame.getContentPane();

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/561fad68/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java b/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
index 318ea57..cf032e1 100644
--- a/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
+++ b/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
@@ -630,11 +630,7 @@ public class ZeroConfPlugin extends GUIPluginSkeleton {
         frame.pack();
         frame.setVisible(true);
 
-        Thread thread = new Thread(new Runnable() {
-            public void run() {
-                plugin.shutdown();
-            }
-        });
+        Thread thread = new Thread(plugin::shutdown);
         Runtime.getRuntime().addShutdownHook(thread);
     }
 


[03/14] logging-chainsaw git commit: Use List::sort

Posted by ma...@apache.org.
Use List::sort


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/1c866d29
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/1c866d29
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/1c866d29

Branch: refs/heads/master
Commit: 1c866d29d41664cbbdea7e0ccd963749399235d1
Parents: a088cd6
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:02:31 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:02:31 2018 -0600

----------------------------------------------------------------------
 .../ChainsawCyclicBufferTableModel.java         |  8 +++----
 .../log4j/chainsaw/LogPanelLoggerTreeModel.java |  2 +-
 .../apache/log4j/chainsaw/ThresholdSlider.java  | 22 +++++++++-----------
 .../receivers/PluginPropertyEditorPanel.java    | 14 ++++++-------
 4 files changed, 21 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/1c866d29/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
index ba5512d..86ecce7 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
@@ -336,11 +336,9 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
                 updateEventMillisDelta(e, lastEvent);
                 lastEvent = e;
             }
-            Collections.sort(
-              filteredList,
-              new ColumnComparator(
-                getColumnName(currentSortColumn), currentSortColumn,
-                currentSortAscending));
+            filteredList.sort(new ColumnComparator(
+                    getColumnName(currentSortColumn), currentSortColumn,
+                    currentSortAscending));
         }
       }
       if (sort) {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/1c866d29/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
index 5b10f5f..eb1a495 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
@@ -197,7 +197,7 @@ outerFor:
       super.insert(newChild, childIndex);
 
       //	  logger.debug("Children after insert: " + this.children);
-      Collections.sort(this.children, nodeComparator);
+      this.children.sort(nodeComparator);
 
       //	  logger.debug("Children after sort: " + this.children);
     }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/1c866d29/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java b/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
index 237654e..a56bd5e 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
@@ -51,22 +51,20 @@ final class ThresholdSlider extends JSlider {
 
     priorityList = Arrays.asList(levels);
 
-    Collections.sort(
-      priorityList,
-      new Comparator() {
+    priorityList.sort(new Comparator() {
         public int compare(Object o1, Object o2) {
-          Level p1 = (Level) o1;
-          Level p2 = (Level) o2;
+            Level p1 = (Level) o1;
+            Level p2 = (Level) o2;
 
-          if (p1.toInt() == p2.toInt()) {
-            return 0;
-          } else if (p1.toInt() < p2.toInt()) {
-            return -1;
-          }
+            if (p1.toInt() == p2.toInt()) {
+                return 0;
+            } else if (p1.toInt() < p2.toInt()) {
+                return -1;
+            }
 
-          return 1;
+            return 1;
         }
-      });
+    });
 
     setModel(
       new DefaultBoundedRangeModel(

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/1c866d29/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
index b4f5385..b219f4e 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
@@ -253,17 +253,17 @@ public class PluginPropertyEditorPanel extends JPanel {
             List list = new ArrayList(Arrays.asList(
                         beanInfo.getPropertyDescriptors()));
 
-            Collections.sort(list, new Comparator() {
+            list.sort(new Comparator() {
 
-                    public int compare(Object o1, Object o2) {
+                public int compare(Object o1, Object o2) {
 
-                        PropertyDescriptor d1 = (PropertyDescriptor) o1;
-                        PropertyDescriptor d2 = (PropertyDescriptor) o2;
+                    PropertyDescriptor d1 = (PropertyDescriptor) o1;
+                    PropertyDescriptor d2 = (PropertyDescriptor) o2;
 
-                        return d1.getDisplayName().compareToIgnoreCase(
+                    return d1.getDisplayName().compareToIgnoreCase(
                             d2.getDisplayName());
-                    }
-                });
+                }
+            });
             this.plugin = p;
             this.descriptors = (PropertyDescriptor[]) list.toArray(
                     new PropertyDescriptor[0]);


[10/14] logging-chainsaw git commit: Use string switch statements

Posted by ma...@apache.org.
Use string switch statements


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/27a76c01
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/27a76c01
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/27a76c01

Branch: refs/heads/master
Commit: 27a76c01b75a1e24b6db7f62eb6cfd7e642eb51c
Parents: a65ced6
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:09:13 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:09:13 2018 -0600

----------------------------------------------------------------------
 .../log4j/chainsaw/ChainsawTabbedPane.java      | 18 +++++++++-------
 .../log4j/chainsaw/TableColorizingRenderer.java | 21 ++++++++++---------
 .../log4j/chainsaw/osx/OSXIntegration.java      | 22 ++++++++++++--------
 3 files changed, 35 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/27a76c01/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
index 48796a7..97b0cd3 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
@@ -141,13 +141,17 @@ class ChainsawTabbedPane extends JTabbedPane implements SettingsListener {
      SavableTabSetting setting = new SavableTabSetting();
      for(int i = 0 ; i < count ; i++){
        title = super.getTitleAt(i);
-       if(title.equals(WELCOME_TAB)){
-         setting.setWelcome(true);
-       } else if (title.equals("chainsaw-log")){
-         setting.setChainsawLog(true);
-       } else if (title.equals(ZEROCONF)){
-         setting.setZeroconf(true);
-       }
+         switch (title) {
+             case WELCOME_TAB:
+                 setting.setWelcome(true);
+                 break;
+             case "chainsaw-log":
+                 setting.setChainsawLog(true);
+                 break;
+             case ZEROCONF:
+                 setting.setZeroconf(true);
+                 break;
+         }
      }
 
      stream.toXML(setting, writer);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/27a76c01/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
index 5f6c1ff..970c5c2 100644
--- a/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
+++ b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
@@ -702,16 +702,17 @@ public class TableColorizingRenderer extends DefaultTableCellRenderer {
             String elementName = elem.getName();
             if (elementName != null)
             {
-                if (elementName.equals(AbstractDocument.ParagraphElementName)) {
-                    return new OneLineParagraphView(elem);
-                } else  if (elementName.equals(AbstractDocument.ContentElementName)) {
-                    return new LabelView(elem);
-                } else if (elementName.equals(AbstractDocument.SectionElementName)) {
-                    return new BoxView(elem, View.Y_AXIS);
-                } else if (elementName.equals(StyleConstants.ComponentElementName)) {
-                    return new ComponentView(elem);
-                } else if (elementName.equals(StyleConstants.IconElementName)) {
-                    return new IconView(elem);
+                switch (elementName) {
+                    case AbstractDocument.ParagraphElementName:
+                        return new OneLineParagraphView(elem);
+                    case AbstractDocument.ContentElementName:
+                        return new LabelView(elem);
+                    case AbstractDocument.SectionElementName:
+                        return new BoxView(elem, View.Y_AXIS);
+                    case StyleConstants.ComponentElementName:
+                        return new ComponentView(elem);
+                    case StyleConstants.IconElementName:
+                        return new IconView(elem);
                 }
             }
             return new LabelView(elem);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/27a76c01/src/main/java/org/apache/log4j/chainsaw/osx/OSXIntegration.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/osx/OSXIntegration.java b/src/main/java/org/apache/log4j/chainsaw/osx/OSXIntegration.java
index 7d67687..f4e13ce 100644
--- a/src/main/java/org/apache/log4j/chainsaw/osx/OSXIntegration.java
+++ b/src/main/java/org/apache/log4j/chainsaw/osx/OSXIntegration.java
@@ -66,15 +66,19 @@ public class OSXIntegration {
                         new InvocationHandler() {
 
                 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-                    if("handlePreferences".equals(method.getName())){
-                        LOG.info("handlePreferences(...) called");
-                        logui.showApplicationPreferences();
-                    }else if("handleQuit".equals(method.getName())){
-                        setHandled(args[0], logui.exit()?Boolean.TRUE:Boolean.FALSE);
-                        
-                    }else if("handleAbout".equals(method.getName())) {
-                        logui.showAboutBox();
-                        setHandled(args[0], Boolean.TRUE);
+                    switch (method.getName()) {
+                        case "handlePreferences":
+                            LOG.info("handlePreferences(...) called");
+                            logui.showApplicationPreferences();
+                            break;
+                        case "handleQuit":
+                            setHandled(args[0], logui.exit() ? Boolean.TRUE : Boolean.FALSE);
+
+                            break;
+                        case "handleAbout":
+                            logui.showAboutBox();
+                            setHandled(args[0], Boolean.TRUE);
+                            break;
                     }
 //                    TODO think about File Open/Save options
                     return null;


[14/14] logging-chainsaw git commit: Add example jenkins pipeline build

Posted by ma...@apache.org.
Add example jenkins pipeline build


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/1a8b61ce
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/1a8b61ce
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/1a8b61ce

Branch: refs/heads/master
Commit: 1a8b61ce23b53621c347cec58e8b6b7444101a59
Parents: b11c5d7
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:39:52 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:39:52 2018 -0600

----------------------------------------------------------------------
 Jenkinsfile | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/1a8b61ce/Jenkinsfile
----------------------------------------------------------------------
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..4664388
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,17 @@
+#!groovy
+pipeline {
+    agent {
+        docker {
+            image 'maven:3-alpine'
+            args '-v /root/.m2:/root/.m2'
+        }
+    }
+    stages {
+        stage('Build') {
+            steps {
+                sh 'mvn -B site:site'
+                sh 'mvn -B package'
+            }
+        }
+    }
+}


[07/14] logging-chainsaw git commit: Replace anonymous classes with lambdas

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
index 63286a1..c5ec888 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
@@ -322,11 +322,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     logPanelPreferencesFrame.setSize(740, 520);
 
     logPanelPreferencesPanel.setOkCancelActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          logPanelPreferencesFrame.setVisible(false);
-        }
-      });
+            e -> logPanelPreferencesFrame.setVisible(false));
 
         KeyStroke escape = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
             Action closeLogPanelPreferencesFrameAction = new AbstractAction() {
@@ -370,14 +366,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
 
     preferenceModel.addPropertyChangeListener(
       "scrollToBottom",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          if (value) {
-            scrollToBottom();
-          }
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              if (value) {
+                scrollToBottom();
+              }
+            });
     /*
      * Menus on which the preferencemodels rely
      */
@@ -412,23 +406,15 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     final JCheckBoxMenuItem menuItemLoggerTree =
       new JCheckBoxMenuItem("Show Logger Tree");
     menuItemLoggerTree.addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          preferenceModel.setLogTreePanelVisible(
-            menuItemLoggerTree.isSelected());
-        }
-      });
+            e -> preferenceModel.setLogTreePanelVisible(
+              menuItemLoggerTree.isSelected()));
     menuItemLoggerTree.setIcon(new ImageIcon(ChainsawIcons.WINDOW_ICON));
 
     final JCheckBoxMenuItem menuItemToggleDetails =
       new JCheckBoxMenuItem("Show Detail Pane");
     menuItemToggleDetails.addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          preferenceModel.setDetailPaneVisible(
-            menuItemToggleDetails.isSelected());
-        }
-      });
+            e -> preferenceModel.setDetailPaneVisible(
+              menuItemToggleDetails.isSelected()));
 
     menuItemToggleDetails.setIcon(new ImageIcon(ChainsawIcons.INFO));
 
@@ -461,16 +447,14 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       });
 
     preferenceModel.addPropertyChangeListener("searchResultsVisible",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean displaySearchResultsInDetailsIfAvailable = (Boolean) evt.getNewValue();
-          if (displaySearchResultsInDetailsIfAvailable) {
-            showSearchResults();
-          } else {
-            hideSearchResults();
-          }
-        }
-      });
+            evt -> {
+              boolean displaySearchResultsInDetailsIfAvailable = (Boolean) evt.getNewValue();
+              if (displaySearchResultsInDetailsIfAvailable) {
+                showSearchResults();
+              } else {
+                hideSearchResults();
+              }
+            });
 
       preferenceModel.addPropertyChangeListener("highlightSearchMatchText",
         new PropertyChangeListener() {
@@ -485,34 +469,30 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
 
     preferenceModel.addPropertyChangeListener(
       "detailPaneVisible",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean detailPaneVisible = (Boolean) evt.getNewValue();
+            evt -> {
+              boolean detailPaneVisible = (Boolean) evt.getNewValue();
 
-          if (detailPaneVisible) {
-            showDetailPane();
-          } else {
-            //don't hide the detail pane if search results are being displayed
-            if (!searchResultsDisplayed) {
-              hideDetailPane();
-            }
-          }
-        }
-      });
+              if (detailPaneVisible) {
+                showDetailPane();
+              } else {
+                //don't hide the detail pane if search results are being displayed
+                if (!searchResultsDisplayed) {
+                  hideDetailPane();
+                }
+              }
+            });
 
     preferenceModel.addPropertyChangeListener(
       "logTreePanelVisible",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean newValue = (Boolean) evt.getNewValue();
+            evt -> {
+              boolean newValue = (Boolean) evt.getNewValue();
 
-          if (newValue) {
-            showLogTreePanel();
-          } else {
-            hideLogTreePanel();
-          }
-        }
-      });
+              if (newValue) {
+                showLogTreePanel();
+              } else {
+                hideLogTreePanel();
+              }
+            });
     
     preferenceModel.addPropertyChangeListener("toolTips",
       new PropertyChangeListener() {
@@ -588,17 +568,15 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     preferenceModel.addPropertyChangeListener("dateFormatPattern", datePrefsChangeListener);
     preferenceModel.addPropertyChangeListener("dateFormatTimeZone", datePrefsChangeListener);
 
-    preferenceModel.addPropertyChangeListener("clearTableExpression", new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-            LogPanelPreferenceModel model = (LogPanelPreferenceModel)evt.getSource();
-            String expression = model.getClearTableExpression();
-            try {
-                clearTableExpressionRule = ExpressionRule.getRule(expression);
-                logger.info("clearTableExpressionRule set to: " + expression);
-            } catch (Exception e) {
-                logger.info("clearTableExpressionRule invalid - ignoring: " + expression);
-                clearTableExpressionRule = null;
-            }
+    preferenceModel.addPropertyChangeListener("clearTableExpression", evt -> {
+        LogPanelPreferenceModel model = (LogPanelPreferenceModel)evt.getSource();
+        String expression = model.getClearTableExpression();
+        try {
+            clearTableExpressionRule = ExpressionRule.getRule(expression);
+            logger.info("clearTableExpressionRule set to: " + expression);
+        } catch (Exception e) {
+            logger.info("clearTableExpressionRule invalid - ignoring: " + expression);
+            clearTableExpressionRule = null;
         }
     });
 
@@ -616,31 +594,25 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       });
 
     preferenceModel.addPropertyChangeListener("toolTips",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          searchToggleToolTips.setSelected(value);
-          mainToggleToolTips.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              searchToggleToolTips.setSelected(value);
+              mainToggleToolTips.setSelected(value);
+            });
 
     preferenceModel.addPropertyChangeListener(
       "logTreePanelVisible",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          menuItemLoggerTree.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              menuItemLoggerTree.setSelected(value);
+            });
 
     preferenceModel.addPropertyChangeListener(
       "detailPaneVisible",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          menuItemToggleDetails.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              menuItemToggleDetails.setSelected(value);
+            });
 
     applicationPreferenceModel.addPropertyChangeListener("searchColor", new PropertyChangeListener() {
         public void propertyChange(PropertyChangeEvent evt)
@@ -702,11 +674,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     searchTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "none");
 
     //add a listener to update the 'refine focus'
-    tableModel.addNewKeyListener(new NewKeyListener() {
-		public void newKeyAdded(NewKeyEvent e) {
-          columnNameKeywordMap.put(e.getKey(), "PROP." + e.getKey());
-		}
-    });
+    tableModel.addNewKeyListener(e -> columnNameKeywordMap.put(e.getKey(), "PROP." + e.getKey()));
 
     /*
      * Set the Display rule to use the mediator, the model will add itself as
@@ -716,14 +684,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     searchModel.setRuleMediator(searchRuleMediator);
 
     tableModel.addEventCountListener(
-      new EventCountListener() {
-        public void eventCountChanged(int currentCount, int totalCount) {
-          if (LogPanel.this.isVisible()) {
-            statusBar.setSelectedLine(
-              table.getSelectedRow() + 1, currentCount, totalCount, getIdentifier());
-          }
-        }
-      });
+            (currentCount, totalCount) -> {
+              if (LogPanel.this.isVisible()) {
+                statusBar.setSelectedLine(
+                  table.getSelectedRow() + 1, currentCount, totalCount, getIdentifier());
+              }
+            });
 
     tableModel.addEventCountListener(
       new EventCountListener() {
@@ -768,14 +734,10 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
      */
     LogPanelLoggerTreeModel logTreeModel = new LogPanelLoggerTreeModel();
     logTreePanel = new LoggerNameTreePanel(logTreeModel, preferenceModel, this, colorizer, filterModel);
-    logTreePanel.getLoggerVisibilityRule().addPropertyChangeListener(new PropertyChangeListener()
-    {
-        public void propertyChange(PropertyChangeEvent evt)
-        {
-            if (evt.getPropertyName().equals("searchExpression")) {
-                findCombo.setSelectedItem(evt.getNewValue().toString());
-                findNext();
-            }
+    logTreePanel.getLoggerVisibilityRule().addPropertyChangeListener(evt -> {
+        if (evt.getPropertyName().equals("searchExpression")) {
+            findCombo.setSelectedItem(evt.getNewValue().toString());
+            findNext();
         }
     });
       
@@ -813,11 +775,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
                 getActionMap().put("ESCAPE", closeColorPanelAction);
 
     colorPanel.setCloseActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          colorFrame.setVisible(false);
-        }
-      });
+            e -> colorFrame.setVisible(false));
 
     colorizer.addPropertyChangeListener(
       "colorrule",
@@ -891,33 +849,31 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     searchTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
 
-    table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
-        public void valueChanged(ListSelectionEvent evt) {
-            if (((evt.getFirstIndex() == evt.getLastIndex())
-                && (evt.getFirstIndex() > 0) && previousLastIndex != -1) || (evt.getValueIsAdjusting())) {
-              return;
-            }
-            boolean lastIndexOnLastRow = (evt.getLastIndex() == (table.getRowCount() - 1));
-            boolean lastIndexSame = (previousLastIndex == evt.getLastIndex());
+    table.getSelectionModel().addListSelectionListener(evt -> {
+        if (((evt.getFirstIndex() == evt.getLastIndex())
+            && (evt.getFirstIndex() > 0) && previousLastIndex != -1) || (evt.getValueIsAdjusting())) {
+          return;
+        }
+        boolean lastIndexOnLastRow = (evt.getLastIndex() == (table.getRowCount() - 1));
+        boolean lastIndexSame = (previousLastIndex == evt.getLastIndex());
 
-            /*
-             * when scroll-to-bottom is active, here is what events look like:
-             * rowcount-1: 227, last: 227, previous last: 191..first: 191
-             *
-             * when the user has unselected the bottom row, here is what the events look like:
-             * rowcount-1: 227, last: 227, previous last: 227..first: 222
-             *
-             * note: previouslast is set after it is evaluated in the bypass scroll check
-            */
-           //System.out.println("rowcount: " + (table.getRowCount() - 1) + ", last: " + evt.getLastIndex() +", previous last: " + previousLastIndex + "..first: " + evt.getFirstIndex() + ", isadjusting: " + evt.getValueIsAdjusting());
-
-            boolean disableScrollToBottom = (lastIndexOnLastRow && lastIndexSame && previousLastIndex != evt.getFirstIndex());
-            if (disableScrollToBottom && isScrollToBottom() && table.getRowCount() > 0) {
-              preferenceModel.setScrollToBottom(false);
-            }
-            previousLastIndex = evt.getLastIndex();
-          }
+        /*
+         * when scroll-to-bottom is active, here is what events look like:
+         * rowcount-1: 227, last: 227, previous last: 191..first: 191
+         *
+         * when the user has unselected the bottom row, here is what the events look like:
+         * rowcount-1: 227, last: 227, previous last: 227..first: 222
+         *
+         * note: previouslast is set after it is evaluated in the bypass scroll check
+        */
+       //System.out.println("rowcount: " + (table.getRowCount() - 1) + ", last: " + evt.getLastIndex() +", previous last: " + previousLastIndex + "..first: " + evt.getFirstIndex() + ", isadjusting: " + evt.getValueIsAdjusting());
+
+        boolean disableScrollToBottom = (lastIndexOnLastRow && lastIndexSame && previousLastIndex != evt.getFirstIndex());
+        if (disableScrollToBottom && isScrollToBottom() && table.getRowCount() > 0) {
+          preferenceModel.setScrollToBottom(false);
         }
+        previousLastIndex = evt.getLastIndex();
+      }
     );
 
     table.getSelectionModel().addListSelectionListener(
@@ -994,35 +950,30 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
      * added as columns
      */
     tableModel.addNewKeyListener(
-      new NewKeyListener() {
-        public void newKeyAdded(final NewKeyEvent e) {
-        	SwingHelper.invokeOnEDT(new Runnable() {
-        		public void run() {
-           // don't add the column if we already know about it, this could be if we've seen it before and saved the column preferences
-            //this may throw an illegalargexception - ignore it because we need to add only if not already added
-        	//if the column is already added, don't add again
-        	
-        	try {
-        	if(table.getColumn(e.getKey())!=null){
-                return;
-            }
-            //no need to check search table - we use the same columns
-        	} catch (IllegalArgumentException iae) {}
-          TableColumn col = new TableColumn(e.getNewModelIndex());
-          col.setHeaderValue(e.getKey());
-
-          if (preferenceModel.addColumn(col)) {
-            if (preferenceModel.isColumnVisible(col) || !applicationPreferenceModel.isDefaultColumnsSet() || applicationPreferenceModel.isDefaultColumnsSet() &&
-                applicationPreferenceModel.getDefaultColumnNames().contains(col.getHeaderValue())) {
-              table.addColumn(col);
-                searchTable.addColumn(col);
-          	  preferenceModel.setColumnVisible(e.getKey().toString(), true);
-            }
-          }
-        		}
-        	});
-        }
-      });
+            e -> SwingHelper.invokeOnEDT(() -> {
+// don't add the column if we already know about it, this could be if we've seen it before and saved the column preferences
+//this may throw an illegalargexception - ignore it because we need to add only if not already added
+              //if the column is already added, don't add again
+
+              try {
+                if (table.getColumn(e.getKey()) != null) {
+                  return;
+                }
+//no need to check search table - we use the same columns
+              } catch (IllegalArgumentException iae) {
+              }
+              TableColumn col = new TableColumn(e.getNewModelIndex());
+              col.setHeaderValue(e.getKey());
+
+              if (preferenceModel.addColumn(col)) {
+                if (preferenceModel.isColumnVisible(col) || !applicationPreferenceModel.isDefaultColumnsSet() || applicationPreferenceModel.isDefaultColumnsSet() &&
+                        applicationPreferenceModel.getDefaultColumnNames().contains(col.getHeaderValue())) {
+                  table.addColumn(col);
+                  searchTable.addColumn(col);
+                  preferenceModel.setColumnVisible(e.getKey().toString(), true);
+                }
+              }
+            }));
 
     //if the table is refiltered, try to reselect the last selected row
     //refilter with a newValue of TRUE means refiltering is about to begin
@@ -1242,14 +1193,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     });
     findMarkerRule = ExpressionRule.getRule("prop." + ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE + " exists");
         
-    tableModel.addTableModelListener(new TableModelListener() {
-		public void tableChanged(TableModelEvent e) {
-            int currentRow = table.getSelectedRow();
-            if (e.getFirstRow() <= currentRow && e.getLastRow() >= currentRow) {
-                //current row has changed - update
-                detailPaneUpdater.setAndUpdateSelectedRow(table.getSelectedRow());
-            }
-		}
+    tableModel.addTableModelListener(e -> {
+int currentRow = table.getSelectedRow();
+if (e.getFirstRow() <= currentRow && e.getLastRow() >= currentRow) {
+//current row has changed - update
+detailPaneUpdater.setAndUpdateSelectedRow(table.getSelectedRow());
+}
     });
     addPropertyChangeListener("detailPaneConversionPattern", detailPaneUpdater);
 
@@ -1324,20 +1273,14 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     layoutEditorDialog.setSize(640, 480);
 
     layoutEditorPane.addCancelActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          layoutEditorDialog.setVisible(false);
-        }
-      });
+            e -> layoutEditorDialog.setVisible(false));
 
     layoutEditorPane.addOkActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          setDetailPaneConversionPattern(
-            layoutEditorPane.getConversionPattern());
-          layoutEditorDialog.setVisible(false);
-        }
-      });
+            e -> {
+              setDetailPaneConversionPattern(
+                layoutEditorPane.getConversionPattern());
+              layoutEditorDialog.setVisible(false);
+            });
 
     Action copyToRefineFocusAction = new AbstractAction("Set 'refine focus' field") {
         public void actionPerformed(ActionEvent e) {
@@ -1489,16 +1432,14 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       public BestFit() {
         super("Best fit column");
     addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent evt) {
-          if (currentPoint != null) {
-            int column = currentTable.columnAtPoint(currentPoint);
-            int maxWidth = getMaxColumnWidth(column);
-            currentTable.getColumnModel().getColumn(column).setPreferredWidth(
-              maxWidth);
-          }
-        }
-      });
+            evt -> {
+              if (currentPoint != null) {
+                int column = currentTable.columnAtPoint(currentPoint);
+                int maxWidth = getMaxColumnWidth(column);
+                currentTable.getColumnModel().getColumn(column).setPreferredWidth(
+                  maxWidth);
+              }
+            });
       }
     }
 
@@ -1507,11 +1448,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
         super("Color settings...");
         setIcon(ChainsawIcons.ICON_PREFERENCES);
   addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent evt) {
-          showColorPreferences();
-        }
-      });
+          evt -> showColorPreferences());
       }
     }
 
@@ -1520,11 +1457,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
         super("Tab Preferences...");
         setIcon(ChainsawIcons.ICON_PREFERENCES);
     addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent evt) {
-          showPreferences();
-        }
-      });
+            evt -> showPreferences());
     }
   }
 
@@ -1532,23 +1465,21 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       public FocusOn() {
         super("Set 'refine focus' field to value under pointer");
     addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent evt) {
-          if (currentPoint != null) {
-            String operator = "==";
-            int column = currentTable.columnAtPoint(currentPoint);
-            int row = currentTable.rowAtPoint(currentPoint);
-            String colName = currentTable.getColumnName(column).toUpperCase();
-            String value = getValueOf(row, column);
-
-            if (columnNameKeywordMap.containsKey(colName)) {
-              filterText.setText(
-                columnNameKeywordMap.get(colName).toString() + " " + operator
-                + " '" + value + "'");
-            }
-          }
-        }
-      });
+            evt -> {
+              if (currentPoint != null) {
+                String operator = "==";
+                int column = currentTable.columnAtPoint(currentPoint);
+                int row = currentTable.rowAtPoint(currentPoint);
+                String colName = currentTable.getColumnName(column).toUpperCase();
+                String value = getValueOf(row, column);
+
+                if (columnNameKeywordMap.containsKey(colName)) {
+                  filterText.setText(
+                    columnNameKeywordMap.get(colName).toString() + " " + operator
+                    + " '" + value + "'");
+                }
+              }
+            });
       }
     }
 
@@ -1556,25 +1487,23 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       public DefineAddCustomFilter() {
         super("Add value under pointer to 'refine focus' field");
   addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent evt) {
-          if (currentPoint != null) {
-            String operator = "==";
-            int column = currentTable.columnAtPoint(currentPoint);
-            int row = currentTable.rowAtPoint(currentPoint);
-            String value = getValueOf(row, column);
-            String colName = currentTable.getColumnName(column).toUpperCase();
+          evt -> {
+            if (currentPoint != null) {
+              String operator = "==";
+              int column = currentTable.columnAtPoint(currentPoint);
+              int row = currentTable.rowAtPoint(currentPoint);
+              String value = getValueOf(row, column);
+              String colName = currentTable.getColumnName(column).toUpperCase();
+
+              if (columnNameKeywordMap.containsKey(colName)) {
+                filterText.setText(
+                  filterText.getText() + " && "
+                  + columnNameKeywordMap.get(colName).toString() + " "
+                  + operator + " '" + value + "'");
+              }
 
-            if (columnNameKeywordMap.containsKey(colName)) {
-              filterText.setText(
-                filterText.getText() + " && "
-                + columnNameKeywordMap.get(colName).toString() + " "
-                + operator + " '" + value + "'");
             }
-
-          }
-        }
-      });
+          });
       }
     }
 
@@ -1582,25 +1511,23 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       public DefineAddCustomFind() {
         super("Add value under pointer to 'find' field");
   addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent evt) {
-          if (currentPoint != null) {
-            String operator = "==";
-            int column = currentTable.columnAtPoint(currentPoint);
-            int row = currentTable.rowAtPoint(currentPoint);
-            String value = getValueOf(row, column);
-            String colName = currentTable.getColumnName(column).toUpperCase();
-
-            if (columnNameKeywordMap.containsKey(colName)) {
-              findCombo.setSelectedItem(
-                findText.getText() + " && "
-                + columnNameKeywordMap.get(colName).toString() + " "
-                + operator + " '" + value + "'");
-              findNext();
+          evt -> {
+            if (currentPoint != null) {
+              String operator = "==";
+              int column = currentTable.columnAtPoint(currentPoint);
+              int row = currentTable.rowAtPoint(currentPoint);
+              String value = getValueOf(row, column);
+              String colName = currentTable.getColumnName(column).toUpperCase();
+
+              if (columnNameKeywordMap.containsKey(colName)) {
+                findCombo.setSelectedItem(
+                  findText.getText() + " && "
+                  + columnNameKeywordMap.get(colName).toString() + " "
+                  + operator + " '" + value + "'");
+                findNext();
+              }
             }
-          }
-        }
-      });
+          });
       }
     }
 
@@ -1608,26 +1535,24 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       public BuildColorRule() {
         super("Define color rule for value under pointer");
       addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent evt) {
-          if (currentPoint != null) {
-            String operator = "==";
-            int column = currentTable.columnAtPoint(currentPoint);
-            int row = currentTable.rowAtPoint(currentPoint);
-            String colName = currentTable.getColumnName(column).toUpperCase();
-            String value = getValueOf(row, column);
-
-            if (columnNameKeywordMap.containsKey(colName)) {
-                Color c = JColorChooser.showDialog(getRootPane(), "Choose a color", Color.red);
-                if (c != null) {
-                    String expression = columnNameKeywordMap.get(colName).toString() + " " + operator + " '" + value + "'";
-                    colorizer.addRule(ChainsawConstants.DEFAULT_COLOR_RULE_NAME, new ColorRule(expression,
-                            ExpressionRule.getRule(expression), c, ChainsawConstants.COLOR_DEFAULT_FOREGROUND));
+              evt -> {
+                if (currentPoint != null) {
+                  String operator = "==";
+                  int column = currentTable.columnAtPoint(currentPoint);
+                  int row = currentTable.rowAtPoint(currentPoint);
+                  String colName = currentTable.getColumnName(column).toUpperCase();
+                  String value = getValueOf(row, column);
+
+                  if (columnNameKeywordMap.containsKey(colName)) {
+                      Color c = JColorChooser.showDialog(getRootPane(), "Choose a color", Color.red);
+                      if (c != null) {
+                          String expression = columnNameKeywordMap.get(colName).toString() + " " + operator + " '" + value + "'";
+                          colorizer.addRule(ChainsawConstants.DEFAULT_COLOR_RULE_NAME, new ColorRule(expression,
+                                  ExpressionRule.getRule(expression), c, ChainsawConstants.COLOR_DEFAULT_FOREGROUND));
+                      }
+                  }
                 }
-            }
-          }
-        }
-      });
+              });
       }
     }
 
@@ -1722,23 +1647,21 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
         super("Find value under pointer");
 
     addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent evt) {
-          if (currentPoint != null) {
-            String operator = "==";
-            int column = currentTable.columnAtPoint(currentPoint);
-            int row = currentTable.rowAtPoint(currentPoint);
-            String colName = currentTable.getColumnName(column).toUpperCase();
-            String value = getValueOf(row, column);
-            if (columnNameKeywordMap.containsKey(colName)) {
-              findCombo.setSelectedItem(
-                columnNameKeywordMap.get(colName).toString() + " " + operator
-                + " '" + value + "'");
-              findNext();
-            }
-          }
-        }
-      });
+            evt -> {
+              if (currentPoint != null) {
+                String operator = "==";
+                int column = currentTable.columnAtPoint(currentPoint);
+                int row = currentTable.rowAtPoint(currentPoint);
+                String colName = currentTable.getColumnName(column).toUpperCase();
+                String value = getValueOf(row, column);
+                if (columnNameKeywordMap.containsKey(colName)) {
+                  findCombo.setSelectedItem(
+                    columnNameKeywordMap.get(colName).toString() + " " + operator
+                    + " '" + value + "'");
+                  findNext();
+                }
+              }
+            });
       }
     }
 
@@ -1766,15 +1689,13 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       public DisplayNormalTimes() {
         super("Hide relative times");
   addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          if (currentPoint != null) {
-            ((TableColorizingRenderer)currentTable.getDefaultRenderer(Object.class)).setUseNormalTimes();
-            ((ChainsawCyclicBufferTableModel)currentTable.getModel()).reFilter();
-            setEnabled(true);
-          }
-        }
-    });
+          e -> {
+            if (currentPoint != null) {
+              ((TableColorizingRenderer)currentTable.getDefaultRenderer(Object.class)).setUseNormalTimes();
+              ((ChainsawCyclicBufferTableModel)currentTable.getModel()).reFilter();
+              setEnabled(true);
+            }
+          });
       }
     }
 
@@ -1782,21 +1703,19 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     public DisplayRelativeTimesToRowUnderCursor() {
       super("Show times relative to this event");
       addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-            if (currentPoint != null) {
-              int row = currentTable.rowAtPoint(currentPoint);
-              ChainsawCyclicBufferTableModel cyclicBufferTableModel = (ChainsawCyclicBufferTableModel) currentTable.getModel();
-              LoggingEventWrapper loggingEventWrapper = cyclicBufferTableModel.getRow(row);
-              if (loggingEventWrapper != null)
-              {
-                  ((TableColorizingRenderer)currentTable.getDefaultRenderer(Object.class)).setUseRelativeTimes(loggingEventWrapper.getLoggingEvent().getTimeStamp());
-                  cyclicBufferTableModel.reFilter();
-              }
-              setEnabled(true);
-            }
-        }
-      });
+              e -> {
+                  if (currentPoint != null) {
+                    int row = currentTable.rowAtPoint(currentPoint);
+                    ChainsawCyclicBufferTableModel cyclicBufferTableModel = (ChainsawCyclicBufferTableModel) currentTable.getModel();
+                    LoggingEventWrapper loggingEventWrapper = cyclicBufferTableModel.getRow(row);
+                    if (loggingEventWrapper != null)
+                    {
+                        ((TableColorizingRenderer)currentTable.getDefaultRenderer(Object.class)).setUseRelativeTimes(loggingEventWrapper.getLoggingEvent().getTimeStamp());
+                        cyclicBufferTableModel.reFilter();
+                    }
+                    setEnabled(true);
+                  }
+              });
     }
     }
 
@@ -1804,15 +1723,13 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       public DisplayRelativeTimesToPreviousRow() {
         super("Show times relative to previous rows");
       addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-              if (currentPoint != null) {
-                ((TableColorizingRenderer)currentTable.getDefaultRenderer(Object.class)).setUseRelativeTimesToPreviousRow();
-                ((ChainsawCyclicBufferTableModel)currentTable.getModel()).reFilter();
-                setEnabled(true);
-              }
-          }
-        });
+              e -> {
+                  if (currentPoint != null) {
+                    ((TableColorizingRenderer)currentTable.getDefaultRenderer(Object.class)).setUseRelativeTimesToPreviousRow();
+                    ((ChainsawCyclicBufferTableModel)currentTable.getModel()).reFilter();
+                    setEnabled(true);
+                  }
+              });
       }
     }
 
@@ -2074,21 +1991,16 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
   
   private void scrollToBottom() {
     //run this in an invokeLater block to ensure this action is enqueued to the end of the EDT
-    EventQueue.invokeLater(new Runnable()
-    {
-        public void run() {
-          int scrollRow = tableModel.getRowCount() - 1;
-            table.scrollToRow(scrollRow);
-        }
+    EventQueue.invokeLater(() -> {
+      int scrollRow = tableModel.getRowCount() - 1;
+        table.scrollToRow(scrollRow);
     });
   }
 
   public void scrollToTop() {
-      EventQueue.invokeLater(new Runnable() {
-          public void run() {
-              if (tableModel.getRowCount() > 1) {
-                  table.scrollToRow(0);
-              }
+      EventQueue.invokeLater(() -> {
+          if (tableModel.getRowCount() > 1) {
+              table.scrollToRow(0);
           }
       });
   }
@@ -2124,89 +2036,87 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
    */
   public void receiveEventBatch(String ident, final List events) {
 
-    SwingHelper.invokeOnEDT(new Runnable() {
-      public void run() {
-        /*
-        * if this panel is paused, we totally ignore events
-        */
-        if (isPaused()) {
-          return;
-        }
-        final int selectedRow = table.getSelectedRow();
-        final int startingRow = table.getRowCount();
-        final LoggingEventWrapper selectedEvent;
-        if (selectedRow >= 0) {
-          selectedEvent = tableModel.getRow(selectedRow);
-        } else {
-          selectedEvent = null;
-        }
-
-        final int startingSearchRow = searchTable.getRowCount();
-
-        boolean rowAdded = false;
-        boolean searchRowAdded = false;
+    SwingHelper.invokeOnEDT(() -> {
+      /*
+      * if this panel is paused, we totally ignore events
+      */
+      if (isPaused()) {
+        return;
+      }
+      final int selectedRow = table.getSelectedRow();
+      final int startingRow = table.getRowCount();
+      final LoggingEventWrapper selectedEvent;
+      if (selectedRow >= 0) {
+        selectedEvent = tableModel.getRow(selectedRow);
+      } else {
+        selectedEvent = null;
+      }
 
-        int addedRowCount = 0;
-        int searchAddedRowCount = 0;
+      final int startingSearchRow = searchTable.getRowCount();
 
-        for (Object event1 : events) {
-          //these are actual LoggingEvent instances
-          LoggingEvent event = (LoggingEvent) event1;
-          //create two separate loggingEventWrappers (main table and search table), as they have different info on display state
-          LoggingEventWrapper loggingEventWrapper1 = new LoggingEventWrapper(event);
-          //if the clearTableExpressionRule is not null, evaluate & clear the table if it matches
-          if (clearTableExpressionRule != null && clearTableExpressionRule.evaluate(event, null)) {
-            logger.info("clear table expression matched - clearing table - matching event msg - " + event.getMessage());
-            clearEvents();
-          }
+      boolean rowAdded = false;
+      boolean searchRowAdded = false;
 
-          updateOtherModels(event);
-          boolean isCurrentRowAdded = tableModel.isAddRow(loggingEventWrapper1);
-          if (isCurrentRowAdded) {
-            addedRowCount++;
-          }
-          rowAdded = rowAdded || isCurrentRowAdded;
+      int addedRowCount = 0;
+      int searchAddedRowCount = 0;
 
-          //create a new loggingEventWrapper via copy constructor to ensure same IDs
-          LoggingEventWrapper loggingEventWrapper2 = new LoggingEventWrapper(loggingEventWrapper1);
-          boolean isSearchCurrentRowAdded = searchModel.isAddRow(loggingEventWrapper2);
-          if (isSearchCurrentRowAdded) {
-            searchAddedRowCount++;
-          }
-          searchRowAdded = searchRowAdded || isSearchCurrentRowAdded;
+      for (Object event1 : events) {
+        //these are actual LoggingEvent instances
+        LoggingEvent event = (LoggingEvent) event1;
+        //create two separate loggingEventWrappers (main table and search table), as they have different info on display state
+        LoggingEventWrapper loggingEventWrapper1 = new LoggingEventWrapper(event);
+        //if the clearTableExpressionRule is not null, evaluate & clear the table if it matches
+        if (clearTableExpressionRule != null && clearTableExpressionRule.evaluate(event, null)) {
+          logger.info("clear table expression matched - clearing table - matching event msg - " + event.getMessage());
+          clearEvents();
         }
-        //fire after adding all events
-        if (rowAdded) {
-          tableModel.fireTableEvent(startingRow, startingRow + addedRowCount, addedRowCount);
+
+        updateOtherModels(event);
+        boolean isCurrentRowAdded = tableModel.isAddRow(loggingEventWrapper1);
+        if (isCurrentRowAdded) {
+          addedRowCount++;
         }
-        if (searchRowAdded) {
-          searchModel.fireTableEvent(startingSearchRow, startingSearchRow + searchAddedRowCount, searchAddedRowCount);
+        rowAdded = rowAdded || isCurrentRowAdded;
+
+        //create a new loggingEventWrapper via copy constructor to ensure same IDs
+        LoggingEventWrapper loggingEventWrapper2 = new LoggingEventWrapper(loggingEventWrapper1);
+        boolean isSearchCurrentRowAdded = searchModel.isAddRow(loggingEventWrapper2);
+        if (isSearchCurrentRowAdded) {
+          searchAddedRowCount++;
         }
+        searchRowAdded = searchRowAdded || isSearchCurrentRowAdded;
+      }
+      //fire after adding all events
+      if (rowAdded) {
+        tableModel.fireTableEvent(startingRow, startingRow + addedRowCount, addedRowCount);
+      }
+      if (searchRowAdded) {
+        searchModel.fireTableEvent(startingSearchRow, startingSearchRow + searchAddedRowCount, searchAddedRowCount);
+      }
 
-        //tell the model to notify the count listeners
-        tableModel.notifyCountListeners();
+      //tell the model to notify the count listeners
+      tableModel.notifyCountListeners();
 
-        if (rowAdded) {
-          if (tableModel.isSortEnabled()) {
-            tableModel.sort();
-          }
-
-          //always update detail pane (since we may be using a cyclic buffer which is full)
-          detailPaneUpdater.setSelectedRow(table.getSelectedRow());
+      if (rowAdded) {
+        if (tableModel.isSortEnabled()) {
+          tableModel.sort();
         }
 
-        if (searchRowAdded) {
-          if (searchModel.isSortEnabled()) {
-            searchModel.sort();
-          }
+        //always update detail pane (since we may be using a cyclic buffer which is full)
+        detailPaneUpdater.setSelectedRow(table.getSelectedRow());
+      }
+
+      if (searchRowAdded) {
+        if (searchModel.isSortEnabled()) {
+          searchModel.sort();
         }
+      }
 
-        if (!isScrollToBottom() && selectedEvent != null) {
-          final int newIndex = tableModel.getRowIndex(selectedEvent);
-          if (newIndex >= 0) {
-            // Don't scroll, just maintain selection...
-            table.setRowSelectionInterval(newIndex, newIndex);
-          }
+      if (!isScrollToBottom() && selectedEvent != null) {
+        final int newIndex = tableModel.getRowIndex(selectedEvent);
+        if (newIndex >= 0) {
+          // Don't scroll, just maintain selection...
+          table.setRowSelectionInterval(newIndex, newIndex);
         }
       }
     });
@@ -2538,11 +2448,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     dockingAction.putValue(Action.NAME, "Dock");
     dockingAction.putValue(Action.SMALL_ICON, ChainsawIcons.ICON_DOCK);
     if (row > -1) {
-        EventQueue.invokeLater(new Runnable() {
-            public void run() {
-                table.scrollToRow(row);
-            }
-        });
+        EventQueue.invokeLater(() -> table.scrollToRow(row));
     }
   }
 
@@ -2826,11 +2732,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
 
     addPropertyChangeListener(
       "paused",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          dockPauseButton.getModel().setSelected(isPaused());
-        }
-      });
+            evt -> dockPauseButton.getModel().setSelected(isPaused()));
     toolbar.add(dockPauseButton);
 
     Action dockShowPrefsAction =
@@ -2865,11 +2767,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
 
     final SmallToggleButton toggleLogTreeButton =
       new SmallToggleButton(dockToggleLogTreeAction);
-    preferenceModel.addPropertyChangeListener("logTreePanelVisible", new PropertyChangeListener() {
-    	public void propertyChange(PropertyChangeEvent evt) {
-    	    toggleLogTreeButton.setSelected(preferenceModel.isLogTreePanelVisible());    		
-    	}
-    });
+    preferenceModel.addPropertyChangeListener("logTreePanelVisible", evt -> toggleLogTreeButton.setSelected(preferenceModel.isLogTreePanelVisible()));
     		
     toggleLogTreeButton.setSelected(isLogTreeVisible());
     toolbar.add(toggleLogTreeButton);
@@ -2912,11 +2810,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
 
       final SmallToggleButton toggleScrollToBottomButton =
         new SmallToggleButton(dockToggleScrollToBottomAction);
-      preferenceModel.addPropertyChangeListener("scrollToBottom", new PropertyChangeListener() {
-      	public void propertyChange(PropertyChangeEvent evt) {
-      	    toggleScrollToBottomButton.setSelected(isScrollToBottom());    		
-      	}
-      });
+      preferenceModel.addPropertyChangeListener("scrollToBottom", evt -> toggleScrollToBottomButton.setSelected(isScrollToBottom()));
 
       toggleScrollToBottomButton.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
   	      KeyStroke.getKeyStroke(KeyEvent.VK_B, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),
@@ -2929,13 +2823,11 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
       toolbar.add(toggleScrollToBottomButton);
       toolbar.addSeparator();
 
-    findCombo.addActionListener(new ActionListener(){
-        public void actionPerformed(ActionEvent e) {
-          //comboboxchanged event received when text is modified in the field..when enter is pressed, it's comboboxedited
-          if (e.getActionCommand().equalsIgnoreCase("comboBoxEdited")) {
-              findNext();
-          }
-        }
+    findCombo.addActionListener(e -> {
+      //comboboxchanged event received when text is modified in the field..when enter is pressed, it's comboboxedited
+      if (e.getActionCommand().equalsIgnoreCase("comboBoxEdited")) {
+          findNext();
+      }
     });
     Action redockAction =
       new AbstractAction("", ChainsawIcons.ICON_DOCK) {
@@ -2959,14 +2851,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
    */
   protected void updateStatusBar() {
     SwingHelper.invokeOnEDT(
-      new Runnable() {
-        public void run() {
-          statusBar.setSelectedLine(
-            table.getSelectedRow() + 1, tableModel.getRowCount(),
-            tableModel.size(), getIdentifier());
-          statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
-        }
-      });
+            () -> {
+              statusBar.setSelectedLine(
+                table.getSelectedRow() + 1, tableModel.getRowCount(),
+                tableModel.size(), getIdentifier());
+              statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
+            });
   }
 
   /**
@@ -3008,23 +2898,19 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
   }
 
   public void findNextColorizedEvent() {
-    EventQueue.invokeLater(new Runnable() {
-        public void run() {
-            final int nextRow = tableModel.findColoredRow(table.getSelectedRow() + 1, true);
-            if (nextRow > -1) {
-                table.scrollToRow(nextRow);
-            }
+    EventQueue.invokeLater(() -> {
+        final int nextRow = tableModel.findColoredRow(table.getSelectedRow() + 1, true);
+        if (nextRow > -1) {
+            table.scrollToRow(nextRow);
         }
     });
   }
 
   public void findPreviousColorizedEvent() {
-    EventQueue.invokeLater(new Runnable() {
-        public void run() {
-            final int previousRow = tableModel.findColoredRow(table.getSelectedRow() - 1, false);
-            if (previousRow > -1) {
-                table.scrollToRow(previousRow);
-            }
+    EventQueue.invokeLater(() -> {
+        final int previousRow = tableModel.findColoredRow(table.getSelectedRow() - 1, false);
+        if (previousRow > -1) {
+            table.scrollToRow(previousRow);
         }
     });
   }
@@ -3039,30 +2925,28 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     updateFindRule(item == null ? null: item.toString());
 
     if (findRule != null) {
-        EventQueue.invokeLater(new Runnable() {
-            public void run() {
-              final JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
-                try {
-                  int filteredEventsSize = getFilteredEvents().size();
-                  int startRow = table.getSelectedRow() + 1;
-                    if (startRow > filteredEventsSize - 1) {
-                        startRow = 0;
-                    }
-                  //no selected row would return -1, so we'd start at row zero
-                  final int nextRow = tableModel.locate(findRule, startRow, true);
-
-                  if (nextRow > -1) {
-                    table.scrollToRow(nextRow);
-                    findText.setToolTipText("Enter an expression - right click or ctrl-space for menu - press enter to add to list");
-                  }
-                  findText.setBackground(UIManager.getColor("TextField.background"));
-                } catch (IllegalArgumentException iae) {
-                  findText.setToolTipText(iae.getMessage());
-                  findText.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
-                  colorizer.setFindRule(null);
-                  tableRuleMediator.setFindRule(null);
-                  searchRuleMediator.setFindRule(null);
+        EventQueue.invokeLater(() -> {
+          final JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
+            try {
+              int filteredEventsSize = getFilteredEvents().size();
+              int startRow = table.getSelectedRow() + 1;
+                if (startRow > filteredEventsSize - 1) {
+                    startRow = 0;
                 }
+              //no selected row would return -1, so we'd start at row zero
+              final int nextRow = tableModel.locate(findRule, startRow, true);
+
+              if (nextRow > -1) {
+                table.scrollToRow(nextRow);
+                findText.setToolTipText("Enter an expression - right click or ctrl-space for menu - press enter to add to list");
+              }
+              findText.setBackground(UIManager.getColor("TextField.background"));
+            } catch (IllegalArgumentException iae) {
+              findText.setToolTipText(iae.getMessage());
+              findText.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
+              colorizer.setFindRule(null);
+              tableRuleMediator.setFindRule(null);
+              searchRuleMediator.setFindRule(null);
             }
         });
     }
@@ -3078,26 +2962,24 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     updateFindRule(item == null ? null: item.toString());
 
     if (findRule != null) {
-        EventQueue.invokeLater(new Runnable() {
-            public void run() {
-              final JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
-                try {
-                    int startRow = table.getSelectedRow() - 1;
-                    int filteredEventsSize = getFilteredEvents().size();
-                    if (startRow < 0) {
-                        startRow = filteredEventsSize - 1;
-                    }
-                    final int previousRow = tableModel.locate(findRule, startRow, false);
+        EventQueue.invokeLater(() -> {
+          final JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
+            try {
+                int startRow = table.getSelectedRow() - 1;
+                int filteredEventsSize = getFilteredEvents().size();
+                if (startRow < 0) {
+                    startRow = filteredEventsSize - 1;
+                }
+                final int previousRow = tableModel.locate(findRule, startRow, false);
 
-                    if (previousRow > -1) {
-                        table.scrollToRow(previousRow);
-                        findCombo.setToolTipText("Enter an expression - right click or ctrl-space for menu - press enter to add to list");
-                    }
-                  findText.setBackground(UIManager.getColor("TextField.background"));
-                } catch (IllegalArgumentException iae) {
-                  findText.setToolTipText(iae.getMessage());
-                  findText.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
+                if (previousRow > -1) {
+                    table.scrollToRow(previousRow);
+                    findCombo.setToolTipText("Enter an expression - right click or ctrl-space for menu - press enter to add to list");
                 }
+              findText.setBackground(UIManager.getColor("TextField.background"));
+            } catch (IllegalArgumentException iae) {
+              findText.setToolTipText(iae.getMessage());
+              findText.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
             }
         });
     }
@@ -3119,11 +3001,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     dockingAction.putValue(Action.NAME, "Undock");
     dockingAction.putValue(Action.SMALL_ICON, ChainsawIcons.ICON_UNDOCK);
     if (row > -1) {
-        EventQueue.invokeLater(new Runnable() {
-            public void run() {
-                table.scrollToRow(row);
-            }
-        });
+        EventQueue.invokeLater(() -> table.scrollToRow(row));
     }
   }
 
@@ -3267,35 +3145,31 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
   }
 
     public void findNextMarker() {
-      EventQueue.invokeLater(new Runnable() {
-          public void run() {
-              int startRow = table.getSelectedRow() + 1;
-              int filteredEventsSize = getFilteredEvents().size();
-              if (startRow > filteredEventsSize - 1) {
-                  startRow = 0;
-              }
-              final int nextRow = tableModel.locate(findMarkerRule, startRow, true);
+      EventQueue.invokeLater(() -> {
+          int startRow = table.getSelectedRow() + 1;
+          int filteredEventsSize = getFilteredEvents().size();
+          if (startRow > filteredEventsSize - 1) {
+              startRow = 0;
+          }
+          final int nextRow = tableModel.locate(findMarkerRule, startRow, true);
 
-              if (nextRow > -1) {
-                  table.scrollToRow(nextRow);
-              }
+          if (nextRow > -1) {
+              table.scrollToRow(nextRow);
           }
       });
     }
 
     public void findPreviousMarker() {
-        EventQueue.invokeLater(new Runnable() {
-            public void run() {
-                int startRow = table.getSelectedRow() - 1;
-                int filteredEventsSize = getFilteredEvents().size();
-                if (startRow < 0) {
-                    startRow = filteredEventsSize - 1;
-                }
-                final int previousRow = tableModel.locate(findMarkerRule, startRow, false);
+        EventQueue.invokeLater(() -> {
+            int startRow = table.getSelectedRow() - 1;
+            int filteredEventsSize = getFilteredEvents().size();
+            if (startRow < 0) {
+                startRow = filteredEventsSize - 1;
+            }
+            final int previousRow = tableModel.locate(findMarkerRule, startRow, false);
 
-                if (previousRow > -1) {
-                    table.scrollToRow(previousRow);
-                }
+            if (previousRow > -1) {
+                table.scrollToRow(previousRow);
             }
         });
     }
@@ -3368,36 +3242,34 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
 
       this.delayThread =
         new Thread(
-          new Runnable() {
-            public void run() {
-              while (true) {
-                try {
-                  Thread.sleep(CHECK_PERIOD);
-                } catch (InterruptedException e) {
-                }
+                () -> {
+                  while (true) {
+                    try {
+                      Thread.sleep(CHECK_PERIOD);
+                    } catch (InterruptedException e) {
+                    }
 
-                if (
-                  (System.currentTimeMillis() - lastTimeStamp) < CHECK_PERIOD) {
-                  // They typed something since the last check. we ignor
-                  // this for a sample period
-                  //                logger.debug("Typed something since the last check");
-                } else if (
-                  (System.currentTimeMillis() - lastTimeStamp) < (2 * CHECK_PERIOD)) {
-                  // they stopped typing recently, but have stopped for at least
-                  // 1 sample period. lets apply the filter
-                  //                logger.debug("Typed something recently applying filter");
-                  if (!(textFeld.getText().trim().equals(lastText.trim()))) {
-                    lastText = textFeld.getText();
-                    EventQueue.invokeLater(DelayedTextDocumentListener.this::setFilter);
+                    if (
+                      (System.currentTimeMillis() - lastTimeStamp) < CHECK_PERIOD) {
+                      // They typed something since the last check. we ignor
+                      // this for a sample period
+                      //                logger.debug("Typed something since the last check");
+                    } else if (
+                      (System.currentTimeMillis() - lastTimeStamp) < (2 * CHECK_PERIOD)) {
+                      // they stopped typing recently, but have stopped for at least
+                      // 1 sample period. lets apply the filter
+                      //                logger.debug("Typed something recently applying filter");
+                      if (!(textFeld.getText().trim().equals(lastText.trim()))) {
+                        lastText = textFeld.getText();
+                        EventQueue.invokeLater(DelayedTextDocumentListener.this::setFilter);
+                      }
+                    } else {
+                      // they stopped typing a while ago, let's forget about it
+                      //                logger.debug(
+                      //                  "They stoppped typing a while ago, assuming filter has been applied");
+                    }
                   }
-                } else {
-                  // they stopped typing a while ago, let's forget about it
-                  //                logger.debug(
-                  //                  "They stoppped typing a while ago, assuming filter has been applied");
-                }
-              }
-            }
-          });
+                });
 
       delayThread.setPriority(Thread.MIN_PRIORITY);
       delayThread.start();
@@ -3653,14 +3525,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
 		          		final Document doc = detail.getEditorKit().createDefaultDocument();
 		          		detail.getEditorKit().read(new StringReader(buf.toString()), doc, 0);
 
-				      	SwingHelper.invokeOnEDT(new Runnable() {
-				      		public void run() {
-				      			detail.setDocument(doc);
-                                JTextComponentFormatter.applySystemFontAndSize(detail);
-				      			detail.setCaretPosition(0);
-                                lastRow = selectedRow;
-				      		}
-				      	});
+				      	SwingHelper.invokeOnEDT(() -> {
+                              detail.setDocument(doc);
+JTextComponentFormatter.applySystemFontAndSize(detail);
+                              detail.setCaretPosition(0);
+lastRow = selectedRow;
+                          });
 		          	} catch (Exception e) {}
 	      		}
 	        }
@@ -3670,14 +3540,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
           	try {
           		final Document doc = detail.getEditorKit().createDefaultDocument();
           		detail.getEditorKit().read(new StringReader("<html>Nothing selected</html>"), doc, 0);
-		      	SwingHelper.invokeOnEDT(new Runnable() {
-		      		public void run() {
-		      			detail.setDocument(doc);
-                        JTextComponentFormatter.applySystemFontAndSize(detail);
-		      			detail.setCaretPosition(0);
-                        lastRow = selectedRow;
-		      		}
-		      	});
+		      	SwingHelper.invokeOnEDT(() -> {
+                      detail.setDocument(doc);
+JTextComponentFormatter.applySystemFontAndSize(detail);
+                      detail.setCaretPosition(0);
+lastRow = selectedRow;
+                  });
           	} catch (Exception e) {}
   		}
     }
@@ -3689,11 +3557,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
      */
     public void propertyChange(PropertyChangeEvent arg0) {
       SwingUtilities.invokeLater(
-        new Runnable() {
-          public void run() {
-            updateDetailPane(true);
-          }
-        });
+              () -> updateDetailPane(true));
     }
   }
     private class ThrowableDisplayMouseAdapter extends MouseAdapter {
@@ -3738,11 +3602,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
               }
 
                   detailArea.setText(buf.toString());
-                  SwingHelper.invokeOnEDT(new Runnable() {
-                    public void run() {
-                      centerAndSetVisible(detailDialog);
-                    }
-                  });
+                  SwingHelper.invokeOnEDT(() -> centerAndSetVisible(detailDialog));
                 }
         }
     }
@@ -4065,109 +3925,106 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
                 }
             });
 
-            tableModel.addTableModelListener(new TableModelListener(){
-                public void tableChanged(TableModelEvent e) {
-                    int firstRow = e.getFirstRow();
-                    //lastRow may be Integer.MAX_VALUE..if so, set lastRow to rowcount - 1 (so rowcount may be negative here, which will bypass for loops below)
-                    int lastRow = Math.min(e.getLastRow(), table.getRowCount() - 1);
-                    //clear everything if we got an event w/-1 for first or last row
-                    if (firstRow < 0 || lastRow < 0) {
-                        primaryList.clear();
-                        secondaryList.clear();
-                    }
+            tableModel.addTableModelListener(e -> {
+                int firstRow = e.getFirstRow();
+                //lastRow may be Integer.MAX_VALUE..if so, set lastRow to rowcount - 1 (so rowcount may be negative here, which will bypass for loops below)
+                int lastRow = Math.min(e.getLastRow(), table.getRowCount() - 1);
+                //clear everything if we got an event w/-1 for first or last row
+                if (firstRow < 0 || lastRow < 0) {
+                    primaryList.clear();
+                    secondaryList.clear();
+                }
 
 //                    System.out.println("lastRow: " + lastRow + ", first row: " + firstRow + ", original last row: " + e.getLastRow() + ", type: " + e.getType());
 
-                    List displayedEvents = tableModel.getFilteredEvents();
-                    if (e.getType() == TableModelEvent.INSERT) {
+                List displayedEvents = tableModel.getFilteredEvents();
+                if (e.getType() == TableModelEvent.INSERT) {
 //                        System.out.println("insert - current warnings: " + warnings.size() + ", errors: " + errors.size() + ", first row: " + firstRow + ", last row: " + lastRow);
-                        for (int i=firstRow;i<lastRow;i++) {
-                            LoggingEventWrapper event = (LoggingEventWrapper)displayedEvents.get(i);
-                            ThumbnailLoggingEventWrapper wrapper = new ThumbnailLoggingEventWrapper(i, event);
-                            if (secondaryMatches(wrapper)) {
-                                secondaryList.add(wrapper);
+                    for (int i=firstRow;i<lastRow;i++) {
+                        LoggingEventWrapper event = (LoggingEventWrapper)displayedEvents.get(i);
+                        ThumbnailLoggingEventWrapper wrapper = new ThumbnailLoggingEventWrapper(i, event);
+                        if (secondaryMatches(wrapper)) {
+                            secondaryList.add(wrapper);
 //                                System.out.println("added warning: " + i + " - " + event.getLevel());
-                            }
-                            if (primaryMatches(wrapper)) {
-                                //add to this one
-                                primaryList.add(wrapper);
-                            }
-//                                System.out.println("added error: " + i + " - " + event.getLevel());
                         }
+                        if (primaryMatches(wrapper)) {
+                            //add to this one
+                            primaryList.add(wrapper);
+                        }
+//                                System.out.println("added error: " + i + " - " + event.getLevel());
+                    }
 //                        System.out.println("insert- new warnings: " + warnings + ", errors: " + errors);
 
-                        //run evaluation on rows & add to list
-                    } else if (e.getType() == TableModelEvent.DELETE) {
-                        //find each eventwrapper with an id in the deleted range and remove it...
+                    //run evaluation on rows & add to list
+                } else if (e.getType() == TableModelEvent.DELETE) {
+                    //find each eventwrapper with an id in the deleted range and remove it...
 //                        System.out.println("delete- current warnings: " + warnings.size() + ", errors: " + errors.size() + ", first row: " + firstRow + ", last row: " + lastRow + ", displayed event count: " + displayedEvents.size() );
-                        for (Iterator iter = secondaryList.iterator();iter.hasNext();) {
-                            ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
-                            if ((wrapper.rowNum >= firstRow) && (wrapper.rowNum <= lastRow)) {
+                    for (Iterator iter = secondaryList.iterator();iter.hasNext();) {
+                        ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
+                        if ((wrapper.rowNum >= firstRow) && (wrapper.rowNum <= lastRow)) {
 //                                System.out.println("deleting find: " + wrapper);
-                                iter.remove();
-                            }
+                            iter.remove();
                         }
-                        for (Iterator iter = primaryList.iterator();iter.hasNext();) {
-                            ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
-                            if ((wrapper.rowNum >= firstRow) && (wrapper.rowNum <= lastRow)) {
+                    }
+                    for (Iterator iter = primaryList.iterator();iter.hasNext();) {
+                        ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
+                        if ((wrapper.rowNum >= firstRow) && (wrapper.rowNum <= lastRow)) {
 //                                System.out.println("deleting error: " + wrapper);
-                                iter.remove();
-                            }
+                            iter.remove();
                         }
+                    }
 //                        System.out.println("delete- new warnings: " + warnings.size() + ", errors: " + errors.size());
 
-                        //remove any matching rows
-                    } else if (e.getType() == TableModelEvent.UPDATE) {
+                    //remove any matching rows
+                } else if (e.getType() == TableModelEvent.UPDATE) {
 //                        System.out.println("update - about to delete old warnings in range: " + firstRow + " to " + lastRow + ", current warnings: " + warnings.size() + ", errors: " + errors.size());
-                        //find each eventwrapper with an id in the deleted range and remove it...
-                        for (Iterator iter = secondaryList.iterator();iter.hasNext();) {
-                            ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
-                            if ((wrapper.rowNum >= firstRow) && (wrapper.rowNum <= lastRow)) {
+                    //find each eventwrapper with an id in the deleted range and remove it...
+                    for (Iterator iter = secondaryList.iterator();iter.hasNext();) {
+                        ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
+                        if ((wrapper.rowNum >= firstRow) && (wrapper.rowNum <= lastRow)) {
 //                                System.out.println("update - deleting warning: " + wrapper);
-                                iter.remove();
-                            }
+                            iter.remove();
                         }
-                        for (Iterator iter = primaryList.iterator();iter.hasNext();) {
-                            ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
-                            if ((wrapper.rowNum >= firstRow) && (wrapper.rowNum <= lastRow)) {
+                    }
+                    for (Iterator iter = primaryList.iterator();iter.hasNext();) {
+                        ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
+                        if ((wrapper.rowNum >= firstRow) && (wrapper.rowNum <= lastRow)) {
 //                                System.out.println("update - deleting error: " + wrapper);
-                                iter.remove();
-                            }
+                            iter.remove();
                         }
+                    }
 //                        System.out.println("update - after deleting old warnings in range: " + firstRow + " to " + lastRow + ", new warnings: " + warnings.size() + ", errors: " + errors.size());
-                        //NOTE: for update, we need to do i<= lastRow
-                        for (int i=firstRow;i<=lastRow;i++) {
-                            LoggingEventWrapper event = (LoggingEventWrapper)displayedEvents.get(i);
-                            ThumbnailLoggingEventWrapper wrapper = new ThumbnailLoggingEventWrapper(i, event);
+                    //NOTE: for update, we need to do i<= lastRow
+                    for (int i=firstRow;i<=lastRow;i++) {
+                        LoggingEventWrapper event = (LoggingEventWrapper)displayedEvents.get(i);
+                        ThumbnailLoggingEventWrapper wrapper = new ThumbnailLoggingEventWrapper(i, event);
 //                                System.out.println("update - adding error: " + i + ", event: " + event.getMessage());
-                            //only add event to thumbnail if there is a color
-                            if (primaryMatches(wrapper)) {
-                                //!wrapper.loggingEvent.getColorRuleBackground().equals(ChainsawConstants.COLOR_DEFAULT_BACKGROUND)
-                                primaryList.add(wrapper);
-                            } else {
-                                primaryList.remove(wrapper);
-                            }
-
-                            if (secondaryMatches(wrapper)) {
-                                //event.isSearchMatch())
+                        //only add event to thumbnail if there is a color
+                        if (primaryMatches(wrapper)) {
+                            //!wrapper.loggingEvent.getColorRuleBackground().equals(ChainsawConstants.COLOR_DEFAULT_BACKGROUND)
+                            primaryList.add(wrapper);
+                        } else {
+                            primaryList.remove(wrapper);
+                        }
+
+                        if (secondaryMatches(wrapper)) {
+                            //event.isSearchMatch())
 //                                System.out.println("update - adding marker: " + i + ", event: " + event.getMessage());
-                                secondaryList.add(wrapper);
-                            } else {
-                                secondaryList.remove(wrapper);
-                            }
+                            secondaryList.add(wrapper);
+                        } else {
+                            secondaryList.remove(wrapper);
                         }
-//                        System.out.println("update - new warnings: " + warnings.size() + ", errors: " + errors.size());
                     }
-                    revalidate();
-                    repaint();
-                    //run this in an invokeLater block to ensure this action is enqueued to the end of the EDT
-                    EventQueue.invokeLater(new Runnable() {
-                    public void run() {
-                      if (isScrollToBottom()) {
-                          scrollToBottom();
-                      }
-                    }});
+//                        System.out.println("update - new warnings: " + warnings.size() + ", errors: " + errors.size());
                 }
+                revalidate();
+                repaint();
+                //run this in an invokeLater block to ensure this action is enqueued to the end of the EDT
+                EventQueue.invokeLater(() -> {
+                  if (isScrollToBottom()) {
+                    scrollToBottom();
+                  }
+                });
             });
         }
 
@@ -4506,11 +4363,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     public ToggleToolTips() {
       super("Show ToolTips", new ImageIcon(ChainsawIcons.TOOL_TIP));
   addActionListener(
-    new ActionListener() {
-      public void actionPerformed(ActionEvent evt) {
-        preferenceModel.setToolTips(isSelected());
-      }
-    });
+          evt -> preferenceModel.setToolTips(isSelected()));
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
index eb1a495..f0fbc47 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
@@ -56,11 +56,7 @@ class LogPanelLoggerTreeModel extends DefaultTreeModel
   public void loggerNameAdded(final String loggerName) {
     //invoke later, not on current EDT
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          addLoggerNameInDispatchThread(loggerName);
-        }
-      });
+            () -> addLoggerNameInDispatchThread(loggerName));
   }
 
   public void reset() {
@@ -181,11 +177,7 @@ outerFor:
 
   private static class LogPanelTreeNode extends DefaultMutableTreeNode {
     protected static Comparator nodeComparator =
-      new Comparator() {
-        public int compare(Object o1, Object o2) {
-          return o1.toString().compareToIgnoreCase(o2.toString());
-        }
-      };
+            (o1, o2) -> o1.toString().compareToIgnoreCase(o2.toString());
 
     private LogPanelTreeNode(String logName) {
       super(logName);


[08/14] logging-chainsaw git commit: Replace anonymous classes with lambdas

Posted by ma...@apache.org.
Replace anonymous classes with lambdas


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/25eb0012
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/25eb0012
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/25eb0012

Branch: refs/heads/master
Commit: 25eb001265a304484dee109a5f78248ae7da462e
Parents: 561fad6
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:06:20 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:06:20 2018 -0600

----------------------------------------------------------------------
 .../log4j/chainsaw/AbstractPreferencePanel.java |   14 +-
 .../ApplicationPreferenceModelPanel.java        |  350 ++----
 .../apache/log4j/chainsaw/ChainsawAbout.java    |   36 +-
 .../ChainsawCyclicBufferTableModel.java         |  194 ++-
 .../log4j/chainsaw/ChainsawStatusBar.java       |   90 +-
 .../log4j/chainsaw/ChainsawTabbedPane.java      |    6 +-
 .../log4j/chainsaw/ChainsawToolBarAndMenus.java |   44 +-
 .../apache/log4j/chainsaw/FileLoadAction.java   |   20 +-
 .../org/apache/log4j/chainsaw/FileMenu.java     |    9 +-
 .../org/apache/log4j/chainsaw/JSortTable.java   |   34 +-
 .../org/apache/log4j/chainsaw/LogPanel.java     | 1175 ++++++++----------
 .../log4j/chainsaw/LogPanelLoggerTreeModel.java |   12 +-
 .../log4j/chainsaw/LogPanelPreferencePanel.java |  388 ++----
 .../java/org/apache/log4j/chainsaw/LogUI.java   |  915 ++++++--------
 .../log4j/chainsaw/LoggerNameTreePanel.java     |  187 ++-
 .../apache/log4j/chainsaw/ProgressPanel.java    |   12 +-
 .../chainsaw/ReceiverConfigurationPanel.java    |   42 +-
 .../apache/log4j/chainsaw/ThresholdSlider.java  |   22 +-
 .../org/apache/log4j/chainsaw/WelcomePanel.java |   50 +-
 .../apache/log4j/chainsaw/color/ColorPanel.java |  116 +-
 .../log4j/chainsaw/layout/LayoutEditorPane.java |    6 +-
 .../log4j/chainsaw/messages/MessageCenter.java  |   10 +-
 .../plugins/PluginClassLoaderFactory.java       |    6 +-
 .../receivers/NewReceiverDialogPanel.java       |   13 +-
 .../receivers/PluginPropertyEditorPanel.java    |   52 +-
 .../chainsaw/receivers/ReceiversPanel.java      |  154 ++-
 .../chainsaw/receivers/ReceiversTreeModel.java  |   13 +-
 .../chainsaw/vfs/VFSLogFilePatternReceiver.java |  119 +-
 .../log4j/chainsaw/zeroconf/ZeroConfPlugin.java |   33 +-
 .../apache/log4j/xml/LogFileXMLReceiver.java    |   72 +-
 30 files changed, 1721 insertions(+), 2473 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
index a22ad3e..daceffe 100644
--- a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
@@ -123,14 +123,12 @@ public abstract class AbstractPreferencePanel extends JPanel
       TreeSelectionModel.SINGLE_TREE_SELECTION);
     prefTree.setSelectionModel(treeSelectionModel);
     prefTree.addTreeSelectionListener(
-      new TreeSelectionListener() {
-        public void valueChanged(TreeSelectionEvent e) {
-          TreePath path = e.getNewLeadSelectionPath();
-          DefaultMutableTreeNode node =
-            (DefaultMutableTreeNode) path.getLastPathComponent();
-          setDisplayedPrefPanel((JComponent) node.getUserObject());
-        }
-      });
+            e -> {
+              TreePath path = e.getNewLeadSelectionPath();
+              DefaultMutableTreeNode node =
+                (DefaultMutableTreeNode) path.getLastPathComponent();
+              setDisplayedPrefPanel((JComponent) node.getUserObject());
+            });
   
     // ensure the first pref panel is selected and displayed
     DefaultMutableTreeNode root =

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
index a6c1d23..7f36aaa 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
@@ -84,35 +84,31 @@ public class ApplicationPreferenceModelPanel extends AbstractPreferencePanel {
     logger = LogManager.getLogger(ApplicationPreferenceModelPanel.class);
     initComponents();
     getOkButton().addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          uncommittedPreferenceModel.setConfigurationURL((String)configurationURL.getSelectedItem());
-          uncommittedPreferenceModel.setIdentifierExpression(
-            identifierExpression.getText());
-            try {
-                int millis = Integer.parseInt(toolTipDisplayMillis.getText());
-                if (millis >= 0) {
-                    uncommittedPreferenceModel.setToolTipDisplayMillis(millis);
-                }
-            } catch (NumberFormatException nfe) {}
-            try {
-                int bufferSize = Integer.parseInt(cyclicBufferSize.getText());
-                if (bufferSize >= 0) {
-                    uncommittedPreferenceModel.setCyclicBufferSize(bufferSize);
-                }
-            } catch (NumberFormatException nfe) {}
-          committedPreferenceModel.apply(uncommittedPreferenceModel);
-          hidePanel();
-        }
-      });
+            e -> {
+              uncommittedPreferenceModel.setConfigurationURL((String)configurationURL.getSelectedItem());
+              uncommittedPreferenceModel.setIdentifierExpression(
+                identifierExpression.getText());
+                try {
+                    int millis = Integer.parseInt(toolTipDisplayMillis.getText());
+                    if (millis >= 0) {
+                        uncommittedPreferenceModel.setToolTipDisplayMillis(millis);
+                    }
+                } catch (NumberFormatException nfe) {}
+                try {
+                    int bufferSize = Integer.parseInt(cyclicBufferSize.getText());
+                    if (bufferSize >= 0) {
+                        uncommittedPreferenceModel.setCyclicBufferSize(bufferSize);
+                    }
+                } catch (NumberFormatException nfe) {}
+              committedPreferenceModel.apply(uncommittedPreferenceModel);
+              hidePanel();
+            });
 
     getCancelButton().addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          uncommittedPreferenceModel.apply(committedPreferenceModel);
-          hidePanel();
-        }
-      });
+            e -> {
+              uncommittedPreferenceModel.apply(committedPreferenceModel);
+              hidePanel();
+            });
   }
 
 
@@ -125,11 +121,7 @@ public static void main(String[] args) {
 
     model.addPropertyChangeListener(System.out::println);
     panel.setOkCancelActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          System.exit(1);
-        }
-      });
+            e -> System.exit(1));
 
     f.setSize(640, 480);
     f.setVisible(true);
@@ -205,94 +197,58 @@ public static void main(String[] args) {
      */
     private void setupListeners() {
       topPlacement.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setTabPlacement(SwingConstants.TOP);
-          }
-        });
+              e -> uncommittedPreferenceModel.setTabPlacement(SwingConstants.TOP));
       bottomPlacement.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setTabPlacement(SwingConstants.BOTTOM);
-          }
-        });
+              e -> uncommittedPreferenceModel.setTabPlacement(SwingConstants.BOTTOM));
 
       statusBar.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setStatusBar(statusBar.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setStatusBar(statusBar.isSelected()));
 
       toolBar.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setToolbar(toolBar.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setToolbar(toolBar.isSelected()));
 
       receivers.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setReceivers(receivers.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setReceivers(receivers.isSelected()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "tabPlacement",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            int value = (Integer) evt.getNewValue();
+              evt -> {
+                int value = (Integer) evt.getNewValue();
 
-            configureTabPlacement(value);
-          }
-        });
+                configureTabPlacement(value);
+              });
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "statusBar",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            statusBar.setSelected(
-                    (Boolean) evt.getNewValue());
-          }
-        });
+              evt -> statusBar.setSelected(
+                      (Boolean) evt.getNewValue()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "toolbar",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            toolBar.setSelected((Boolean) evt.getNewValue());
-          }
-        });
+              evt -> toolBar.setSelected((Boolean) evt.getNewValue()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "receivers",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            receivers.setSelected(
-                    (Boolean) evt.getNewValue());
-          }
-        });
+              evt -> receivers.setSelected(
+                      (Boolean) evt.getNewValue()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "lookAndFeelClassName",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            String lf = evt.getNewValue().toString();
+              evt -> {
+                String lf = evt.getNewValue().toString();
 
-            Enumeration enumeration = lookAndFeelGroup.getElements();
+                Enumeration enumeration = lookAndFeelGroup.getElements();
 
-            while (enumeration.hasMoreElements()) {
-              JRadioButton button = (JRadioButton) enumeration.nextElement();
+                while (enumeration.hasMoreElements()) {
+                  JRadioButton button = (JRadioButton) enumeration.nextElement();
 
-              if (button.getName()!=null && button.getName().equals(lf)) {
-                button.setSelected(true);
+                  if (button.getName()!=null && button.getName().equals(lf)) {
+                    button.setSelected(true);
 
-                break;
-              }
-            }
-          }
-        });
+                    break;
+                  }
+                }
+              });
     }
 
     /**
@@ -336,12 +292,8 @@ public static void main(String[] args) {
             final JRadioButton lfItem = new JRadioButton(" " + lfInfo.getName() + " ");
             lfItem.setName(lfInfo.getClassName());
             lfItem.addActionListener(
-                    new ActionListener() {
-                        public void actionPerformed(ActionEvent e) {
-                            uncommittedPreferenceModel.setLookAndFeelClassName(
-                                    lfInfo.getClassName());
-                        }
-                    });
+                    e -> uncommittedPreferenceModel.setLookAndFeelClassName(
+                            lfInfo.getClassName()));
             lookAndFeelGroup.add(lfItem);
             lfPanel.add(lfItem);
         }
@@ -351,12 +303,8 @@ public static void main(String[] args) {
           Class.forName("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
         final JRadioButton lfIGTK = new JRadioButton(" GTK+ 2.0 ");
         lfIGTK.addActionListener(
-          new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-              uncommittedPreferenceModel.setLookAndFeelClassName(
-                gtkLF.getName());
-            }
-          });
+                e -> uncommittedPreferenceModel.setLookAndFeelClassName(
+                  gtkLF.getName()));
         lookAndFeelGroup.add(lfIGTK);
         lfPanel.add(lfIGTK);
       } catch (Exception e) {
@@ -500,13 +448,7 @@ public static void main(String[] args) {
       p6.add(configURLPanel);
 
       JButton browseButton = new JButton(" Open File... ");
-      browseButton.addActionListener(new ActionListener()
-      {
-          public void actionPerformed(ActionEvent e)
-          {
-              browseForConfiguration();
-          }
-      });
+      browseButton.addActionListener(e -> browseForConfiguration());
       Box browsePanel = new Box(BoxLayout.X_AXIS);
       browsePanel.add(Box.createHorizontalGlue());
       browsePanel.add(browseButton);
@@ -584,147 +526,105 @@ public static void main(String[] args) {
     private void setupListeners() {
       uncommittedPreferenceModel.addPropertyChangeListener(
         "showNoReceiverWarning",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            showNoReceiverWarning.setSelected(
-                    (Boolean) evt.getNewValue());
-          }
-        });
+              evt -> showNoReceiverWarning.setSelected(
+                      (Boolean) evt.getNewValue()));
       
-      uncommittedPreferenceModel.addPropertyChangeListener("showSplash", new PropertyChangeListener() {
-
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          showSplash.setSelected(value);
-        }});
+      uncommittedPreferenceModel.addPropertyChangeListener("showSplash", evt -> {
+        boolean value = (Boolean) evt.getNewValue();
+        showSplash.setSelected(value);
+      });
       
-      uncommittedPreferenceModel.addPropertyChangeListener("okToRemoveSecurityManager", new PropertyChangeListener() {
-
-		public void propertyChange(PropertyChangeEvent evt) {
-            boolean newValue = (Boolean) evt.getNewValue();
-            if(newValue) {
-            okToRemoveSecurityManager.setSelected(newValue);
-            }else {
-                okToRemoveSecurityManager.setSelected(false);
-            }
-            
-		}});
+      uncommittedPreferenceModel.addPropertyChangeListener("okToRemoveSecurityManager", evt -> {
+boolean newValue = (Boolean) evt.getNewValue();
+if(newValue) {
+okToRemoveSecurityManager.setSelected(newValue);
+}else {
+okToRemoveSecurityManager.setSelected(false);
+}
+
+      });
       
       
       uncommittedPreferenceModel.addPropertyChangeListener(
         "identifierExpression",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            identifierExpression.setText(evt.getNewValue().toString());
-          }
-        });
+              evt -> identifierExpression.setText(evt.getNewValue().toString()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "responsiveness",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            int value = (Integer) evt.getNewValue();
-
-            if (value >= 1000) {
-              int newValue = (value - 750) / 1000;
-              logger.debug(
-                "Adjusting old Responsiveness value from " + value + " to "
-                + newValue);
-              value = newValue;
-            }
+              evt -> {
+                int value = (Integer) evt.getNewValue();
+
+                if (value >= 1000) {
+                  int newValue = (value - 750) / 1000;
+                  logger.debug(
+                    "Adjusting old Responsiveness value from " + value + " to "
+                    + newValue);
+                  value = newValue;
+                }
 
-            responsiveSlider.setValue(value);
-          }
-        });
+                responsiveSlider.setValue(value);
+              });
 
         uncommittedPreferenceModel.addPropertyChangeListener(
           "toolTipDisplayMillis",
-          new PropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent evt) {
-              toolTipDisplayMillis.setText(evt.getNewValue().toString());
-            }
-          });
+                evt -> toolTipDisplayMillis.setText(evt.getNewValue().toString()));
 
         uncommittedPreferenceModel.addPropertyChangeListener(
           "cyclicBufferSize",
-          new PropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent evt) {
-              cyclicBufferSize.setText(evt.getNewValue().toString());
-            }
-          });
+                evt -> cyclicBufferSize.setText(evt.getNewValue().toString()));
 
       showNoReceiverWarning.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setShowNoReceiverWarning(
-              showNoReceiverWarning.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setShowNoReceiverWarning(
+                showNoReceiverWarning.isSelected()));
 
-      showSplash.addActionListener(new ActionListener() {
-
-        public void actionPerformed(ActionEvent e) {
-          uncommittedPreferenceModel.setShowSplash(showSplash.isSelected());
-        }});
+      showSplash.addActionListener(e -> uncommittedPreferenceModel.setShowSplash(showSplash.isSelected()));
       
-      okToRemoveSecurityManager.addActionListener(new ActionListener() {
-
-        public void actionPerformed(ActionEvent e) {
-            
-          if(okToRemoveSecurityManager.isSelected() && JOptionPane.showConfirmDialog(okToRemoveSecurityManager, "By ticking this option, you are authorizing Chainsaw to remove Java's Security Manager.\n\n" +
-                    "This is required under Java Web Start so that it can access Jars/classes locally.  Without this, Receivers like JMSReceiver + DBReceiver that require" +
-                    " specific driver jars will NOT be able to be run.  \n\n" +
-                    "By ticking this, you are saying that this is ok.", "Please Confirm", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
-          	uncommittedPreferenceModel.setOkToRemoveSecurityManager(true);
-          }else {
-            uncommittedPreferenceModel.setOkToRemoveSecurityManager(false);
-          }
-                
-        }});
+      okToRemoveSecurityManager.addActionListener(e -> {
+
+        if(okToRemoveSecurityManager.isSelected() && JOptionPane.showConfirmDialog(okToRemoveSecurityManager, "By ticking this option, you are authorizing Chainsaw to remove Java's Security Manager.\n\n" +
+                  "This is required under Java Web Start so that it can access Jars/classes locally.  Without this, Receivers like JMSReceiver + DBReceiver that require" +
+                  " specific driver jars will NOT be able to be run.  \n\n" +
+                  "By ticking this, you are saying that this is ok.", "Please Confirm", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+            uncommittedPreferenceModel.setOkToRemoveSecurityManager(true);
+        }else {
+          uncommittedPreferenceModel.setOkToRemoveSecurityManager(false);
+        }
+
+      });
       
       
       responsiveSlider.getModel().addChangeListener(
-        new ChangeListener() {
-          public void stateChanged(ChangeEvent e) {
-            if (responsiveSlider.getValueIsAdjusting()) {
-              /**
-               * We'll wait until it stops.
-               */
-            } else {
-              int value = responsiveSlider.getValue();
-
-              if (value == 0) {
-                value = 1;
-              }
+              e -> {
+                if (responsiveSlider.getValueIsAdjusting()) {
+                  /**
+                   * We'll wait until it stops.
+                   */
+                } else {
+                  int value = responsiveSlider.getValue();
+
+                  if (value == 0) {
+                    value = 1;
+                  }
 
-              logger.debug("Adjust responsiveness to " + value);
-              uncommittedPreferenceModel.setResponsiveness(value);
-            }
-          }
-        });
+                  logger.debug("Adjust responsiveness to " + value);
+                  uncommittedPreferenceModel.setResponsiveness(value);
+                }
+              });
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "confirmExit",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            boolean value = (Boolean) evt.getNewValue();
-            confirmExit.setSelected(value);
-          }
-        });
-
-      uncommittedPreferenceModel.addPropertyChangeListener("configurationURL", new PropertyChangeListener() {
-
-          public void propertyChange(PropertyChangeEvent evt) {
-            String value = evt.getNewValue().toString();
-            configurationURL.setSelectedItem(value);
-          }});
+              evt -> {
+                boolean value = (Boolean) evt.getNewValue();
+                confirmExit.setSelected(value);
+              });
+
+      uncommittedPreferenceModel.addPropertyChangeListener("configurationURL", evt -> {
+        String value = evt.getNewValue().toString();
+        configurationURL.setSelectedItem(value);
+      });
       confirmExit.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setConfirmExit(
-              confirmExit.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setConfirmExit(
+                confirmExit.isSelected()));
     }
 
     private void setupInitialValues() {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
index 83e93c7..a5daa90 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
@@ -64,11 +64,7 @@ class ChainsawAbout extends JDialog {
         getContentPane().setLayout(new BorderLayout());
 
         JButton closeButton = new JButton(" Close ");
-        closeButton.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                setVisible(false);
-            }
-        });
+        closeButton.addActionListener(e -> setVisible(false));
         closeButton.setDefaultCapable(true);
 
         try {
@@ -82,13 +78,11 @@ class ChainsawAbout extends JDialog {
 
         editPane.setEditable(false);
         editPane.addHyperlinkListener(
-                new HyperlinkListener() {
-                    public void hyperlinkUpdate(HyperlinkEvent e) {
-                      if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
-                          HelpManager.getInstance().setHelpURL(e.getURL());
-                      }
-                    }
-                  });
+                e -> {
+                  if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
+                      HelpManager.getInstance().setHelpURL(e.getURL());
+                  }
+                });
         
         setSize(320, 240);
         new Thread(new Scroller()).start();
@@ -106,21 +100,13 @@ class ChainsawAbout extends JDialog {
                         synchronized (guard) {
                             guard.wait();
                         }
-                            SwingUtilities.invokeLater(new Runnable() {
-                                public void run() {
-                                    scrollPane.getViewport().setViewPosition(
-                                            new Point(0, 0));
-                                }
-                            });
+                            SwingUtilities.invokeLater(() -> scrollPane.getViewport().setViewPosition(
+                                    new Point(0, 0)));
                         continue;
                     }
-                    SwingUtilities.invokeLater(new Runnable() {
-                        public void run() {
-                            scrollPane.getViewport().setViewPosition(
-                                    new Point(0, scrollPane.getViewport()
-                                            .getViewPosition().y + 1));
-                        }
-                    });
+                    SwingUtilities.invokeLater(() -> scrollPane.getViewport().setViewPosition(
+                            new Point(0, scrollPane.getViewport()
+                                    .getViewPosition().y + 1)));
                     Thread.sleep(100);
                 } catch (Exception e) {
                     LOG.error("Error during scrolling", e);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
index 9b513e2..c15a2e8 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
@@ -170,36 +170,31 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
             }
             newSize = filteredList.size();
           }
-      	SwingHelper.invokeOnEDT(new Runnable() {
-      		public void run() {
-      			if (newSize > 0) {
-	      			if (previousSize == newSize) {
-	      				//same - update all
-	      				fireTableRowsUpdated(0, newSize - 1);
-	      			} else if (previousSize > newSize) {
-	      				//less now..update and delete difference
-	      				fireTableRowsUpdated(0, newSize - 1);
-                        //swing bug exposed by variable height rows when calling fireTableRowsDeleted..use tabledatacchanged
-                        fireTableDataChanged();
-	      			} else if (previousSize < newSize) {
-	      				//more now..update and insert difference
-                        if (previousSize > 0) {
-	      				    fireTableRowsUpdated(0, previousSize - 1);
-                        }
-	      				fireTableRowsInserted(Math.max(0, previousSize), newSize - 1);
-	      			}
-      			} else {
-      				//no rows to show
-      				fireTableDataChanged();
-      			}
-	      	notifyCountListeners();
-            //post refilter with newValue of FALSE (filtering is complete)
-            SwingHelper.invokeOnEDT(new Runnable() {
-                public void run() {
-                    propertySupport.firePropertyChange("refilter", Boolean.TRUE, Boolean.FALSE);
-                }
-            });
-      	}});
+      	SwingHelper.invokeOnEDT(() -> {
+              if (newSize > 0) {
+                  if (previousSize == newSize) {
+                      //same - update all
+                      fireTableRowsUpdated(0, newSize - 1);
+                  } else if (previousSize > newSize) {
+                      //less now..update and delete difference
+                      fireTableRowsUpdated(0, newSize - 1);
+//swing bug exposed by variable height rows when calling fireTableRowsDeleted..use tabledatacchanged
+fireTableDataChanged();
+                  } else if (previousSize < newSize) {
+                      //more now..update and insert difference
+if (previousSize > 0) {
+                          fireTableRowsUpdated(0, previousSize - 1);
+}
+                      fireTableRowsInserted(Math.max(0, previousSize), newSize - 1);
+                  }
+              } else {
+                  //no rows to show
+                  fireTableDataChanged();
+              }
+          notifyCountListeners();
+//post refilter with newValue of FALSE (filtering is complete)
+SwingHelper.invokeOnEDT(() -> propertySupport.firePropertyChange("refilter", Boolean.TRUE, Boolean.FALSE));
+      });
   }
 
   public int locate(Rule rule, int startLocation, boolean searchForward) {
@@ -342,11 +337,7 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
         }
       }
       if (sort) {
-        SwingHelper.invokeOnEDT(new Runnable() {
-            public void run() {
-                fireTableRowsUpdated(0, Math.max(filteredListSize - 1, 0));
-            }
-        });
+        SwingHelper.invokeOnEDT(() -> fireTableRowsUpdated(0, Math.max(filteredListSize - 1, 0)));
       }
   }
 
@@ -698,27 +689,26 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
    }
 
   public void fireTableEvent(final int begin, final int end, final int count) {
-  	SwingHelper.invokeOnEDT(new Runnable() {
-  		public void run() {
-    if (cyclic) {
-      if (!reachedCapacity) {
-        //if we didn't loop and it's the 1st time, insert
-        if ((begin + count) < cyclicBufferSize) {
-          fireTableRowsInserted(begin, end);
-        } else {
-          //we did loop - insert and then update rows
-          //rows are zero-indexed, subtract 1 from cyclicbuffersize for the event notification
-          fireTableRowsInserted(begin, cyclicBufferSize - 1);
-          fireTableRowsUpdated(0, cyclicBufferSize - 1);
-          reachedCapacity = true;
-        }
-      } else {
-        fireTableRowsUpdated(0, cyclicBufferSize - 1);
-      }
-    } else {
-      fireTableRowsInserted(begin, end);
-    }
-  }});
+  	SwingHelper.invokeOnEDT(() -> {
+if (cyclic) {
+if (!reachedCapacity) {
+//if we didn't loop and it's the 1st time, insert
+if ((begin + count) < cyclicBufferSize) {
+fireTableRowsInserted(begin, end);
+} else {
+//we did loop - insert and then update rows
+//rows are zero-indexed, subtract 1 from cyclicbuffersize for the event notification
+fireTableRowsInserted(begin, cyclicBufferSize - 1);
+fireTableRowsUpdated(0, cyclicBufferSize - 1);
+reachedCapacity = true;
+}
+} else {
+fireTableRowsUpdated(0, cyclicBufferSize - 1);
+}
+} else {
+fireTableRowsInserted(begin, end);
+}
+});
   }
 
     public void fireRowUpdated(int row, boolean checkForNewColumns) {
@@ -831,58 +821,56 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
     public void propertyChange(PropertyChangeEvent arg0) {
       Thread thread =
         new Thread(
-          new Runnable() {
-            public void run() {
-              ProgressMonitor monitor = null;
-
-              int index = 0;
-
-              try {
-                synchronized (mutex) {
-                  monitor =
-                    new ProgressMonitor(
-                      null, "Switching models...",
-                      "Transferring between data structures, please wait...", 0,
-                      unfilteredList.size() + 1);
-                  monitor.setMillisToDecideToPopup(250);
-                  monitor.setMillisToPopup(100);
-                  logger.debug(
-                    "Changing Model, isCyclic is now " + cyclic);
-
-                  List newUnfilteredList = null;
-                  List newFilteredList = null;
-
-                  if (cyclic) {
-                    newUnfilteredList = new CyclicBufferList(cyclicBufferSize);
-                    newFilteredList = new CyclicBufferList(cyclicBufferSize);
-                  } else {
-                    newUnfilteredList = new ArrayList(cyclicBufferSize);
-                    newFilteredList = new ArrayList(cyclicBufferSize);
-                  }
-
-                  int increment = 0;
+                () -> {
+                  ProgressMonitor monitor = null;
+
+                  int index = 0;
+
+                  try {
+                    synchronized (mutex) {
+                      monitor =
+                        new ProgressMonitor(
+                          null, "Switching models...",
+                          "Transferring between data structures, please wait...", 0,
+                          unfilteredList.size() + 1);
+                      monitor.setMillisToDecideToPopup(250);
+                      monitor.setMillisToPopup(100);
+                      logger.debug(
+                        "Changing Model, isCyclic is now " + cyclic);
+
+                      List newUnfilteredList = null;
+                      List newFilteredList = null;
+
+                      if (cyclic) {
+                        newUnfilteredList = new CyclicBufferList(cyclicBufferSize);
+                        newFilteredList = new CyclicBufferList(cyclicBufferSize);
+                      } else {
+                        newUnfilteredList = new ArrayList(cyclicBufferSize);
+                        newFilteredList = new ArrayList(cyclicBufferSize);
+                      }
+
+                      int increment = 0;
+
+                        for (Object anUnfilteredList : unfilteredList) {
+                            LoggingEventWrapper loggingEventWrapper = (LoggingEventWrapper) anUnfilteredList;
+                            newUnfilteredList.add(loggingEventWrapper);
+                            monitor.setProgress(index++);
+                        }
 
-                    for (Object anUnfilteredList : unfilteredList) {
-                        LoggingEventWrapper loggingEventWrapper = (LoggingEventWrapper) anUnfilteredList;
-                        newUnfilteredList.add(loggingEventWrapper);
-                        monitor.setProgress(index++);
+                      unfilteredList = newUnfilteredList;
+                      filteredList = newFilteredList;
                     }
 
-                  unfilteredList = newUnfilteredList;
-                  filteredList = newFilteredList;
-                }
-
-                monitor.setNote("Refiltering...");
-                reFilter();
+                    monitor.setNote("Refiltering...");
+                    reFilter();
 
-                monitor.setProgress(index++);
-              } finally {
-                monitor.close();
-              }
+                    monitor.setProgress(index++);
+                  } finally {
+                    monitor.close();
+                  }
 
-              logger.debug("Model Change completed");
-            }
-          });
+                  logger.debug("Model Change completed");
+                });
       thread.setPriority(Thread.MIN_PRIORITY + 1);
       thread.start();
     }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
index d818bfd..df536c4 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
@@ -185,41 +185,31 @@ public class ChainsawStatusBar extends JPanel {
 
     connectionThread =
       new Thread(
-        new Runnable() {
-          public void run() {
-            while (true) {
-              try {
-                Thread.sleep(DELAY_PERIOD);
-              } catch (InterruptedException e) {
-              }
-
-              Icon icon = null;
-
-              if (
-                (System.currentTimeMillis() - lastReceivedConnection) < DELAY_PERIOD) {
-                icon = netConnectIcon;
-              }
-
-              final Icon theIcon = icon;
-              SwingUtilities.invokeLater(
-                new Runnable() {
-                  public void run() {
-                    receivedConnectionlabel.setIcon(theIcon);
+              () -> {
+                while (true) {
+                  try {
+                    Thread.sleep(DELAY_PERIOD);
+                  } catch (InterruptedException e) {
                   }
-                });
-            }
-          }
-        });
+
+                  Icon icon = null;
+
+                  if (
+                    (System.currentTimeMillis() - lastReceivedConnection) < DELAY_PERIOD) {
+                    icon = netConnectIcon;
+                  }
+
+                  final Icon theIcon = icon;
+                  SwingUtilities.invokeLater(
+                          () -> receivedConnectionlabel.setIcon(theIcon));
+                }
+              });
     connectionThread.start();
   }
 
   void setDataRate(final double dataRate) {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          receivedEventLabel.setText(nf.format(dataRate) + "/s");
-        }
-      });
+            () -> receivedEventLabel.setText(nf.format(dataRate) + "/s"));
   }
 
   /**
@@ -243,14 +233,12 @@ public class ChainsawStatusBar extends JPanel {
   void setPaused(final boolean isPaused, String tabName) {
     if (tabName.equals(logUI.getActiveTabName())) {
       Runnable runnable =
-        new Runnable() {
-          public void run() {
-              pausedLabel.setIcon(isPaused ? pausedIcon : null);
-              pausedLabel.setToolTipText(
-                isPaused ? "This Log panel is currently paused"
-                         : "This Log panel is not paused");
-          }
-      };
+              () -> {
+                  pausedLabel.setIcon(isPaused ? pausedIcon : null);
+                  pausedLabel.setToolTipText(
+                    isPaused ? "This Log panel is currently paused"
+                             : "This Log panel is not paused");
+              };
       SwingUtilities.invokeLater(runnable);
     }
   }
@@ -259,12 +247,10 @@ public class ChainsawStatusBar extends JPanel {
           final int selectedLine, final int lineCount, final int total, String tabName) {
     if (tabName.equals(logUI.getActiveTabName())) {
         SwingUtilities.invokeLater(
-          new Runnable() {
-            public void run() {
-              lineSelectionLabel.setText(selectedLine+"");
-              eventCountLabel.setText("Filtered/Total: " + lineCount + ":" + total);
-            }
-          });
+                () -> {
+                  lineSelectionLabel.setText(selectedLine+"");
+                  eventCountLabel.setText("Filtered/Total: " + lineCount + ":" + total);
+                });
     }
   }
 
@@ -280,30 +266,18 @@ public class ChainsawStatusBar extends JPanel {
 
   void setNothingSelected() {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          lineSelectionLabel.setText("");
-        }
-      });
+            () -> lineSelectionLabel.setText(""));
   }
 
   void clear() {
     setMessage(DEFAULT_MSG);
     setNothingSelected();
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          receivedEventLabel.setText("");
-        }
-      });
+            () -> receivedEventLabel.setText(""));
   }
 
   public void setMessage(final String msg) {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          statusMsg.setText(" " + msg);
-        }
-      });
+            () -> statusMsg.setText(" " + msg));
   }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
index 83b9a3f..48796a7 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
@@ -99,11 +99,7 @@ class ChainsawTabbedPane extends JTabbedPane implements SettingsListener {
 
     super.fireStateChanged();
     if (!"chainsaw-log".equals(name)) {
-        EventQueue.invokeLater(new Runnable() {
-            public void run() {
-                setSelectedTab(getTabCount() - 1);
-            }
-        });
+        EventQueue.invokeLater(() -> setSelectedTab(getTabCount() - 1));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
index e40df4e..c9df7e2 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
@@ -159,22 +159,18 @@ class ChainsawToolBarAndMenus implements ChangeListener {
 
     logui.getApplicationPreferenceModel().addPropertyChangeListener(
       "statusBar",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          toggleStatusBarCheck.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              toggleStatusBarCheck.setSelected(value);
+            });
 
     logui.getApplicationPreferenceModel().addPropertyChangeListener(
       "receivers",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          showReceiversButton.setSelected(value);
-          toggleShowReceiversCheck.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              showReceiversButton.setSelected(value);
+              toggleShowReceiversCheck.setSelected(value);
+            });
   }
 
   /**
@@ -423,12 +419,10 @@ class ChainsawToolBarAndMenus implements ChangeListener {
 
     logui.getApplicationPreferenceModel().addPropertyChangeListener(
       "toolbar",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          showToolbarCheck.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              showToolbarCheck.setSelected(value);
+            });
 
     menuShowWelcome.setAction(toggleWelcomeVisibleAction);
 
@@ -452,11 +446,7 @@ class ChainsawToolBarAndMenus implements ChangeListener {
       new JMenuItem("Show Application-wide Preferences...");
 
     showAppPrefs.addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          logui.showApplicationPreferences();
-        }
-      });
+            e -> logui.showApplicationPreferences());
 
     toggleDetailMenuItem.setAction(toggleDetailPaneAction);
     toggleDetailMenuItem.setSelected(true);
@@ -530,11 +520,7 @@ class ChainsawToolBarAndMenus implements ChangeListener {
     JMenuItem about = new JMenuItem("About Chainsaw v2...");
     about.setMnemonic('A');
     about.addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          logui.showAboutBox();
-        }
-      });
+            e -> logui.showAboutBox());
 
     Action startTutorial =
       new AbstractAction("Tutorial...", new ImageIcon(ChainsawIcons.HELP)) {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java b/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
index 490d238..bcf1da3 100644
--- a/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
+++ b/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
@@ -123,19 +123,17 @@ class FileLoadAction extends AbstractAction {
         decoder.setAdditionalProperties(additionalProperties);
 
         final URL urlToUse = url;
-        new Thread(new Runnable() {
-            public void run() {
-                try {
-                    Vector events = decoder.decode(urlToUse);
-                    for (Object event : events) {
-                        handler.append((LoggingEvent) event);
-                    }
-                } catch (IOException e1) {
-                    // TODO Handle the error with a nice msg
-                    LOG.error(e1);
+        new Thread(() -> {
+            try {
+                Vector events = decoder.decode(urlToUse);
+                for (Object event : events) {
+                    handler.append((LoggingEvent) event);
                 }
-                MRUFileList.log4jMRU().opened(urlToUse);
+            } catch (IOException e1) {
+                // TODO Handle the error with a nice msg
+                LOG.error(e1);
             }
+            MRUFileList.log4jMRU().opened(urlToUse);
         }).start();
     }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/FileMenu.java b/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
index cd256e7..e3454e9 100644
--- a/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
+++ b/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
@@ -133,14 +133,7 @@ class FileMenu extends JMenu {
     
   
     
-    MRUFileList.addChangeListener(new ChangeListener() {
-        
-        public void stateChanged(ChangeEvent e) {
-            
-            buildMRUMenu(mrulog4j, logUI);
-        }
-        
-    });
+    MRUFileList.addChangeListener(e -> buildMRUMenu(mrulog4j, logUI));
     buildMRUMenu(mrulog4j, logUI);
     
     add(mrulog4j);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/JSortTable.java b/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
index 56f5152..601fc3b 100644
--- a/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
+++ b/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
@@ -92,25 +92,23 @@ public class JSortTable extends JTable implements MouseListener {
 
   //Allow synchronous updates if already on the EDT
   private void scrollTo(final int row, final int col) {
-    SwingHelper.invokeOnEDT(new Runnable() {
-      public void run() {
-        final int currentRow = getSelectedRow();
-        if ((row > -1) && (row < getRowCount())) {
-          try {
-            //get the requested row off of the bottom and top of the screen by making the 5 rows around the requested row visible
-            //if new past current row, scroll to display the 20th row past new selected row
-            scrollRectToVisible(getCellRect(row, col, true));
-            if (row > currentRow) {
-                scrollRectToVisible(getCellRect(row + 5, col, true));
-            }
-            if (row < currentRow) {
-                scrollRectToVisible(getCellRect(row - 5, col, true));
-            }
-            scrollRectToVisible(getCellRect(row, col, true));
-            setRowSelectionInterval(row, row);
-          } catch (IllegalArgumentException iae) {
-            //ignore..out of bounds
+    SwingHelper.invokeOnEDT(() -> {
+      final int currentRow = getSelectedRow();
+      if ((row > -1) && (row < getRowCount())) {
+        try {
+          //get the requested row off of the bottom and top of the screen by making the 5 rows around the requested row visible
+          //if new past current row, scroll to display the 20th row past new selected row
+          scrollRectToVisible(getCellRect(row, col, true));
+          if (row > currentRow) {
+              scrollRectToVisible(getCellRect(row + 5, col, true));
           }
+          if (row < currentRow) {
+              scrollRectToVisible(getCellRect(row - 5, col, true));
+          }
+          scrollRectToVisible(getCellRect(row, col, true));
+          setRowSelectionInterval(row, row);
+        } catch (IllegalArgumentException iae) {
+          //ignore..out of bounds
         }
       }
     });


[06/14] logging-chainsaw git commit: Replace anonymous classes with lambdas

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
index 027d227..1425b31 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
@@ -76,21 +76,9 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
     appPreferenceModel = appModel;
     initComponents();
 
-    getOkButton().addActionListener(new ActionListener()
-      {
-        public void actionPerformed(ActionEvent e)
-        {
-          hidePanel();
-        }
-      });
+    getOkButton().addActionListener(e -> hidePanel());
 
-    getCancelButton().addActionListener(new ActionListener()
-      {
-        public void actionPerformed(ActionEvent e)
-        {
-          hidePanel();
-        }
-      });
+    getCancelButton().addActionListener(e -> hidePanel());
     }
 
   //~ Methods =================================================================
@@ -108,20 +96,8 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
     LogPanelPreferencePanel panel = new LogPanelPreferencePanel(model, appModel);
     f.getContentPane().add(panel);
 
-    model.addPropertyChangeListener(new PropertyChangeListener()
-      {
-        public void propertyChange(PropertyChangeEvent evt)
-        {
-          logger.warn(evt.toString());
-        }
-      });
-    panel.setOkCancelActionListener(new ActionListener()
-      {
-        public void actionPerformed(ActionEvent e)
-        {
-          System.exit(1);
-        }
-      });
+    model.addPropertyChangeListener(evt -> logger.warn(evt.toString()));
+    panel.setOkCancelActionListener(e -> System.exit(1));
 
     f.setSize(640, 480);
     f.setVisible(true);
@@ -217,16 +193,14 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
           }
         });
       JButton setAsDefaultsButton = new JButton("Use selected columns as default visible columns");
-      setAsDefaultsButton.addActionListener(new ActionListener() {
-        public void actionPerformed(ActionEvent actionEvent) {
-          List selectedColumns = new ArrayList();
-          for (int i = 0;i<columnListModel.getSize();i++) {
-            if (preferenceModel.isColumnVisible((TableColumn) columnListModel.get(i))) {
-              selectedColumns.add(((TableColumn)columnListModel.get(i)).getHeaderValue());
-            }
+      setAsDefaultsButton.addActionListener(actionEvent -> {
+        List selectedColumns = new ArrayList();
+        for (int i = 0;i<columnListModel.getSize();i++) {
+          if (preferenceModel.isColumnVisible((TableColumn) columnListModel.get(i))) {
+            selectedColumns.add(((TableColumn)columnListModel.get(i)).getHeaderValue());
           }
-          appPreferenceModel.setDefaultColumnNames(selectedColumns);
         }
+        appPreferenceModel.setDefaultColumnNames(selectedColumns);
       });
       columnList.setCellRenderer(cellRenderer);
       columnBox.add(new JScrollPane(columnList));
@@ -293,22 +267,18 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
         rdFormat.setHorizontalTextPosition(SwingConstants.RIGHT);
         rdFormat.setAlignmentX(Component.LEFT_ALIGNMENT);
 
-        rdFormat.addActionListener(new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            preferenceModel.setDateFormatPattern(format);
-            customFormatText.setEnabled(rdCustom.isSelected());
-            rdLast = rdFormat;
-          }
+        rdFormat.addActionListener(e -> {
+          preferenceModel.setDateFormatPattern(format);
+          customFormatText.setEnabled(rdCustom.isSelected());
+          rdLast = rdFormat;
         });
         //update based on external changes to dateformatpattern (column context
         //menu)
         preferenceModel.addPropertyChangeListener(
-                "dateFormatPattern", new PropertyChangeListener() {
-                  public void propertyChange(PropertyChangeEvent evt) {
-                    rdFormat.setSelected(
-                            preferenceModel.getDateFormatPattern().equals(format));
-                    rdLast = rdFormat;
-                  }
+                "dateFormatPattern", evt -> {
+                  rdFormat.setSelected(
+                          preferenceModel.getDateFormatPattern().equals(format));
+                  rdLast = rdFormat;
                 });
 
         dateFormatPanel.add(rdFormat);
@@ -423,99 +393,61 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
     */
     private void setupListeners()
     {
-      getOkButton().addActionListener(new ActionListener() {
-    	  public void actionPerformed(ActionEvent evt) {
-    		  commit();
-    	  }
-      });
+      getOkButton().addActionListener(evt -> commit());
       
-      getCancelButton().addActionListener(new ActionListener() {
-    	  public void actionPerformed(ActionEvent evt) {
-    		  reset();
-    	  }
-      });
+      getCancelButton().addActionListener(evt -> reset());
     	  
-    	  rdCustom.addActionListener(new ActionListener()
-        {
-          public void actionPerformed(ActionEvent e)
-          {
+    	  rdCustom.addActionListener(e -> {
             customFormatText.setEnabled(rdCustom.isSelected());
             customFormatText.grabFocus();
-          }
-        });
+          });
 
       //a second?? listener for dateformatpattern
       preferenceModel.addPropertyChangeListener(
-        "dateFormatPattern", new PropertyChangeListener()
-        {
-          public void propertyChange(PropertyChangeEvent evt)
+        "dateFormatPattern", evt -> {
+          /**
+           * we need to make sure we are not reacting to the user typing, so only do this
+           * if the text box is not the same as the model
+           */
+          if (
+            preferenceModel.isCustomDateFormat()
+              && !customFormatText.getText().equals(
+                evt.getNewValue().toString()))
           {
-            /**
-             * we need to make sure we are not reacting to the user typing, so only do this
-             * if the text box is not the same as the model
-             */
-            if (
-              preferenceModel.isCustomDateFormat()
-                && !customFormatText.getText().equals(
-                  evt.getNewValue().toString()))
-            {
-              customFormatText.setText(preferenceModel.getDateFormatPattern());
-              rdCustom.setSelected(true);
-              customFormatText.setEnabled(true);
-            }
-            else
-            {
-              rdCustom.setSelected(false);
-            }
+            customFormatText.setText(preferenceModel.getDateFormatPattern());
+            rdCustom.setSelected(true);
+            customFormatText.setEnabled(true);
           }
-        });
-
-      rdISO.addActionListener(new ActionListener()
-        {
-          public void actionPerformed(ActionEvent e)
+          else
           {
-            preferenceModel.setDateFormatPattern("ISO8601");
-            customFormatText.setEnabled(rdCustom.isSelected());
-            rdLast = rdISO;
+            rdCustom.setSelected(false);
           }
         });
+
+      rdISO.addActionListener(e -> {
+        preferenceModel.setDateFormatPattern("ISO8601");
+        customFormatText.setEnabled(rdCustom.isSelected());
+        rdLast = rdISO;
+      });
       preferenceModel.addPropertyChangeListener(
-        "dateFormatPattern", new PropertyChangeListener()
-        {
-          public void propertyChange(PropertyChangeEvent evt)
-          {
-            rdISO.setSelected(preferenceModel.isUseISO8601Format());
-            rdLast = rdISO;
-          }
+        "dateFormatPattern", evt -> {
+          rdISO.setSelected(preferenceModel.isUseISO8601Format());
+          rdLast = rdISO;
         });
       preferenceModel.addPropertyChangeListener(
-          "dateFormatTimeZone", new PropertyChangeListener() {
-              public void propertyChange(PropertyChangeEvent evt) {
-                  timeZone.setText(preferenceModel.getTimeZone());
-              }
-          }
+          "dateFormatTimeZone", evt -> timeZone.setText(preferenceModel.getTimeZone())
       );
 
-      ActionListener levelIconListener = new ActionListener()
-        {
-          public void actionPerformed(ActionEvent e)
-          {
-            preferenceModel.setLevelIcons(rdLevelIcons.isSelected());
-          }
-        };
+      ActionListener levelIconListener = e -> preferenceModel.setLevelIcons(rdLevelIcons.isSelected());
 
       rdLevelIcons.addActionListener(levelIconListener);
       rdLevelText.addActionListener(levelIconListener);
 
       preferenceModel.addPropertyChangeListener(
-        "levelIcons", new PropertyChangeListener()
-        {
-          public void propertyChange(PropertyChangeEvent evt)
-          {
-            boolean value = (Boolean) evt.getNewValue();
-            rdLevelIcons.setSelected(value);
-            rdLevelText.setSelected(!value);
-          }
+        "levelIcons", evt -> {
+          boolean value = (Boolean) evt.getNewValue();
+          rdLevelIcons.setSelected(value);
+          rdLevelText.setSelected(!value);
         });
     }
   }
@@ -609,211 +541,107 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
     */
     private void setupListeners()
     {
-        ActionListener wrapMessageListener = new ActionListener()
-        {
-            public void actionPerformed(ActionEvent e)
-            {
-                preferenceModel.setWrapMessage(wrapMessage.isSelected());
-            }
-        };
+        ActionListener wrapMessageListener = e -> preferenceModel.setWrapMessage(wrapMessage.isSelected());
 
         wrapMessage.addActionListener(wrapMessageListener);
 
-        ActionListener searchResultsVisibleListener = new ActionListener()
-        {
-            public void actionPerformed(ActionEvent e)
-            {
-                preferenceModel.setSearchResultsVisible(searchResultsVisible.isSelected());
-            }
-        };
+        ActionListener searchResultsVisibleListener = e -> preferenceModel.setSearchResultsVisible(searchResultsVisible.isSelected());
 
         searchResultsVisible.addActionListener(searchResultsVisibleListener);
 
-        ActionListener highlightSearchMatchTextListener = new ActionListener()
-        {
-            public void actionPerformed(ActionEvent e)
-            {
-                preferenceModel.setHighlightSearchMatchText(highlightSearchMatchText.isSelected());
-            }
-        };
+        ActionListener highlightSearchMatchTextListener = e -> preferenceModel.setHighlightSearchMatchText(highlightSearchMatchText.isSelected());
 
         highlightSearchMatchText.addActionListener(highlightSearchMatchTextListener);
 
         preferenceModel.addPropertyChangeListener(
-          "wrapMessage", new PropertyChangeListener()
-          {
-            public void propertyChange(PropertyChangeEvent evt)
-            {
-              boolean value = (Boolean) evt.getNewValue();
-              wrapMessage.setSelected(value);
-            }
+          "wrapMessage", evt -> {
+            boolean value = (Boolean) evt.getNewValue();
+            wrapMessage.setSelected(value);
           });
 
       preferenceModel.addPropertyChangeListener(
-        "searchResultsVisible", new PropertyChangeListener()
-        {
-          public void propertyChange(PropertyChangeEvent evt)
-          {
-            boolean value = (Boolean) evt.getNewValue();
-            searchResultsVisible.setSelected(value);
-          }
+        "searchResultsVisible", evt -> {
+          boolean value = (Boolean) evt.getNewValue();
+          searchResultsVisible.setSelected(value);
         });
 
         preferenceModel.addPropertyChangeListener(
-          "highlightSearchMatchText", new PropertyChangeListener()
-          {
-            public void propertyChange(PropertyChangeEvent evt)
-            {
-              boolean value = (Boolean) evt.getNewValue();
-              highlightSearchMatchText.setSelected(value);
-            }
+          "highlightSearchMatchText", evt -> {
+            boolean value = (Boolean) evt.getNewValue();
+            highlightSearchMatchText.setSelected(value);
           });
 
-      toolTips.addActionListener(new ActionListener()
-        {
-          public void actionPerformed(ActionEvent e)
-          {
-            preferenceModel.setToolTips(toolTips.isSelected());
-          }
-        });
+      toolTips.addActionListener(e -> preferenceModel.setToolTips(toolTips.isSelected()));
 
-      thumbnailBarToolTips.addActionListener(new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-              preferenceModel.setThumbnailBarToolTips(thumbnailBarToolTips.isSelected());
-          }
-      });
+      thumbnailBarToolTips.addActionListener(e -> preferenceModel.setThumbnailBarToolTips(thumbnailBarToolTips.isSelected()));
 
-      getOkButton().addActionListener(new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-              preferenceModel.setClearTableExpression(clearTableExpression.getText().trim());
-          }
-      });
+      getOkButton().addActionListener(e -> preferenceModel.setClearTableExpression(clearTableExpression.getText().trim()));
 
       preferenceModel.addPropertyChangeListener(
-        "toolTips", new PropertyChangeListener()
-        {
-          public void propertyChange(PropertyChangeEvent evt)
-          {
-            boolean value = (Boolean) evt.getNewValue();
-            toolTips.setSelected(value);
-          }
+        "toolTips", evt -> {
+          boolean value = (Boolean) evt.getNewValue();
+          toolTips.setSelected(value);
         });
 
     preferenceModel.addPropertyChangeListener(
-      "thumbnailBarToolTips", new PropertyChangeListener()
-      {
-        public void propertyChange(PropertyChangeEvent evt)
-        {
-          boolean value = (Boolean) evt.getNewValue();
-          thumbnailBarToolTips.setSelected(value);
-        }
+      "thumbnailBarToolTips", evt -> {
+        boolean value = (Boolean) evt.getNewValue();
+        thumbnailBarToolTips.setSelected(value);
       });
 
-      detailPanelVisible.addActionListener(new ActionListener()
-        {
-          public void actionPerformed(ActionEvent e)
-          {
-            preferenceModel.setDetailPaneVisible(detailPanelVisible.isSelected());
-          }
-        });
+      detailPanelVisible.addActionListener(e -> preferenceModel.setDetailPaneVisible(detailPanelVisible.isSelected()));
 
       preferenceModel.addPropertyChangeListener(
-        "detailPaneVisible", new PropertyChangeListener()
-        {
-          public void propertyChange(PropertyChangeEvent evt)
-          {
-            boolean value = (Boolean) evt.getNewValue();
-            detailPanelVisible.setSelected(value);
-          }
+        "detailPaneVisible", evt -> {
+          boolean value = (Boolean) evt.getNewValue();
+          detailPanelVisible.setSelected(value);
         });
 
-      scrollToBottom.addActionListener(new ActionListener()
-        {
-          public void actionPerformed(ActionEvent e)
-          {
-            preferenceModel.setScrollToBottom(scrollToBottom.isSelected());
-          }
-        });
+      scrollToBottom.addActionListener(e -> preferenceModel.setScrollToBottom(scrollToBottom.isSelected()));
 
-      showMillisDeltaAsGap.addActionListener(new ActionListener()
-      {
-          public void actionPerformed(ActionEvent e)
-          {
-              preferenceModel.setShowMillisDeltaAsGap(showMillisDeltaAsGap.isSelected());
-          }
-      });
+      showMillisDeltaAsGap.addActionListener(e -> preferenceModel.setShowMillisDeltaAsGap(showMillisDeltaAsGap.isSelected()));
 
-      preferenceModel.addPropertyChangeListener("showMillisDeltaAsGap", new PropertyChangeListener()
-      {
-          public void propertyChange(PropertyChangeEvent evt)
-          {
-              boolean value = (Boolean) evt.getNewValue();
-              showMillisDeltaAsGap.setSelected(value);
-          }
+      preferenceModel.addPropertyChangeListener("showMillisDeltaAsGap", evt -> {
+          boolean value = (Boolean) evt.getNewValue();
+          showMillisDeltaAsGap.setSelected(value);
       });
       preferenceModel.addPropertyChangeListener(
-        "scrollToBottom", new PropertyChangeListener()
-        {
-          public void propertyChange(PropertyChangeEvent evt)
-          {
-            boolean value = (Boolean) evt.getNewValue();
-            scrollToBottom.setSelected(value);
-          }
+        "scrollToBottom", evt -> {
+          boolean value = (Boolean) evt.getNewValue();
+          scrollToBottom.setSelected(value);
         });
 
-      loggerTreePanel.addActionListener(new ActionListener()
-        {
-          public void actionPerformed(ActionEvent e)
-          {
-            preferenceModel.setLogTreePanelVisible(loggerTreePanel.isSelected());
-          }
-        });
+      loggerTreePanel.addActionListener(e -> preferenceModel.setLogTreePanelVisible(loggerTreePanel.isSelected()));
 
       preferenceModel.addPropertyChangeListener(
-        "logTreePanelVisible", new PropertyChangeListener()
-        {
-          public void propertyChange(PropertyChangeEvent evt)
-          {
-            boolean value = (Boolean) evt.getNewValue();
-            loggerTreePanel.setSelected(value);
-          }
+        "logTreePanelVisible", evt -> {
+          boolean value = (Boolean) evt.getNewValue();
+          loggerTreePanel.setSelected(value);
         });
 
-      preferenceModel.addPropertyChangeListener("columns", new PropertyChangeListener() {
-        	public void propertyChange(PropertyChangeEvent evt) {
-      	  List cols = (List)evt.getNewValue();
-              for (Object col1 : cols) {
-                TableColumn col = (TableColumn) col1;
-                Enumeration enumeration = columnListModel.elements();
-                boolean found = false;
-                while (enumeration.hasMoreElements()) {
-                  TableColumn thisCol = (TableColumn) enumeration.nextElement();
-                  if (thisCol.getHeaderValue().equals(col.getHeaderValue())) {
-                    found = true;
-                  }
-                }
-                if (!found) {
-                  columnListModel.addElement(col);
-                  columnListModel.fireContentsChanged();
-                }
-              }
-        }});
+      preferenceModel.addPropertyChangeListener("columns", evt -> {
+      List cols = (List)evt.getNewValue();
+for (Object col1 : cols) {
+TableColumn col = (TableColumn) col1;
+Enumeration enumeration = columnListModel.elements();
+boolean found = false;
+while (enumeration.hasMoreElements()) {
+TableColumn thisCol = (TableColumn) enumeration.nextElement();
+if (thisCol.getHeaderValue().equals(col.getHeaderValue())) {
+found = true;
+}
+}
+if (!found) {
+columnListModel.addElement(col);
+columnListModel.fireContentsChanged();
+}
+}
+});
 
         preferenceModel.addPropertyChangeListener(
-                "visibleColumns", new PropertyChangeListener()
-                {
-                  public void propertyChange(PropertyChangeEvent evt)
-                  {
-                    columnListModel.fireContentsChanged();
-                  }
-                });
+                "visibleColumns", evt -> columnListModel.fireContentsChanged());
 
-        preferenceModel.addPropertyChangeListener("clearTableExpression", new PropertyChangeListener()
-        {
-            public void propertyChange(PropertyChangeEvent evt) {
-                clearTableExpression.setText(((LogPanelPreferenceModel)evt.getSource()).getClearTableExpression());
-            }
-        });
+        preferenceModel.addPropertyChangeListener("clearTableExpression", evt -> clearTableExpression.setText(((LogPanelPreferenceModel)evt.getSource()).getClearTableExpression()));
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/LogUI.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
index fb67907..98174ad 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
@@ -270,11 +270,7 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
       }
       
     
-    LogManager.setRepositorySelector(new RepositorySelector() {
-
-        public LoggerRepository getLoggerRepository() {
-            return repositoryExImpl;
-        }}, repositorySelectorGuard);
+    LogManager.setRepositorySelector(() -> repositoryExImpl, repositorySelectorGuard);
     
     final ApplicationPreferenceModel model = new ApplicationPreferenceModel();
 
@@ -284,29 +280,25 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
         model.setBypassConfigurationURL(configurationURLAppArg);
     }
 
-    EventQueue.invokeLater(new Runnable()
-    {
-        public void run()
-        {
-          String lookAndFeelClassName = model.getLookAndFeelClassName();
-          if (lookAndFeelClassName == null || lookAndFeelClassName.trim().equals("")) {
-              String osName = System.getProperty("os.name");
-              if (osName.toLowerCase(Locale.ENGLISH).startsWith("mac")) {
-                  //no need to assign look and feel
-              } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("windows")) {
-                  lookAndFeelClassName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
-                  model.setLookAndFeelClassName(lookAndFeelClassName);
-              } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) {
-                  lookAndFeelClassName = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
-                  model.setLookAndFeelClassName(lookAndFeelClassName);
-              }
+    EventQueue.invokeLater(() -> {
+      String lookAndFeelClassName = model.getLookAndFeelClassName();
+      if (lookAndFeelClassName == null || lookAndFeelClassName.trim().equals("")) {
+          String osName = System.getProperty("os.name");
+          if (osName.toLowerCase(Locale.ENGLISH).startsWith("mac")) {
+              //no need to assign look and feel
+          } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("windows")) {
+              lookAndFeelClassName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
+              model.setLookAndFeelClassName(lookAndFeelClassName);
+          } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) {
+              lookAndFeelClassName = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
+              model.setLookAndFeelClassName(lookAndFeelClassName);
           }
+      }
 
-          if (lookAndFeelClassName != null && !(lookAndFeelClassName.trim().equals(""))) {
-            loadLookAndFeelUsingPluginClassLoader(lookAndFeelClassName);
-          }
-          createChainsawGUI(model, null);
-        }
+      if (lookAndFeelClassName != null && !(lookAndFeelClassName.trim().equals(""))) {
+        loadLookAndFeelUsingPluginClassLoader(lookAndFeelClassName);
+      }
+      createChainsawGUI(model, null);
     });
   }
 
@@ -403,11 +395,9 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     //set the commons.vfs.cache logger to info, since it can contain password information
     Logger.getLogger("org.apache.commons.vfs.cache").setLevel(Level.INFO);
     
-    Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
-		public void uncaughtException(Thread t, Throwable e) {
-            e.printStackTrace();
-			logger.error("Uncaught exception in thread " + t, e);
-		}
+    Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
+e.printStackTrace();
+        logger.error("Uncaught exception in thread " + t, e);
     });
 
     String config = configurationURLAppArg;
@@ -432,25 +422,24 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
 
       //register a listener to load the configuration when it changes (avoid having to restart Chainsaw when applying a new configuration)
     //this doesn't remove receivers from receivers panel, it just triggers DOMConfigurator.configure.
-	model.addPropertyChangeListener("configurationURL", new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-            String newConfiguration = evt.getNewValue().toString();
-            if (newConfiguration != null && !(newConfiguration.trim().equals(""))) {
-                newConfiguration = newConfiguration.trim();
-                try {
-                    logger.info("loading updated configuration: " + newConfiguration);
-                    URL newConfigurationURL = new URL(newConfiguration);
-                    File file = new File(newConfigurationURL.toURI());
-                    if (file.exists()) {
-                        logUI.loadConfigurationUsingPluginClassLoader(newConfigurationURL);
-                    } else {
-                        logger.info("Updated configuration but file does not exist");
-                    }
-                } catch (MalformedURLException | URISyntaxException e) {
-                    logger.error("Updated configuration - failed to convert config string to URL", e);
+	model.addPropertyChangeListener("configurationURL", evt -> {
+        String newConfiguration = evt.getNewValue().toString();
+        if (newConfiguration != null && !(newConfiguration.trim().equals(""))) {
+            newConfiguration = newConfiguration.trim();
+            try {
+                logger.info("loading updated configuration: " + newConfiguration);
+                URL newConfigurationURL = new URL(newConfiguration);
+                File file = new File(newConfigurationURL.toURI());
+                if (file.exists()) {
+                    logUI.loadConfigurationUsingPluginClassLoader(newConfigurationURL);
+                } else {
+                    logger.info("Updated configuration but file does not exist");
                 }
+            } catch (MalformedURLException | URISyntaxException e) {
+                logger.error("Updated configuration - failed to convert config string to URL", e);
             }
-        }});
+        }
+    });
 
     LogManager.getRootLogger().setLevel(Level.TRACE);
     EventQueue.invokeLater(logUI::activateViewer);
@@ -481,11 +470,7 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
         System.setProperty("apple.laf.useScreenMenuBar", "true");
     }
     
-    LogManager.setRepositorySelector(new RepositorySelector() {
-
-      public LoggerRepository getLoggerRepository() {
-          return repositoryExImpl;
-      }}, repositorySelectorGuard);
+    LogManager.setRepositorySelector(() -> repositoryExImpl, repositorySelectorGuard);
 
     //if Chainsaw is launched as an appender, ensure the root logger level is TRACE
     LogManager.getRootLogger().setLevel(Level.TRACE);
@@ -510,15 +495,11 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
 
     SettingsManager.getInstance().configure(new ApplicationPreferenceModelSaver(model));
 
-    EventQueue.invokeLater(new Runnable()
-    {
-        public void run()
-        {
-            loadLookAndFeelUsingPluginClassLoader(model.getLookAndFeelClassName());
-            createChainsawGUI(model, null);
-            getApplicationPreferenceModel().apply(model);
-            activateViewer();
-        }
+    EventQueue.invokeLater(() -> {
+        loadLookAndFeelUsingPluginClassLoader(model.getLookAndFeelClassName());
+        createChainsawGUI(model, null);
+        getApplicationPreferenceModel().apply(model);
+        activateViewer();
     });
   }
 
@@ -545,45 +526,36 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
      * This adds Drag & Drop capability to Chainsaw
      */
     FileDnDTarget dnDTarget = new FileDnDTarget(tabbedPane);
-    dnDTarget.addPropertyChangeListener("fileList", new PropertyChangeListener() {
-
-        public void propertyChange(PropertyChangeEvent evt) {
-            final List fileList = (List) evt.getNewValue();
-            
-            Thread thread = new Thread(new Runnable() {
-
-            	
-                public void run() {
-                    logger.debug("Loading files: " + fileList);
-                    for (Object aFileList : fileList) {
-                        File file = (File) aFileList;
-                        final Decoder decoder = new XMLDecoder();
-                        try {
-                            getStatusBar().setMessage("Loading " + file.getAbsolutePath() + "...");
-                            FileLoadAction.importURL(handler, decoder, file
-                                    .getName(), file.toURI().toURL());
-                        } catch (Exception e) {
-                            String errorMsg = "Failed to import a file";
-                            logger.error(errorMsg, e);
-                            getStatusBar().setMessage(errorMsg);
-                        }
-                    }
-                    
-                }});
-            
-            thread.setPriority(Thread.MIN_PRIORITY);
-            thread.start();
-            
-        }});
+    dnDTarget.addPropertyChangeListener("fileList", evt -> {
+        final List fileList = (List) evt.getNewValue();
+
+        Thread thread = new Thread(() -> {
+            logger.debug("Loading files: " + fileList);
+            for (Object aFileList : fileList) {
+                File file = (File) aFileList;
+                final Decoder decoder = new XMLDecoder();
+                try {
+                    getStatusBar().setMessage("Loading " + file.getAbsolutePath() + "...");
+                    FileLoadAction.importURL(handler, decoder, file
+                            .getName(), file.toURI().toURL());
+                } catch (Exception e) {
+                    String errorMsg = "Failed to import a file";
+                    logger.error(errorMsg, e);
+                    getStatusBar().setMessage(errorMsg);
+                }
+            }
+
+        });
+
+        thread.setPriority(Thread.MIN_PRIORITY);
+        thread.start();
+
+    });
 
     applicationPreferenceModelPanel = new ApplicationPreferenceModelPanel(applicationPreferenceModel);
 
     applicationPreferenceModelPanel.setOkCancelActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          preferencesFrame.setVisible(false);
-        }
-      });
+            e -> preferencesFrame.setVisible(false));
       KeyStroke escape = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
           Action closeAction = new AbstractAction() {
               public void actionPerformed(ActionEvent e) {
@@ -633,12 +605,8 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     receiversPanel = new ReceiversPanel();
     receiversPanel.addPropertyChangeListener(
       "visible",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          getApplicationPreferenceModel().setReceivers(
-                  (Boolean) evt.getNewValue());
-        }
-      });
+            evt -> getApplicationPreferenceModel().setReceivers(
+                    (Boolean) evt.getNewValue()));
   }
 
   /**
@@ -683,16 +651,14 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
      */
     HelpManager.getInstance().addPropertyChangeListener(
       "helpURL",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          URL newURL = (URL) evt.getNewValue();
+            evt -> {
+              URL newURL = (URL) evt.getNewValue();
 
-          if (newURL != null) {
-            welcomePanel.setURL(newURL);
-            ensureWelcomePanelVisible();
-          }
-        }
-      });
+              if (newURL != null) {
+                welcomePanel.setURL(newURL);
+                ensureWelcomePanelVisible();
+              }
+            });
   }
 
   private void ensureWelcomePanelVisible() {
@@ -808,15 +774,11 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     getContentPane().setLayout(new BorderLayout());
 
     getTabbedPane().addChangeListener(getToolBarAndMenus());
-    getTabbedPane().addChangeListener(new ChangeListener()
-    {
-        public void stateChanged(ChangeEvent e)
+    getTabbedPane().addChangeListener(e -> {
+        LogPanel thisLogPanel = getCurrentLogPanel();
+        if (thisLogPanel != null)
         {
-            LogPanel thisLogPanel = getCurrentLogPanel();
-            if (thisLogPanel != null)
-            {
-                thisLogPanel.updateStatusBar();
-            }
+            thisLogPanel.updateStatusBar();
         }
     });
 
@@ -1032,12 +994,10 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
 
     this.handler.addPropertyChangeListener(
       "dataRate",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          double dataRate = (Double) evt.getNewValue();
-          statusBar.setDataRate(dataRate);
-        }
-      });
+            evt -> {
+              double dataRate = (Double) evt.getNewValue();
+              statusBar.setDataRate(dataRate);
+            });
 
     getSettingsManager().addSettingsListener(this);
     getSettingsManager().addSettingsListener(MRUFileListPreferenceSaver.getInstance());
@@ -1119,20 +1079,18 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
                 "This will stop all of the \"Generator\" receivers used in the Tutorial, but leave any other Receiver untouched.  Is that ok?",
                 "Confirm", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
             new Thread(
-              new Runnable() {
-                public void run() {
-                  LoggerRepository repo = LogManager.getLoggerRepository();
-                  if (repo instanceof LoggerRepositoryEx) {
-                      PluginRegistry pluginRegistry = ((LoggerRepositoryEx) repo).getPluginRegistry();
-                      List list = pluginRegistry.getPlugins(Generator.class);
-
-                      for (Object aList : list) {
-                          Plugin plugin = (Plugin) aList;
-                          pluginRegistry.stopPlugin(plugin.getName());
-                      }
-                   }
-                }
-              }).start();
+                    () -> {
+                      LoggerRepository repo1 = LogManager.getLoggerRepository();
+                      if (repo1 instanceof LoggerRepositoryEx) {
+                          PluginRegistry pluginRegistry = ((LoggerRepositoryEx) repo1).getPluginRegistry();
+                          List list = pluginRegistry.getPlugins(Generator.class);
+
+                          for (Object aList : list) {
+                              Plugin plugin = (Plugin) aList;
+                              pluginRegistry.stopPlugin(plugin.getName());
+                          }
+                       }
+                    }).start();
             setEnabled(false);
             startTutorial.putValue("TutorialStarted", Boolean.FALSE);
           }
@@ -1149,13 +1107,11 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
 
     final SmallToggleButton startButton = new SmallToggleButton(startTutorial);
     PropertyChangeListener pcl =
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          stopTutorial.setEnabled(
-            startTutorial.getValue("TutorialStarted").equals(Boolean.TRUE));
-          startButton.setSelected(stopTutorial.isEnabled());
-        }
-      };
+            evt -> {
+              stopTutorial.setEnabled(
+                startTutorial.getValue("TutorialStarted").equals(Boolean.TRUE));
+              startButton.setSelected(stopTutorial.isEnabled());
+            };
 
     startTutorial.addPropertyChangeListener(pcl);
     stopTutorial.addPropertyChangeListener(pcl);
@@ -1182,24 +1138,22 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     tutorialToolbar.add(stopButton);
     container.add(tutorialToolbar, BorderLayout.NORTH);
     tutorialArea.addHyperlinkListener(
-      new HyperlinkListener() {
-        public void hyperlinkUpdate(HyperlinkEvent e) {
-          if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
-            if (e.getDescription().equals("StartTutorial")) {
-              startTutorial.actionPerformed(null);
-            } else if (e.getDescription().equals("StopTutorial")) {
-              stopTutorial.actionPerformed(null);
-            } else {
-              try {
-                tutorialArea.setPage(e.getURL());
-              } catch (IOException e1) {
-                MessageCenter.getInstance().getLogger().error(
-                  "Failed to change the URL for the Tutorial", e1);
+            e -> {
+              if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
+                if (e.getDescription().equals("StartTutorial")) {
+                  startTutorial.actionPerformed(null);
+                } else if (e.getDescription().equals("StopTutorial")) {
+                  stopTutorial.actionPerformed(null);
+                } else {
+                  try {
+                    tutorialArea.setPage(e.getURL());
+                  } catch (IOException e1) {
+                    MessageCenter.getInstance().getLogger().error(
+                      "Failed to change the URL for the Tutorial", e1);
+                  }
+                }
               }
-            }
-          }
-        }
-      });
+            });
 
     /**
      * loads the saved tab settings and if there are hidden tabs,
@@ -1318,82 +1272,62 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
   private void initPrefModelListeners() {
     applicationPreferenceModel.addPropertyChangeListener(
       "identifierExpression",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          handler.setIdentifierExpression(evt.getNewValue().toString());
-        }
-      });
+            evt -> handler.setIdentifierExpression(evt.getNewValue().toString()));
     handler.setIdentifierExpression(applicationPreferenceModel.getIdentifierExpression());
     
 
     applicationPreferenceModel.addPropertyChangeListener(
       "toolTipDisplayMillis",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          ToolTipManager.sharedInstance().setDismissDelay(
-                  (Integer) evt.getNewValue());
-        }
-      });
+            evt -> ToolTipManager.sharedInstance().setDismissDelay(
+                    (Integer) evt.getNewValue()));
     ToolTipManager.sharedInstance().setDismissDelay(
       applicationPreferenceModel.getToolTipDisplayMillis());
 
     applicationPreferenceModel.addPropertyChangeListener(
       "responsiveness",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          int value = (Integer) evt.getNewValue();
-          handler.setQueueInterval((value * 1000) - 750);
-        }
-      });
+            evt -> {
+              int value = (Integer) evt.getNewValue();
+              handler.setQueueInterval((value * 1000) - 750);
+            });
     handler.setQueueInterval((applicationPreferenceModel.getResponsiveness() * 1000) - 750);
 
     applicationPreferenceModel.addPropertyChangeListener(
       "tabPlacement",
-      new PropertyChangeListener() {
-        public void propertyChange(final PropertyChangeEvent evt) {
-          SwingUtilities.invokeLater(
-            new Runnable() {
-              public void run() {
-                int placement = (Integer) evt.getNewValue();
-
-                switch (placement) {
-                case SwingConstants.TOP:
-                case SwingConstants.BOTTOM:
-                  tabbedPane.setTabPlacement(placement);
-
-                  break;
-
-                default:
-                  break;
-                }
-              }
-            });
-        }
-      });
+            evt -> SwingUtilities.invokeLater(
+                    () -> {
+                        int placement = (Integer) evt.getNewValue();
+
+                        switch (placement) {
+                            case SwingConstants.TOP:
+                            case SwingConstants.BOTTOM:
+                                tabbedPane.setTabPlacement(placement);
+
+                                break;
+
+                            default:
+                                break;
+                        }
+                    }));
 
     applicationPreferenceModel.addPropertyChangeListener(
       "statusBar",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          setStatusBarVisible(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              setStatusBarVisible(value);
+            });
     setStatusBarVisible(applicationPreferenceModel.isStatusBar());
     
     applicationPreferenceModel.addPropertyChangeListener(
       "receivers",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
 
-          if (value) {
-            showReceiverPanel();
-          } else {
-            hideReceiverPanel();
-          }
-        }
-      });
+              if (value) {
+                showReceiverPanel();
+              } else {
+                hideReceiverPanel();
+              }
+            });
 //    if (applicationPreferenceModel.isReceivers()) {
 //      showReceiverPanel();
 //    } else {
@@ -1403,12 +1337,10 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     
     applicationPreferenceModel.addPropertyChangeListener(
       "toolbar",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          toolbar.setVisible(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              toolbar.setVisible(value);
+            });
     toolbar.setVisible(applicationPreferenceModel.isToolbar());
 
   }
@@ -1418,185 +1350,178 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
    */
   private void showReceiverConfigurationPanel() {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          final JDialog dialog = new JDialog(LogUI.this, true);
-          dialog.setTitle("Load events into Chainsaw");
-          dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
+            () -> {
+              final JDialog dialog = new JDialog(LogUI.this, true);
+              dialog.setTitle("Load events into Chainsaw");
+              dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
 
-          dialog.setResizable(false);
+              dialog.setResizable(false);
 
-          receiverConfigurationPanel.setCompletionActionListener(
-            new ActionListener() {
-              public void actionPerformed(ActionEvent e) {
-                dialog.setVisible(false);
+              receiverConfigurationPanel.setCompletionActionListener(
+                      e -> {
+                          dialog.setVisible(false);
 
-            if (receiverConfigurationPanel.getModel().isCancelled()) {
-              return;
-            }
-            applicationPreferenceModel.setShowNoReceiverWarning(!receiverConfigurationPanel.isDontWarnMeAgain());
-            //remove existing plugins
-            List plugins = pluginRegistry.getPlugins();
-                  for (Object plugin1 : plugins) {
-                      Plugin plugin = (Plugin) plugin1;
-                      //don't stop ZeroConfPlugin if it is registered
-                      if (!plugin.getName().toLowerCase(Locale.ENGLISH).contains("zeroconf")) {
-                          pluginRegistry.stopPlugin(plugin.getName());
-                      }
-                  }
-            URL configURL = null;
-
-            if (receiverConfigurationPanel.getModel().isNetworkReceiverMode()) {
-              int port = receiverConfigurationPanel.getModel().getNetworkReceiverPort();
-
-              try {
-                Class receiverClass = receiverConfigurationPanel.getModel().getNetworkReceiverClass();
-                Receiver networkReceiver = (Receiver) receiverClass.newInstance();
-                networkReceiver.setName(receiverClass.getSimpleName() + "-" + port);
-
-                Method portMethod =
-                  networkReceiver.getClass().getMethod(
-                    "setPort", int.class);
-                portMethod.invoke(
-                  networkReceiver, port);
-
-                networkReceiver.setThreshold(Level.TRACE);
-
-                pluginRegistry.addPlugin(networkReceiver);
-                networkReceiver.activateOptions();
-                receiversPanel.updateReceiverTreeInDispatchThread();
-              } catch (Exception e3) {
-                MessageCenter.getInstance().getLogger().error(
-                  "Error creating Receiver", e3);
-                MessageCenter.getInstance().getLogger().info(
-                  "An error occurred creating your Receiver");
-              }
-            } else if (receiverConfigurationPanel.getModel().isLog4jConfig()) {
-              File log4jConfigFile = receiverConfigurationPanel.getModel().getLog4jConfigFile();
-              if (log4jConfigFile != null) {
-                try {
-                  Map entries = LogFilePatternLayoutBuilder.getAppenderConfiguration(log4jConfigFile);
-                    for (Object o : entries.entrySet()) {
-                        try {
-                            Map.Entry entry = (Map.Entry) o;
-                            String name = (String) entry.getKey();
-                            Map values = (Map) entry.getValue();
-                            //values: conversion, file
-                            String conversionPattern = values.get("conversion").toString();
-                            File file = new File(values.get("file").toString());
-                            URL fileURL = file.toURI().toURL();
-                            String timestampFormat = LogFilePatternLayoutBuilder.getTimeStampFormat(conversionPattern);
-                            String receiverPattern = LogFilePatternLayoutBuilder.getLogFormatFromPatternLayout(conversionPattern);
-                            VFSLogFilePatternReceiver fileReceiver = new VFSLogFilePatternReceiver();
-                            fileReceiver.setName(name);
-                            fileReceiver.setAutoReconnect(true);
-                            fileReceiver.setContainer(LogUI.this);
-                            fileReceiver.setAppendNonMatches(true);
-                            fileReceiver.setFileURL(fileURL.toURI().toString());
-                            fileReceiver.setTailing(true);
-                            fileReceiver.setLogFormat(receiverPattern);
-                            fileReceiver.setTimestampFormat(timestampFormat);
-                            fileReceiver.setThreshold(Level.TRACE);
-                            pluginRegistry.addPlugin(fileReceiver);
-                            fileReceiver.activateOptions();
-                            receiversPanel.updateReceiverTreeInDispatchThread();
-                        } catch (URISyntaxException e1) {
-                            e1.printStackTrace();
-                        }
-                    }
-                } catch (IOException e1) {
-                  e1.printStackTrace();
-                }
-              }
-            } else if (receiverConfigurationPanel.getModel().isLoadConfig()) {
-                  configURL = receiverConfigurationPanel.getModel().getConfigToLoad();
-            } else if (receiverConfigurationPanel.getModel().isLogFileReceiverConfig()) {
-              try {
-                  URL fileURL = receiverConfigurationPanel.getModel().getLogFileURL();
-                  if (fileURL != null) {
-                      VFSLogFilePatternReceiver fileReceiver = new VFSLogFilePatternReceiver();
-                      fileReceiver.setName(fileURL.getFile());
-                      fileReceiver.setAutoReconnect(true);
-                      fileReceiver.setContainer(LogUI.this);
-                      fileReceiver.setAppendNonMatches(true);
-                      fileReceiver.setFileURL(fileURL.toURI().toString());
-                      fileReceiver.setTailing(true);
-                      if (receiverConfigurationPanel.getModel().isPatternLayoutLogFormat()) {
-                          fileReceiver.setLogFormat(LogFilePatternLayoutBuilder.getLogFormatFromPatternLayout(receiverConfigurationPanel.getModel().getLogFormat()));
-                      } else {
-                          fileReceiver.setLogFormat(receiverConfigurationPanel.getModel().getLogFormat());
-                      }
-                      fileReceiver.setTimestampFormat(receiverConfigurationPanel.getModel().getLogFormatTimestampFormat());
-                      fileReceiver.setThreshold(Level.TRACE);
-
-                      pluginRegistry.addPlugin(fileReceiver);
-                      fileReceiver.activateOptions();
-                      receiversPanel.updateReceiverTreeInDispatchThread();
-                  }
-              } catch (Exception e2) {
-                  MessageCenter.getInstance().getLogger().error(
-                    "Error creating Receiver", e2);
-                  MessageCenter.getInstance().getLogger().info(
-                    "An error occurred creating your Receiver");
-              }
-            }
-              if (configURL == null && receiverConfigurationPanel.isDontWarnMeAgain()) {
-                //use the saved config file as the config URL if defined
-                if (receiverConfigurationPanel.getModel().getSaveConfigFile() != null) {
-                  try {
-                    configURL = receiverConfigurationPanel.getModel().getSaveConfigFile().toURI().toURL();
-                  } catch (MalformedURLException e1) {
-                    e1.printStackTrace();
-                  }
-                } else {
-                  //no saved config defined but don't warn me is checked - use default config
-                  configURL = receiverConfigurationPanel.getModel().getDefaultConfigFileURL();
-                }
-              }
-              if (configURL != null) {
-                MessageCenter.getInstance().getLogger().debug(
-                  "Initialiazing Log4j with " + configURL.toExternalForm());
-                final URL finalURL = configURL;
-                new Thread(
-                  new Runnable() {
-                    public void run() {
-                      if (receiverConfigurationPanel.isDontWarnMeAgain()) {
-                          applicationPreferenceModel.setConfigurationURL(finalURL.toExternalForm());
-                      } else {
-                          try {
-                              if (new File(finalURL.toURI()).exists()) {
-                                  loadConfigurationUsingPluginClassLoader(finalURL);
+                          if (receiverConfigurationPanel.getModel().isCancelled()) {
+                              return;
+                          }
+                          applicationPreferenceModel.setShowNoReceiverWarning(!receiverConfigurationPanel.isDontWarnMeAgain());
+                          //remove existing plugins
+                          List plugins = pluginRegistry.getPlugins();
+                          for (Object plugin1 : plugins) {
+                              Plugin plugin = (Plugin) plugin1;
+                              //don't stop ZeroConfPlugin if it is registered
+                              if (!plugin.getName().toLowerCase(Locale.ENGLISH).contains("zeroconf")) {
+                                  pluginRegistry.stopPlugin(plugin.getName());
                               }
                           }
-                          catch (URISyntaxException e) {
-                              //ignore
+                          URL configURL = null;
+
+                          if (receiverConfigurationPanel.getModel().isNetworkReceiverMode()) {
+                              int port = receiverConfigurationPanel.getModel().getNetworkReceiverPort();
+
+                              try {
+                                  Class receiverClass = receiverConfigurationPanel.getModel().getNetworkReceiverClass();
+                                  Receiver networkReceiver = (Receiver) receiverClass.newInstance();
+                                  networkReceiver.setName(receiverClass.getSimpleName() + "-" + port);
+
+                                  Method portMethod =
+                                          networkReceiver.getClass().getMethod(
+                                                  "setPort", int.class);
+                                  portMethod.invoke(
+                                          networkReceiver, port);
+
+                                  networkReceiver.setThreshold(Level.TRACE);
+
+                                  pluginRegistry.addPlugin(networkReceiver);
+                                  networkReceiver.activateOptions();
+                                  receiversPanel.updateReceiverTreeInDispatchThread();
+                              } catch (Exception e3) {
+                                  MessageCenter.getInstance().getLogger().error(
+                                          "Error creating Receiver", e3);
+                                  MessageCenter.getInstance().getLogger().info(
+                                          "An error occurred creating your Receiver");
+                              }
+                          } else if (receiverConfigurationPanel.getModel().isLog4jConfig()) {
+                              File log4jConfigFile = receiverConfigurationPanel.getModel().getLog4jConfigFile();
+                              if (log4jConfigFile != null) {
+                                  try {
+                                      Map entries = LogFilePatternLayoutBuilder.getAppenderConfiguration(log4jConfigFile);
+                                      for (Object o : entries.entrySet()) {
+                                          try {
+                                              Map.Entry entry = (Map.Entry) o;
+                                              String name = (String) entry.getKey();
+                                              Map values = (Map) entry.getValue();
+                                              //values: conversion, file
+                                              String conversionPattern = values.get("conversion").toString();
+                                              File file = new File(values.get("file").toString());
+                                              URL fileURL = file.toURI().toURL();
+                                              String timestampFormat = LogFilePatternLayoutBuilder.getTimeStampFormat(conversionPattern);
+                                              String receiverPattern = LogFilePatternLayoutBuilder.getLogFormatFromPatternLayout(conversionPattern);
+                                              VFSLogFilePatternReceiver fileReceiver = new VFSLogFilePatternReceiver();
+                                              fileReceiver.setName(name);
+                                              fileReceiver.setAutoReconnect(true);
+                                              fileReceiver.setContainer(LogUI.this);
+                                              fileReceiver.setAppendNonMatches(true);
+                                              fileReceiver.setFileURL(fileURL.toURI().toString());
+                                              fileReceiver.setTailing(true);
+                                              fileReceiver.setLogFormat(receiverPattern);
+                                              fileReceiver.setTimestampFormat(timestampFormat);
+                                              fileReceiver.setThreshold(Level.TRACE);
+                                              pluginRegistry.addPlugin(fileReceiver);
+                                              fileReceiver.activateOptions();
+                                              receiversPanel.updateReceiverTreeInDispatchThread();
+                                          } catch (URISyntaxException e1) {
+                                              e1.printStackTrace();
+                                          }
+                                      }
+                                  } catch (IOException e1) {
+                                      e1.printStackTrace();
+                                  }
+                              }
+                          } else if (receiverConfigurationPanel.getModel().isLoadConfig()) {
+                              configURL = receiverConfigurationPanel.getModel().getConfigToLoad();
+                          } else if (receiverConfigurationPanel.getModel().isLogFileReceiverConfig()) {
+                              try {
+                                  URL fileURL = receiverConfigurationPanel.getModel().getLogFileURL();
+                                  if (fileURL != null) {
+                                      VFSLogFilePatternReceiver fileReceiver = new VFSLogFilePatternReceiver();
+                                      fileReceiver.setName(fileURL.getFile());
+                                      fileReceiver.setAutoReconnect(true);
+                                      fileReceiver.setContainer(LogUI.this);
+                                      fileReceiver.setAppendNonMatches(true);
+                                      fileReceiver.setFileURL(fileURL.toURI().toString());
+                                      fileReceiver.setTailing(true);
+                                      if (receiverConfigurationPanel.getModel().isPatternLayoutLogFormat()) {
+                                          fileReceiver.setLogFormat(LogFilePatternLayoutBuilder.getLogFormatFromPatternLayout(receiverConfigurationPanel.getModel().getLogFormat()));
+                                      } else {
+                                          fileReceiver.setLogFormat(receiverConfigurationPanel.getModel().getLogFormat());
+                                      }
+                                      fileReceiver.setTimestampFormat(receiverConfigurationPanel.getModel().getLogFormatTimestampFormat());
+                                      fileReceiver.setThreshold(Level.TRACE);
+
+                                      pluginRegistry.addPlugin(fileReceiver);
+                                      fileReceiver.activateOptions();
+                                      receiversPanel.updateReceiverTreeInDispatchThread();
+                                  }
+                              } catch (Exception e2) {
+                                  MessageCenter.getInstance().getLogger().error(
+                                          "Error creating Receiver", e2);
+                                  MessageCenter.getInstance().getLogger().info(
+                                          "An error occurred creating your Receiver");
+                              }
                           }
-                      }
-
-                      receiversPanel.updateReceiverTreeInDispatchThread();
-                    }
-                  }).start();
-              }
-                File saveConfigFile = receiverConfigurationPanel.getModel().getSaveConfigFile();
-                if (saveConfigFile != null) {
-                  ReceiversHelper.getInstance().saveReceiverConfiguration(saveConfigFile);
-                }
-          }
-        });
+                          if (configURL == null && receiverConfigurationPanel.isDontWarnMeAgain()) {
+                              //use the saved config file as the config URL if defined
+                              if (receiverConfigurationPanel.getModel().getSaveConfigFile() != null) {
+                                  try {
+                                      configURL = receiverConfigurationPanel.getModel().getSaveConfigFile().toURI().toURL();
+                                  } catch (MalformedURLException e1) {
+                                      e1.printStackTrace();
+                                  }
+                              } else {
+                                  //no saved config defined but don't warn me is checked - use default config
+                                  configURL = receiverConfigurationPanel.getModel().getDefaultConfigFileURL();
+                              }
+                          }
+                          if (configURL != null) {
+                              MessageCenter.getInstance().getLogger().debug(
+                                      "Initialiazing Log4j with " + configURL.toExternalForm());
+                              final URL finalURL = configURL;
+                              new Thread(
+                                      () -> {
+                                          if (receiverConfigurationPanel.isDontWarnMeAgain()) {
+                                              applicationPreferenceModel.setConfigurationURL(finalURL.toExternalForm());
+                                          } else {
+                                              try {
+                                                  if (new File(finalURL.toURI()).exists()) {
+                                                      loadConfigurationUsingPluginClassLoader(finalURL);
+                                                  }
+                                              } catch (URISyntaxException e12) {
+                                                  //ignore
+                                              }
+                                          }
+
+                                          receiversPanel.updateReceiverTreeInDispatchThread();
+                                      }).start();
+                          }
+                          File saveConfigFile = receiverConfigurationPanel.getModel().getSaveConfigFile();
+                          if (saveConfigFile != null) {
+                              ReceiversHelper.getInstance().saveReceiverConfiguration(saveConfigFile);
+                          }
+                      });
 
-          receiverConfigurationPanel.setDialog(dialog);
-          dialog.getContentPane().add(receiverConfigurationPanel);
+              receiverConfigurationPanel.setDialog(dialog);
+              dialog.getContentPane().add(receiverConfigurationPanel);
 
-          dialog.pack();
+              dialog.pack();
 
-          Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
-          dialog.setLocation(
-            (screenSize.width / 2) - (dialog.getWidth() / 2),
-            (screenSize.height / 2) - (dialog.getHeight() / 2));
+              Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+              dialog.setLocation(
+                (screenSize.width / 2) - (dialog.getWidth() / 2),
+                (screenSize.height / 2) - (dialog.getHeight() / 2));
 
-          dialog.setVisible(true);
-        }
-      });
+              dialog.setVisible(true);
+            });
   }
 
   /**
@@ -1618,14 +1543,10 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
   }
 
   void removeWelcomePanel() {
-    EventQueue.invokeLater(new Runnable()
-    {
-        public void run()
-        {
-            if (getTabbedPane().containsWelcomePanel()) {
-              getTabbedPane().remove(
-                getTabbedPane().getComponentAt(getTabbedPane().indexOfTab(ChainsawTabbedPane.WELCOME_TAB)));
-            }
+    EventQueue.invokeLater(() -> {
+        if (getTabbedPane().containsWelcomePanel()) {
+          getTabbedPane().remove(
+            getTabbedPane().getComponentAt(getTabbedPane().indexOfTab(ChainsawTabbedPane.WELCOME_TAB)));
         }
     });
   }
@@ -1711,33 +1632,31 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     progressWindow.setVisible(true);
 
     Runnable runnable =
-      new Runnable() {
-        public void run() {
-          try {
-            int progress = 1;
-            final int delay = 25;
+            () -> {
+              try {
+                int progress = 1;
+                final int delay = 25;
 
-            handler.close();
-            panel.setProgress(progress++);
+                handler.close();
+                panel.setProgress(progress++);
 
-            Thread.sleep(delay);
+                Thread.sleep(delay);
 
-            pluginRegistry.stopAllPlugins();
-            panel.setProgress(progress++);
+                pluginRegistry.stopAllPlugins();
+                panel.setProgress(progress++);
 
-            Thread.sleep(delay);
+                Thread.sleep(delay);
 
-            panel.setProgress(progress++);
-            Thread.sleep(delay);
-          } catch (Exception e) {
-            e.printStackTrace();
-          }
+                panel.setProgress(progress++);
+                Thread.sleep(delay);
+              } catch (Exception e) {
+                e.printStackTrace();
+              }
 
-          fireShutdownEvent();
-          performShutdownAction();
-          progressWindow.setVisible(false);
-        }
-      };
+              fireShutdownEvent();
+              performShutdownAction();
+              progressWindow.setVisible(false);
+            };
 
     if (OSXIntegration.IS_OSX) {
         /**
@@ -1811,11 +1730,7 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     MessageCenter.getInstance().getLogger().debug(
       "Setting StatusBar to " + visible);
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          statusBar.setVisible(visible);
-        }
-      });
+            () -> statusBar.setVisible(visible));
   }
 
   boolean isStatusBarVisible() {
@@ -1971,25 +1886,23 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
    */
   public void setupTutorial() {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
-          setLocation(0, getLocation().y);
-
-          double chainsawwidth = 0.7;
-          double tutorialwidth = 1 - chainsawwidth;
-          setSize((int) (screen.width * chainsawwidth), getSize().height);
-          invalidate();
-          validate();
-
-          Dimension size = getSize();
-          Point loc = getLocation();
-          tutorialFrame.setSize(
-            (int) (screen.width * tutorialwidth), size.height);
-          tutorialFrame.setLocation(loc.x + size.width, loc.y);
-          tutorialFrame.setVisible(true);
-        }
-      });
+            () -> {
+              Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
+              setLocation(0, getLocation().y);
+
+              double chainsawwidth = 0.7;
+              double tutorialwidth = 1 - chainsawwidth;
+              setSize((int) (screen.width * chainsawwidth), getSize().height);
+              invalidate();
+              validate();
+
+              Dimension size = getSize();
+              Point loc = getLocation();
+              tutorialFrame.setSize(
+                (int) (screen.width * tutorialwidth), size.height);
+              tutorialFrame.setLocation(loc.x + size.width, loc.y);
+              tutorialFrame.setVisible(true);
+            });
   }
 
   private void buildLogPanel(
@@ -2020,31 +1933,25 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
       tabbedPane.addChangeListener(iconHandler);
 
       PropertyChangeListener toolbarMenuUpdateListener =
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            tbms.stateChange();
-          }
-        };
+              evt -> tbms.stateChange();
 
       thisPanel.addPropertyChangeListener(toolbarMenuUpdateListener);
       thisPanel.addPreferencePropertyChangeListener(toolbarMenuUpdateListener);
 
       thisPanel.addPropertyChangeListener(
         "docked",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            LogPanel logPanel = (LogPanel) evt.getSource();
-
-            if (logPanel.isDocked()) {
-              getPanelMap().put(logPanel.getIdentifier(), logPanel);
-              getTabbedPane().addANewTab(
-                logPanel.getIdentifier(), logPanel, null);
-              getTabbedPane().setSelectedTab(getTabbedPane().indexOfTab(logPanel.getIdentifier()));
-            } else {
-              getTabbedPane().remove(logPanel);
-            }
-          }
-        });
+              evt -> {
+                LogPanel logPanel = (LogPanel) evt.getSource();
+
+                if (logPanel.isDocked()) {
+                  getPanelMap().put(logPanel.getIdentifier(), logPanel);
+                  getTabbedPane().addANewTab(
+                    logPanel.getIdentifier(), logPanel, null);
+                  getTabbedPane().setSelectedTab(getTabbedPane().indexOfTab(logPanel.getIdentifier()));
+                } else {
+                  getTabbedPane().remove(logPanel);
+                }
+              });
 
       logger.debug("adding logpanel to tabbed pane: " + ident);
       
@@ -2059,17 +1966,15 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
                */
 
       SwingUtilities.invokeLater(
-        new Runnable() {
-          public void run() {
-            getTabbedPane().addANewTab(
-              ident, thisPanel, new ImageIcon(ChainsawIcons.ANIM_RADIO_TOWER));
-              thisPanel.layoutComponents();
-            thisPanel.receiveEventBatch(ident, events);
-            if(!getTabbedPane().tabSetting.isChainsawLog()){
-              displayPanel("chainsaw-log", false);
-            }
-          }
-        });
+              () -> {
+                getTabbedPane().addANewTab(
+                  ident, thisPanel, new ImageIcon(ChainsawIcons.ANIM_RADIO_TOWER));
+                  thisPanel.layoutComponents();
+                thisPanel.receiveEventBatch(ident, events);
+                if(!getTabbedPane().tabSetting.isChainsawLog()){
+                  displayPanel("chainsaw-log", false);
+                }
+              });
 
       String msg = "added tab " + ident;
       MessageCenter.getInstance().getLogger().debug(msg);
@@ -2236,37 +2141,35 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
       ident = identifier;
 
       new Thread(
-        new Runnable() {
-          public void run() {
-            while (true) {
-              //if this tab is active, remove the icon
-              //don't process undocked tabs
-              if (getTabbedPane().indexOfTab(ident) > -1 && 
-                getTabbedPane().getSelectedIndex() == getTabbedPane()
-                                                          .indexOfTab(ident)) {
-                getTabbedPane().setIconAt(
-                  getTabbedPane().indexOfTab(ident), SELECTED);
-                newEvents = false;
-                seenEvents = true;
-              } else if (getTabbedPane().indexOfTab(ident) > -1) {
-                if (newEvents) {
-                  getTabbedPane().setIconAt(
-                    getTabbedPane().indexOfTab(ident), NEW_EVENTS);
-                  newEvents = false;
-                  seenEvents = false;
-                } else if (!seenEvents) {
-                  getTabbedPane().setIconAt(
-                    getTabbedPane().indexOfTab(ident), HAS_EVENTS);
-                }
-              }
+              () -> {
+                while (true) {
+                  //if this tab is active, remove the icon
+                  //don't process undocked tabs
+                  if (getTabbedPane().indexOfTab(ident) > -1 &&
+                    getTabbedPane().getSelectedIndex() == getTabbedPane()
+                                                              .indexOfTab(ident)) {
+                    getTabbedPane().setIconAt(
+                      getTabbedPane().indexOfTab(ident), SELECTED);
+                    newEvents = false;
+                    seenEvents = true;
+                  } else if (getTabbedPane().indexOfTab(ident) > -1) {
+                    if (newEvents) {
+                      getTabbedPane().setIconAt(
+                        getTabbedPane().indexOfTab(ident), NEW_EVENTS);
+                      newEvents = false;
+                      seenEvents = false;
+                    } else if (!seenEvents) {
+                      getTabbedPane().setIconAt(
+                        getTabbedPane().indexOfTab(ident), HAS_EVENTS);
+                    }
+                  }
 
-              try {
-                Thread.sleep(handler.getQueueInterval() + 1000);
-              } catch (InterruptedException ie) {
-              }
-            }
-          }
-        }).start();
+                  try {
+                    Thread.sleep(handler.getQueueInterval() + 1000);
+                  } catch (InterruptedException ie) {
+                  }
+                }
+              }).start();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
index 24986dd..84a53f9 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
@@ -433,12 +433,7 @@ final class LoggerNameTreePanel extends JPanel implements LoggerNameListener
 
         public void actionPerformed(final ActionEvent e)
         {
-             SwingUtilities.invokeLater(new Runnable() {
-
-                public void run()
-                {
-                    clearIgnoreListAction.actionPerformed(e);
-                }}); 
+             SwingUtilities.invokeLater(() -> clearIgnoreListAction.actionPerformed(e));
             
         }});
     ignoreListButtonPanel.add(unhideAll);
@@ -1195,13 +1190,7 @@ final class LoggerNameTreePanel extends JPanel implements LoggerNameListener
 
     final DefaultMutableTreeNode root =
       (DefaultMutableTreeNode) logTreeModel.getRoot();
-    SwingUtilities.invokeLater(new Runnable()
-      {
-        public void run()
-        {
-          logTree.expandPath(new TreePath(root));
-        }
-      });
+    SwingUtilities.invokeLater(() -> logTree.expandPath(new TreePath(root)));
   }
 
   private void findNextUsingCurrentlySelectedNode()
@@ -1358,63 +1347,59 @@ final class LoggerNameTreePanel extends JPanel implements LoggerNameListener
     /**
        * Enable the actions depending on state of the tree selection
        */
-    logTree.addTreeSelectionListener(new TreeSelectionListener()
-      {
-        public void valueChanged(TreeSelectionEvent e)
-        {
-          TreePath path = e.getNewLeadSelectionPath();
-          TreeNode node = null;
+    logTree.addTreeSelectionListener(e -> {
+      TreePath path = e.getNewLeadSelectionPath();
+      TreeNode node = null;
 
-          if (path != null)
-          {
-            node = (TreeNode) path.getLastPathComponent();
-          }
-          boolean focusOnSelected = isFocusOnSelected();
-          //          editLoggerAction.setEnabled(path != null);
-          currentlySelectedLoggerName = getCurrentlySelectedLoggerName();
-          focusOnAction.setEnabled(
-            (path != null) && (node != null) && (node.getParent() != null)
-            && !hiddenSet.contains(currentlySelectedLoggerName));
-          hideAction.setEnabled(
-            (path != null) && (node != null) && (node.getParent() != null));
-          if (!focusOnAction.isEnabled())
-          {
-            setFocusOnSelected(false);
-          }
-          else
-          {
-          }
+      if (path != null)
+      {
+        node = (TreeNode) path.getLastPathComponent();
+      }
+      boolean focusOnSelected = isFocusOnSelected();
+      //          editLoggerAction.setEnabled(path != null);
+      currentlySelectedLoggerName = getCurrentlySelectedLoggerName();
+      focusOnAction.setEnabled(
+        (path != null) && (node != null) && (node.getParent() != null)
+        && !hiddenSet.contains(currentlySelectedLoggerName));
+      hideAction.setEnabled(
+        (path != null) && (node != null) && (node.getParent() != null));
+      if (!focusOnAction.isEnabled())
+      {
+        setFocusOnSelected(false);
+      }
+      else
+      {
+      }
 
-          expandAction.setEnabled(path != null);
-          findAction.setEnabled(path != null);
-          clearFindNextAction.setEnabled(true);
-          defineColorRuleForLoggerAction.setEnabled(path != null);
-          setRefineFocusAction.setEnabled(path != null);
-          updateRefineFocusAction.setEnabled(path != null);
-          updateFindAction.setEnabled(path != null);
-          clearRefineFocusAction.setEnabled(true);
+      expandAction.setEnabled(path != null);
+      findAction.setEnabled(path != null);
+      clearFindNextAction.setEnabled(true);
+      defineColorRuleForLoggerAction.setEnabled(path != null);
+      setRefineFocusAction.setEnabled(path != null);
+      updateRefineFocusAction.setEnabled(path != null);
+      updateFindAction.setEnabled(path != null);
+      clearRefineFocusAction.setEnabled(true);
 
-          if (currentlySelectedLoggerName != null)
-          {
-            boolean isHidden = hiddenSet.contains(currentlySelectedLoggerName);
-            popupMenu.hideCheck.setSelected(isHidden);
-            ignoreLoggerButton.setSelected(isHidden);
-          }
+      if (currentlySelectedLoggerName != null)
+      {
+        boolean isHidden = hiddenSet.contains(currentlySelectedLoggerName);
+        popupMenu.hideCheck.setSelected(isHidden);
+        ignoreLoggerButton.setSelected(isHidden);
+      }
 
-          collapseAction.setEnabled(path != null);
+      collapseAction.setEnabled(path != null);
 
-          reconfigureMenuText();
-          if (isFocusOnSelected()) {
-              fireChangeEvent();
-          }
-          //fire change event if we toggled focus off
-          if (focusOnSelected && !isFocusOnSelected()) {
-              fireChangeEvent();
-          }
-          //trigger a table repaint
-          logPanel.repaint();
-        }
-      });
+      reconfigureMenuText();
+      if (isFocusOnSelected()) {
+          fireChangeEvent();
+      }
+      //fire change event if we toggled focus off
+      if (focusOnSelected && !isFocusOnSelected()) {
+          fireChangeEvent();
+      }
+      //trigger a table repaint
+      logPanel.repaint();
+    });
 
     logTree.addMouseListener(popupListener);
 
@@ -1423,32 +1408,24 @@ final class LoggerNameTreePanel extends JPanel implements LoggerNameListener
      * stay in sync, plus notifies all the ChangeListeners that
      * an effective filter criteria has been modified
      */
-    focusOnAction.addPropertyChangeListener(new PropertyChangeListener()
-      {
-        public void propertyChange(PropertyChangeEvent evt)
-        {
-          popupMenu.focusOnCheck.setSelected(isFocusOnSelected());
-          focusOnLoggerButton.setSelected(isFocusOnSelected());
+    focusOnAction.addPropertyChangeListener(evt -> {
+      popupMenu.focusOnCheck.setSelected(isFocusOnSelected());
+      focusOnLoggerButton.setSelected(isFocusOnSelected());
 
-          if (logTree.getSelectionPath() != null)
-          {
-            logTreeModel.nodeChanged(
-              (TreeNode) logTree.getSelectionPath().getLastPathComponent());
-          }
-        }
-      });
+      if (logTree.getSelectionPath() != null)
+      {
+        logTreeModel.nodeChanged(
+          (TreeNode) logTree.getSelectionPath().getLastPathComponent());
+      }
+    });
 
-    hideAction.addPropertyChangeListener(new PropertyChangeListener()
+    hideAction.addPropertyChangeListener(evt -> {
+      if (logTree.getSelectionPath() != null)
       {
-        public void propertyChange(PropertyChangeEvent evt)
-        {
-          if (logTree.getSelectionPath() != null)
-          {
-            logTreeModel.nodeChanged(
-              (TreeNode) logTree.getSelectionPath().getLastPathComponent());
-          }
-        }
-      });
+        logTreeModel.nodeChanged(
+          (TreeNode) logTree.getSelectionPath().getLastPathComponent());
+      }
+    });
 
     //    /**
     //     * Now add a MouseListener that fires the expansion
@@ -1476,24 +1453,16 @@ final class LoggerNameTreePanel extends JPanel implements LoggerNameListener
      * We listen for when the FocusOn action changes, and then  translate
      * that to a RuleChange
      */
-    addChangeListener(new ChangeListener()
-      {
-        public void stateChanged(ChangeEvent evt)
-        {
-          visibilityRuleDelegate.firePropertyChange("rule", null, null);
-          updateDisplay();
-        }
-      });
-
-    visibilityRuleDelegate.addPropertyChangeListener(new PropertyChangeListener()
-      {
-        public void propertyChange(PropertyChangeEvent event)
-        {
-          if (event.getPropertyName().equals("hiddenSet")) {
-            updateDisplay();
-          }
-        }
-      });
+    addChangeListener(evt -> {
+      visibilityRuleDelegate.firePropertyChange("rule", null, null);
+      updateDisplay();
+    });
+
+    visibilityRuleDelegate.addPropertyChangeListener(event -> {
+      if (event.getPropertyName().equals("hiddenSet")) {
+        updateDisplay();
+      }
+    });
   }
 
   private void updateDisplay() {
@@ -1582,11 +1551,7 @@ final class LoggerNameTreePanel extends JPanel implements LoggerNameListener
 
         //loggernameAdded runs on EDT
         logTreeModel.loggerNameAdded(logger);
-        EventQueue.invokeLater(new Runnable() {
-            public void run() {
-                setFocusOn(logger);
-            }
-        });
+        EventQueue.invokeLater(() -> setFocusOn(logger));
     }
 
     //~ Inner Classes ===========================================================

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java b/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java
index 6d93b0b..23800b2 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ProgressPanel.java
@@ -53,20 +53,12 @@ public class ProgressPanel extends JPanel {
 
   public void setMessage(final String string) {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          messageLabel.setText(string);
-        }
-      });
+            () -> messageLabel.setText(string));
   }
 
   public void setProgress(final int progress) {
     try {
-      Runnable runnable = new Runnable() {
-          public void run() {
-            progressBar.setValue(progress);
-          }
-        };
+      Runnable runnable = () -> progressBar.setValue(progress);
     if (!SwingUtilities.isEventDispatchThread()) {
         SwingUtilities.invokeAndWait(runnable);
     }else {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
index 4494f1f..aa9aaf1 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
@@ -194,11 +194,7 @@ class ReceiverConfigurationPanel extends JPanel {
          * This listener activates/deactivates certain controls based on the current
          * state of the options
          */
-        ActionListener al = new ActionListener() {
-                public void actionPerformed(ActionEvent e) {
-                    updateEnabledState((Component)e.getSource());
-                }
-            };
+        ActionListener al = e -> updateEnabledState((Component)e.getSource());
 
         logFileReceiverRadioButton.addActionListener(al);
         log4jConfigReceiverRadioButton.addActionListener(al);
@@ -267,21 +263,17 @@ class ReceiverConfigurationPanel extends JPanel {
             }
         });
 
-      saveButton.addActionListener(new ActionListener()
-      {
-          public void actionPerformed(ActionEvent e)
-          {
-            try {
-                URL url = browseFile("Choose a path and file name to save", false);
-                if (url != null) {
-                  File file = new File(url.toURI());
-                  panelModel.setSaveConfigFile(file);
-                }
-            } catch (Exception ex) {
-                logger.error(
-                    "Error browsing for log file", ex);
+      saveButton.addActionListener(e -> {
+        try {
+            URL url = browseFile("Choose a path and file name to save", false);
+            if (url != null) {
+              File file = new File(url.toURI());
+              panelModel.setSaveConfigFile(file);
             }
-          }
+        } catch (Exception ex) {
+            logger.error(
+                "Error browsing for log file", ex);
+        }
       });
       return panel;
     }
@@ -654,11 +646,7 @@ class ReceiverConfigurationPanel extends JPanel {
         if (selectedFile != null) {
           result = selectedFile.toURI().toURL();
         }
-        EventQueue.invokeLater(new Runnable() {
-          public void run() {
-            dialog.setVisible(true);
-          }
-        });
+        EventQueue.invokeLater(() -> dialog.setVisible(true));
         return result;
     }
 
@@ -680,11 +668,7 @@ class ReceiverConfigurationPanel extends JPanel {
         if (selectedFile != null) {
           result = selectedFile.toURI().toURL();
         }
-        EventQueue.invokeLater(new Runnable() {
-          public void run() {
-            dialog.setVisible(true);
-          }
-        });
+        EventQueue.invokeLater(() -> dialog.setVisible(true));
         return result;
     }
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java b/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
index a56bd5e..e4a5ad8 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ThresholdSlider.java
@@ -51,19 +51,17 @@ final class ThresholdSlider extends JSlider {
 
     priorityList = Arrays.asList(levels);
 
-    priorityList.sort(new Comparator() {
-        public int compare(Object o1, Object o2) {
-            Level p1 = (Level) o1;
-            Level p2 = (Level) o2;
-
-            if (p1.toInt() == p2.toInt()) {
-                return 0;
-            } else if (p1.toInt() < p2.toInt()) {
-                return -1;
-            }
-
-            return 1;
+    priorityList.sort((o1, o2) -> {
+        Level p1 = (Level) o1;
+        Level p2 = (Level) o2;
+
+        if (p1.toInt() == p2.toInt()) {
+            return 0;
+        } else if (p1.toInt() < p2.toInt()) {
+            return -1;
         }
+
+        return 1;
     });
 
     setModel(


[13/14] logging-chainsaw git commit: Add logging-parent, upgrade ant, other pom fixes

Posted by ma...@apache.org.
Add logging-parent, upgrade ant, other pom fixes


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/b11c5d72
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/b11c5d72
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/b11c5d72

Branch: refs/heads/master
Commit: b11c5d726e84c36fe88c78da76a32669d2b8530e
Parents: badb4f7
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:39:09 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:39:09 2018 -0600

----------------------------------------------------------------------
 pom.xml | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/b11c5d72/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8086928..ab1c6d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,6 +16,11 @@
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <groupId>org.apache.logging</groupId>
+    <artifactId>logging-parent</artifactId>
+    <version>1</version>
+  </parent>
   <modelVersion>4.0.0</modelVersion>
   <groupId>log4j</groupId>
   <artifactId>apache-chainsaw</artifactId>
@@ -25,9 +30,8 @@
   <url>https://logging.apache.org/chainsaw</url>
   <inceptionYear>2002</inceptionYear>
   <issueManagement>
-    <system>Bugzilla</system>
-    <!-- TODO: migrate to JIRA -->
-    <url>https://issues.apache.org/bugzilla/</url>
+    <system>JIRA</system>
+    <url>https://issues.apache.org/jira/browse/CHAINSAW</url>
   </issueManagement>
   <mailingLists>
     <mailingList>
@@ -133,15 +137,16 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>2.8.1</version>
       </plugin>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
           <workingDirectory>target</workingDirectory>
         </configuration>
       </plugin>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <configuration>
           <source>1.8</source>
@@ -149,6 +154,7 @@
         </configuration>
       </plugin>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
         <configuration>
           <archive>
@@ -170,6 +176,7 @@
         </configuration>
       </plugin>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
         <executions>
           <execution>
@@ -232,14 +239,9 @@
         </executions>
         <dependencies>
           <dependency>
-            <groupId>ant</groupId>
-            <artifactId>ant-nodeps</artifactId>
-            <version>1.6.5</version>
-          </dependency>
-          <dependency>
-            <groupId>ant</groupId>
+            <groupId>org.apache.ant</groupId>
             <artifactId>ant</artifactId>
-            <version>1.6.5</version>
+            <version>1.10.2</version>
           </dependency>
           <dependency>
             <groupId>ant-contrib</groupId>


[09/14] logging-chainsaw git commit: Use built in comparators

Posted by ma...@apache.org.
Use built in comparators


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/a65ced6f
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/a65ced6f
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/a65ced6f

Branch: refs/heads/master
Commit: a65ced6f3f1d7b19d90eea6b6dbed474086b1054
Parents: 25eb001
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:08:27 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:08:27 2018 -0600

----------------------------------------------------------------------
 .../apache/log4j/chainsaw/ColumnComparator.java | 28 ++++++++------------
 1 file changed, 11 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a65ced6f/src/main/java/org/apache/log4j/chainsaw/ColumnComparator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ColumnComparator.java b/src/main/java/org/apache/log4j/chainsaw/ColumnComparator.java
index 158f62b..ae6f196 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ColumnComparator.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ColumnComparator.java
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -118,25 +118,19 @@ public class ColumnComparator implements Comparator {
         }
 
         break;
-        
+
        case ChainsawColumns.INDEX_TIMESTAMP_COL_NAME:
-       		sort = (e1.getTimeStamp()<e2.getTimeStamp() ? -1 : (e1.getTimeStamp()==e2.getTimeStamp() ? 0 : 1));
+       		sort = (Long.compare(e1.getTimeStamp(), e2.getTimeStamp()));
        		break;
-       		
+
        case ChainsawColumns.INDEX_THREAD_COL_NAME:
        		sort = e1.getThreadName().compareToIgnoreCase(e2.getThreadName());
        		break;
-            
+
        case ChainsawColumns.INDEX_ID_COL_NAME:
             int id1 = Integer.parseInt(e1.getProperty(Constants.LOG4J_ID_KEY));
-            int id2 = Integer.parseInt(e2.getProperty(Constants.LOG4J_ID_KEY)); 
-            if (id1 == id2) {
-                sort = 0;
-            } else if (id1 < id2) {
-                sort = 1;
-            } else {
-                sort = -1;
-            }
+            int id2 = Integer.parseInt(e2.getProperty(Constants.LOG4J_ID_KEY));
+            sort = Integer.compare(id2, id1);
             break;
 
        case ChainsawColumns.INDEX_THROWABLE_COL_NAME:
@@ -163,8 +157,8 @@ public class ColumnComparator implements Comparator {
                     e2.getLocationInformation().getLineNumber());
             }
             break;
-            
-      //other columns may be Property values - see if there is an Property value matching column name 
+
+      //other columns may be Property values - see if there is an Property value matching column name
       default:
           if (e1.getProperty(columnName) != null && e2.getProperty(columnName) != null) {
               sort = e1.getProperty(columnName).toString().compareToIgnoreCase(e2.getProperty(columnName).toString());
@@ -172,7 +166,7 @@ public class ColumnComparator implements Comparator {
       }
     }
 
-    sort = (sort == 0) ? 0 : ((sort < 0) ? (-1) : 1);
+    sort = Integer.compare(sort, 0);
 
     if (!ascending && (sort != 0)) {
       sort = (sort < 0) ? 1 : (-1);


[05/14] logging-chainsaw git commit: Replace anonymous classes with lambdas

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java b/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
index 2a87cd1..f475a00 100644
--- a/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
@@ -73,20 +73,18 @@ public class WelcomePanel extends JPanel {
         textInfo.setPage(helpURL);
         JTextComponentFormatter.applySystemFontAndSize(textInfo);
         textInfo.addHyperlinkListener(
-          new HyperlinkListener() {
-            public void hyperlinkUpdate(HyperlinkEvent e) {
-              if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
-                urlStack.add(textInfo.getPage());
-
-                try {
-                  textInfo.setPage(e.getURL());
-                  urlToolbar.updateToolbar();
-                } catch (IOException e1) {
-                  e1.printStackTrace();
-                }
-              }
-            }
-          });
+                e -> {
+                  if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
+                    urlStack.add(textInfo.getPage());
+
+                    try {
+                      textInfo.setPage(e.getURL());
+                      urlToolbar.updateToolbar();
+                    } catch (IOException e1) {
+                      e1.printStackTrace();
+                    }
+                  }
+                });
       } catch (Exception e) {
         e.printStackTrace();
       }
@@ -95,19 +93,17 @@ public class WelcomePanel extends JPanel {
 
   void setURL(final URL url) {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          try {
-            urlStack.push(textInfo.getPage());
-            textInfo.setPage(url);
-            //not all pages displayed in the Welcome Panel are html-based (example receiver config is an xml file)..
-            JTextComponentFormatter.applySystemFontAndSize(textInfo);
-            urlToolbar.updateToolbar();
-          } catch (IOException e) {
-            e.printStackTrace();
-          }
-        }
-      });
+            () -> {
+              try {
+                urlStack.push(textInfo.getPage());
+                textInfo.setPage(url);
+                //not all pages displayed in the Welcome Panel are html-based (example receiver config is an xml file)..
+                JTextComponentFormatter.applySystemFontAndSize(textInfo);
+                urlToolbar.updateToolbar();
+              } catch (IOException e) {
+                e.printStackTrace();
+              }
+            });
   }
 
   private class URLToolbar extends JToolBar {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java b/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
index 4b8c901..a1d33f6 100644
--- a/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
@@ -128,11 +128,7 @@ public class ColorPanel extends JPanel
 
     currentLogPanelColorizer.addPropertyChangeListener(
     	      "colorrule",
-    	      new PropertyChangeListener() {
-    	        public void propertyChange(PropertyChangeEvent evt) {
-    	        	updateColors();
-    	        }
-    	      });
+            evt -> updateColors());
 
     tableModel = new DefaultTableModel();
     table = new JTable(tableModel);
@@ -194,11 +190,7 @@ public class ColorPanel extends JPanel
     searchTable.getColumnModel().getColumn(0).setMaxWidth(80);
     searchTable.getColumnModel().getColumn(1).setMaxWidth(80);
     //building color choosers needs to be done on the EDT
-    SwingHelper.invokeOnEDT(new Runnable() {
-      public void run() {
-        configureSingleEntryColorTable(searchTable);
-      }
-    });
+    SwingHelper.invokeOnEDT(() -> configureSingleEntryColorTable(searchTable));
 
     alternatingColorTable.sizeColumnsToFit(0);
     alternatingColorTable.getColumnModel().getColumn(0).setPreferredWidth(80);
@@ -206,11 +198,7 @@ public class ColorPanel extends JPanel
     alternatingColorTable.getColumnModel().getColumn(0).setMaxWidth(80);
     alternatingColorTable.getColumnModel().getColumn(1).setMaxWidth(80);
     //building color choosers needs to be done on the EDT
-    SwingHelper.invokeOnEDT(new Runnable() {
-      public void run() {
-        configureSingleEntryColorTable(alternatingColorTable);
-      }
-    });
+    SwingHelper.invokeOnEDT(() -> configureSingleEntryColorTable(alternatingColorTable));
 
     configureTable();
 
@@ -280,13 +268,11 @@ public class ColorPanel extends JPanel
           }
       };
         
-      loadPanelColorizersComboBox.addActionListener(new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-              Object selectedItem = loadPanelColorizersComboBox.getSelectedItem();
-              if (selectedItem != null) {
-                String selectedColorizerName = selectedItem.toString();
-                copyRulesAction.setEnabled(!(noTab.equals(selectedColorizerName)));
-              }
+      loadPanelColorizersComboBox.addActionListener(e -> {
+          Object selectedItem = loadPanelColorizersComboBox.getSelectedItem();
+          if (selectedItem != null) {
+            String selectedColorizerName = selectedItem.toString();
+            copyRulesAction.setEnabled(!(noTab.equals(selectedColorizerName)));
           }
       });
 
@@ -596,30 +582,28 @@ public class ColorPanel extends JPanel
     downButton.setEnabled(false);
 
     table.getSelectionModel().addListSelectionListener(
-      new ListSelectionListener() {
-        public void valueChanged(ListSelectionEvent e) {
-          if (!e.getValueIsAdjusting()) {
-            int index = table.getSelectionModel().getMaxSelectionIndex();
-
-            if (index < 0) {
-              downButton.setEnabled(false);
-              upButton.setEnabled(false);
-            } else if ((index == 0) && (tableModel.getRowCount() == 1)) {
-              downButton.setEnabled(false);
-              upButton.setEnabled(false);
-            } else if ((index == 0) && (tableModel.getRowCount() > 1)) {
-              downButton.setEnabled(true);
-              upButton.setEnabled(false);
-            } else if (index == (tableModel.getRowCount() - 1)) {
-              downButton.setEnabled(false);
-              upButton.setEnabled(true);
-            } else {
-              downButton.setEnabled(true);
-              upButton.setEnabled(true);
-            }
-          }
-        }
-      });
+            e -> {
+              if (!e.getValueIsAdjusting()) {
+                int index = table.getSelectionModel().getMaxSelectionIndex();
+
+                if (index < 0) {
+                  downButton.setEnabled(false);
+                  upButton.setEnabled(false);
+                } else if ((index == 0) && (tableModel.getRowCount() == 1)) {
+                  downButton.setEnabled(false);
+                  upButton.setEnabled(false);
+                } else if ((index == 0) && (tableModel.getRowCount() > 1)) {
+                  downButton.setEnabled(true);
+                  upButton.setEnabled(false);
+                } else if (index == (tableModel.getRowCount() - 1)) {
+                  downButton.setEnabled(false);
+                  upButton.setEnabled(true);
+                } else {
+                  downButton.setEnabled(true);
+                  upButton.setEnabled(true);
+                }
+              }
+            });
 
     JPanel upPanel = new JPanel();
 
@@ -733,19 +717,17 @@ public class ColorPanel extends JPanel
       });
 
     table.getSelectionModel().addListSelectionListener(
-      new ListSelectionListener() {
-        public void valueChanged(ListSelectionEvent e) {
-          if (!e.getValueIsAdjusting()) {
-            int index = table.getSelectionModel().getMaxSelectionIndex();
-
-            if (index < 0) {
-              deleteButton.setEnabled(false);
-            } else {
-              deleteButton.setEnabled(true);
-            }
-          }
-        }
-      });
+            e -> {
+              if (!e.getValueIsAdjusting()) {
+                int index = table.getSelectionModel().getMaxSelectionIndex();
+
+                if (index < 0) {
+                  deleteButton.setEnabled(false);
+                } else {
+                  deleteButton.setEnabled(true);
+                }
+              }
+            });
 
     deletePanel.add(deleteButton);
 
@@ -807,17 +789,11 @@ public class ColorPanel extends JPanel
         JColorChooser.createDialog(
           box, "Pick a Color", true, //modal
           colorChooser,
-          new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-              box.insertItemAt(colorChooser.getColor(), 0);
-              box.setSelectedIndex(0);
-            }
-          }, //OK button handler
-          new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                box.setSelectedItem(lastColor);
-            }
-          }); //CANCEL button handler
+                e -> {
+                  box.insertItemAt(colorChooser.getColor(), 0);
+                  box.setSelectedIndex(0);
+                }, //OK button handler
+                e -> box.setSelectedItem(lastColor)); //CANCEL button handler
       dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
     }
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java b/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
index dd27fb9..df1cb9b 100644
--- a/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
+++ b/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
@@ -146,11 +146,7 @@ public final class LayoutEditorPane extends JPanel {
       });
 
     patternEditor.addCaretListener(
-      new CaretListener() {
-        public void caretUpdate(CaretEvent e) {
-          updateTextActions(e.getMark() != e.getDot());
-        }
-      });
+            e -> updateTextActions(e.getMark() != e.getDot()));
   }
 
   private void updatePreview() {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java b/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java
index bf858b5..5ddb7a3 100644
--- a/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java
+++ b/src/main/java/org/apache/log4j/chainsaw/messages/MessageCenter.java
@@ -129,12 +129,10 @@ public class MessageCenter {
   private void setupListeners() {
     propertySupport.addPropertyChangeListener(
       "layout",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          Layout newLayout = (Layout) evt.getNewValue();
-          messageList.setCellRenderer(new LayoutListCellRenderer(newLayout));
-        }
-      });
+            evt -> {
+              Layout newLayout = (Layout) evt.getNewValue();
+              messageList.setCellRenderer(new LayoutListCellRenderer(newLayout));
+            });
     messageList.addMouseListener(popupListener);
 
     appender.getModel().addListDataListener(

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java b/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java
index 6487d4f..6c11118 100644
--- a/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java
+++ b/src/main/java/org/apache/log4j/chainsaw/plugins/PluginClassLoaderFactory.java
@@ -70,11 +70,7 @@ public class PluginClassLoaderFactory {
          return PluginClassLoaderFactory.class.getClassLoader();
         }
         
-        String[] strings = pluginDirectory.list(new FilenameFilter() {
-
-			public boolean accept(File dir, String name) {
-                return name.toUpperCase().endsWith(".JAR");
-			}});
+        String[] strings = pluginDirectory.list((dir, name) -> name.toUpperCase().endsWith(".JAR"));
         
       
         List list = new ArrayList();

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
index fffa33e..de998b7 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.java
@@ -74,9 +74,7 @@ public class NewReceiverDialogPanel extends JPanel {
          * url to be the Help resource for that class
          */
         pluginEditorPanel.addPropertyChangeListener("plugin",
-            new PropertyChangeListener() {
-
-                public void propertyChange(PropertyChangeEvent evt) {
+                evt -> {
 
                     Plugin plugin = (Plugin) evt.getNewValue();
                     URL url = HelpManager.getInstance().getHelpForClass(
@@ -89,8 +87,7 @@ public class NewReceiverDialogPanel extends JPanel {
                             "Failed to load the Help resource for " +
                             plugin.getClass(), e);
                     }
-                }
-            });
+                });
     }
 
     /**
@@ -170,11 +167,7 @@ public class NewReceiverDialogPanel extends JPanel {
         JDialog dialog = new JDialog((JFrame) null, true);
         dialog.getContentPane().add(panel);
 
-        ActionListener al = new ActionListener() {
-                public void actionPerformed(ActionEvent e) {
-                    System.exit(1);
-                }
-            };
+        ActionListener al = e -> System.exit(1);
 
         panel.okPanel.getOkButton().addActionListener(al);
         panel.okPanel.getCancelButton().addActionListener(al);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
index b219f4e..7479931 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.java
@@ -100,32 +100,29 @@ public class PluginPropertyEditorPanel extends JPanel {
      *
      */
     private void setupListeners() {
-        addPropertyChangeListener("plugin", new PropertyChangeListener() {
+        addPropertyChangeListener("plugin", evt -> {
 
-                public void propertyChange(PropertyChangeEvent evt) {
+            final Plugin p = (Plugin) evt.getNewValue();
 
-                    final Plugin p = (Plugin) evt.getNewValue();
+            if (p != null) {
 
-                    if (p != null) {
-
-                        try {
-
-                            PluginPropertyTableModel model =
-                                new PluginPropertyTableModel(p);
-                            propertyTable.setModel(model);
-                            propertyTable.getColumnModel().getColumn(1)
-                            .setCellEditor(new PluginTableCellEditor());
-                            propertyTable.setEnabled(true);
-                        } catch (Throwable e) {
-                            logger.error("Failed to introspect the Plugin", e);
-                        }
-                    } else {
-                        propertyTable.setModel(defaultModel);
-                        propertyTable.setEnabled(false);
-                    }
+                try {
 
+                    PluginPropertyTableModel model =
+                        new PluginPropertyTableModel(p);
+                    propertyTable.setModel(model);
+                    propertyTable.getColumnModel().getColumn(1)
+                    .setCellEditor(new PluginTableCellEditor());
+                    propertyTable.setEnabled(true);
+                } catch (Throwable e) {
+                    logger.error("Failed to introspect the Plugin", e);
                 }
-            });
+            } else {
+                propertyTable.setModel(defaultModel);
+                propertyTable.setEnabled(false);
+            }
+
+        });
     }
 
     public static void main(String[] args) {
@@ -253,16 +250,13 @@ public class PluginPropertyEditorPanel extends JPanel {
             List list = new ArrayList(Arrays.asList(
                         beanInfo.getPropertyDescriptors()));
 
-            list.sort(new Comparator() {
+            list.sort((o1, o2) -> {
 
-                public int compare(Object o1, Object o2) {
+                PropertyDescriptor d1 = (PropertyDescriptor) o1;
+                PropertyDescriptor d2 = (PropertyDescriptor) o2;
 
-                    PropertyDescriptor d1 = (PropertyDescriptor) o1;
-                    PropertyDescriptor d2 = (PropertyDescriptor) o2;
-
-                    return d1.getDisplayName().compareToIgnoreCase(
-                            d2.getDisplayName());
-                }
+                return d1.getDisplayName().compareToIgnoreCase(
+                        d2.getDisplayName());
             });
             this.plugin = p;
             this.descriptors = (PropertyDescriptor[]) list.toArray(

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
index 4b7061a..13c7262 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
@@ -186,26 +186,24 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
       });
 
     receiversTree.addTreeSelectionListener(
-      new TreeSelectionListener() {
-        public void valueChanged(TreeSelectionEvent e) {
-          TreePath path = e.getNewLeadSelectionPath();
+            e -> {
+              TreePath path = e.getNewLeadSelectionPath();
 
-          if (path != null) {
-            DefaultMutableTreeNode node =
-              (DefaultMutableTreeNode) path.getLastPathComponent();
+              if (path != null) {
+                DefaultMutableTreeNode node =
+                  (DefaultMutableTreeNode) path.getLastPathComponent();
 
-            if (
-              (node != null) && (node.getUserObject() != null)
-                && (node.getUserObject() instanceof Plugin)) {
-              Plugin p = (Plugin) node.getUserObject();
-              logger.debug("plugin=" + p);
-              pluginEditorPanel.setPlugin(p);
-            } else {
-              pluginEditorPanel.setPlugin(null);
-            }
-          }
-        }
-      });
+                if (
+                  (node != null) && (node.getUserObject() != null)
+                    && (node.getUserObject() instanceof Plugin)) {
+                  Plugin p = (Plugin) node.getUserObject();
+                  logger.debug("plugin=" + p);
+                  pluginEditorPanel.setPlugin(p);
+                } else {
+                  pluginEditorPanel.setPlugin(null);
+                }
+              }
+            });
 
     receiversTree.setToolTipText("Allows you to manage Log4j Receivers");
     newReceiverButtonAction =
@@ -352,22 +350,20 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
                   "This will cause any active Receiver to stop, and disconnect.  Is this ok?",
                   "Confirm", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) {
               new Thread(
-                new Runnable() {
-                  public void run() {
-                    Collection allReceivers =
-                        pluginRegistry.getPlugins(Receiver.class);
-
-                      for (Object allReceiver : allReceivers) {
-                          Receiver item = (Receiver) allReceiver;
-                          item.shutdown();
-                          item.activateOptions();
-                      }
-
-                    updateReceiverTreeInDispatchThread();
-                    MessageCenter.getInstance().getLogger().info(
-                      "All Receivers have been (re)started");
-                  }
-                }).start();
+                      () -> {
+                        Collection allReceivers =
+                            pluginRegistry.getPlugins(Receiver.class);
+
+                          for (Object allReceiver : allReceivers) {
+                              Receiver item = (Receiver) allReceiver;
+                              item.shutdown();
+                              item.activateOptions();
+                          }
+
+                        updateReceiverTreeInDispatchThread();
+                        MessageCenter.getInstance().getLogger().info(
+                          "All Receivers have been (re)started");
+                      }).start();
             }
           }
         };
@@ -444,20 +440,18 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
    */
   protected void updateCurrentlySelectedNodeInDispatchThread() {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          DefaultMutableTreeNode node =
-            (DefaultMutableTreeNode) receiversTree
-            .getLastSelectedPathComponent();
+            () -> {
+              DefaultMutableTreeNode node =
+                (DefaultMutableTreeNode) receiversTree
+                .getLastSelectedPathComponent();
 
-          if (node == null) {
-            return;
-          }
+              if (node == null) {
+                return;
+              }
 
-          getReceiverTreeModel().nodeChanged(node);
-          updateActions();
-        }
-      });
+              getReceiverTreeModel().nodeChanged(node);
+              updateActions();
+            });
   }
 
   /**
@@ -527,16 +521,14 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
    */
   private void pauseCurrentlySelectedReceiver() {
     new Thread(
-      new Runnable() {
-        public void run() {
-          Object obj = getCurrentlySelectedUserObject();
+            () -> {
+              Object obj = getCurrentlySelectedUserObject();
 
-          if ((obj != null) && obj instanceof Pauseable) {
-            ((Pauseable) obj).setPaused(true);
-            updateCurrentlySelectedNodeInDispatchThread();
-          }
-        }
-      }).start();
+              if ((obj != null) && obj instanceof Pauseable) {
+                ((Pauseable) obj).setPaused(true);
+                updateCurrentlySelectedNodeInDispatchThread();
+              }
+            }).start();
   }
 
   /**
@@ -546,17 +538,15 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
    */
   private void playCurrentlySelectedReceiver() {
     new Thread(
-      new Runnable() {
-        public void run() {
-          Object obj = getCurrentlySelectedUserObject();
+            () -> {
+              Object obj = getCurrentlySelectedUserObject();
 
-          if ((obj != null) && obj instanceof Pauseable) {
-            ((Pauseable) obj).setPaused(false);
+              if ((obj != null) && obj instanceof Pauseable) {
+                ((Pauseable) obj).setPaused(false);
 
-            updateCurrentlySelectedNodeInDispatchThread();
-          }
-        }
-      }).start();
+                updateCurrentlySelectedNodeInDispatchThread();
+              }
+            }).start();
   }
 
   /**
@@ -573,17 +563,15 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
           "Are you sure you wish to shutdown this receiver?\n\nThis will disconnect any network resources, and remove it from the PluginRegistry.",
           "Confirm stop of Receiver", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
       new Thread(
-        new Runnable() {
-          public void run() {
-            Receiver[] receivers = getSelectedReceivers();
+              () -> {
+                Receiver[] receivers = getSelectedReceivers();
 
-            if (receivers != null) {
-                for (Receiver receiver : receivers) {
-                    pluginRegistry.stopPlugin(receiver.getName());
+                if (receivers != null) {
+                    for (Receiver receiver : receivers) {
+                        pluginRegistry.stopPlugin(receiver.getName());
+                    }
                 }
-            }
-          }
-        }).start();
+              }).start();
     }
   }
 
@@ -713,17 +701,15 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
 
 
                                   panel.getOkPanel().getOkButton().addActionListener(
-                                          new ActionListener() {
-                                              public void actionPerformed(ActionEvent e2) {
-                                                  Plugin plugin = panel.getPlugin();
-                                                  if (plugin.getName() != null && !plugin.getName().trim().equals("")) {
-                                                      dialog.dispose();
-                                                      pluginRegistry.addPlugin(plugin);
-                                                      plugin.activateOptions();
-                                                      MessageCenter.getInstance().addMessage("Plugin '" + plugin.getName() + "' started");
-                                                  } else {
-                                                      MessageCenter.getInstance().getLogger().error("Name required to create receiver");
-                                                  }
+                                          e2 -> {
+                                              Plugin plugin = panel.getPlugin();
+                                              if (plugin.getName() != null && !plugin.getName().trim().equals("")) {
+                                                  dialog.dispose();
+                                                  pluginRegistry.addPlugin(plugin);
+                                                  plugin.activateOptions();
+                                                  MessageCenter.getInstance().addMessage("Plugin '" + plugin.getName() + "' started");
+                                              } else {
+                                                  MessageCenter.getInstance().getLogger().error("Name required to create receiver");
                                               }
                                           });
                                   dialog.setVisible(true);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java
index e0d3f7e..4eb0793 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.java
@@ -103,14 +103,11 @@ public class ReceiversTreeModel extends DefaultTreeModel
 
   private PropertyChangeListener creatPluginPropertyChangeListener(final Receiver item, final DefaultMutableTreeNode receiverNode)
   {
-    return new PropertyChangeListener() {
-
-      public void propertyChange(PropertyChangeEvent evt)
-      {
-        logger.debug(evt.toString());
-        ReceiversTreeModel.this.fireTreeNodesChanged(item, receiverNode.getPath(), null, null);
-        
-      }};
+    return evt -> {
+      logger.debug(evt.toString());
+      ReceiversTreeModel.this.fireTreeNodesChanged(item, receiverNode.getPath(), null, null);
+
+    };
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java b/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
index 4f5779e..c109fe9 100644
--- a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
+++ b/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
@@ -247,61 +247,58 @@ public class VFSLogFilePatternReceiver extends LogFilePatternReceiver implements
     	  */
 
     	  //get a reference to the container
-    	  new Thread(new Runnable() {
-    		  public void run() {
-    	  synchronized(waitForContainerLock) {
-    		  while (container == null) {
-    			  try {
-    				  waitForContainerLock.wait(1000);
-    				  getLogger().debug("waiting for setContainer call");
-    			  } catch (InterruptedException ie){}
-    		  }
-    	  }
-
-    	  Frame containerFrame1;
-          if (container instanceof Frame) {
-              containerFrame1 = (Frame)container;
-          } else {
-              synchronized(waitForContainerLock) {
-                  //loop until the container has a frame
-                  while ((containerFrame1 = (Frame)SwingUtilities.getAncestorOfClass(Frame.class, container)) == null) {
-                      try {
-                          waitForContainerLock.wait(1000);
-                          getLogger().debug("waiting for container's frame to be available");
-                      } catch (InterruptedException ie) {}
-                  }
-              }
+    	  new Thread(() -> {
+      synchronized(waitForContainerLock) {
+          while (container == null) {
+              try {
+                  waitForContainerLock.wait(1000);
+                  getLogger().debug("waiting for setContainer call");
+              } catch (InterruptedException ie){}
           }
-            final Frame containerFrame = containerFrame1;
-    	  	  //create the dialog
-    	  	  SwingUtilities.invokeLater(new Runnable() {
-    	  		public void run() {
-    	  			  Frame owner = null;
-    	  			  if (container != null) {
-    	  				  owner = (Frame)SwingUtilities.getAncestorOfClass(Frame.class, containerFrame);
-    	  			  }
-    	  			  final UserNamePasswordDialog f = new UserNamePasswordDialog(owner);
-    	  			  f.pack();
-    	  			  Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
-    	  			  f.setLocation(d.width /2, d.height/2);
-    	  			  f.setVisible(true);
-    	  				if (null == f.getUserName() || null == f.getPassword()) {
-    	  					getLogger().info("Username and password not both provided, not using credentials");
-    	  				} else {
-    	  				    String oldURL = getFileURL();
-    	  					int index = oldURL.indexOf("://");
-    	  					String firstPart = oldURL.substring(0, index);
-    	  					String lastPart = oldURL.substring(index + "://".length());
-    	  					setFileURL(firstPart + "://" + f.getUserName()+ ":" + new String(f.getPassword()) + "@" + lastPart);
-
-    	  			        setHost(oldURL.substring(0, index + "://".length()));
-    	  		            setPath(oldURL.substring(index + "://".length()));
-    	  				}
-                        vfsReader = new VFSReader();
-    	  				new Thread(vfsReader).start();
-    	  			  }
-    	  		  });
-    		  }}).start();
+      }
+
+      Frame containerFrame1;
+if (container instanceof Frame) {
+containerFrame1 = (Frame)container;
+} else {
+synchronized(waitForContainerLock) {
+//loop until the container has a frame
+while ((containerFrame1 = (Frame)SwingUtilities.getAncestorOfClass(Frame.class, container)) == null) {
+try {
+waitForContainerLock.wait(1000);
+getLogger().debug("waiting for container's frame to be available");
+} catch (InterruptedException ie) {}
+}
+}
+}
+final Frame containerFrame = containerFrame1;
+            //create the dialog
+            SwingUtilities.invokeLater(() -> {
+                Frame owner = null;
+                if (container != null) {
+                    owner = (Frame) SwingUtilities.getAncestorOfClass(Frame.class, containerFrame);
+                }
+                final UserNamePasswordDialog f = new UserNamePasswordDialog(owner);
+                f.pack();
+                Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
+                f.setLocation(d.width / 2, d.height / 2);
+                f.setVisible(true);
+                if (null == f.getUserName() || null == f.getPassword()) {
+                    getLogger().info("Username and password not both provided, not using credentials");
+                } else {
+                    String oldURL = getFileURL();
+                    int index = oldURL.indexOf("://");
+                    String firstPart = oldURL.substring(0, index);
+                    String lastPart = oldURL.substring(index + "://".length());
+                    setFileURL(firstPart + "://" + f.getUserName() + ":" + new String(f.getPassword()) + "@" + lastPart);
+
+                    setHost(oldURL.substring(0, index + "://".length()));
+                    setPath(oldURL.substring(index + "://".length()));
+                }
+                vfsReader = new VFSReader();
+                new Thread(vfsReader).start();
+            });
+          }).start();
       } else {
         //starts with protocol:/  but not protocol://
         String oldURL = getFileURL();
@@ -542,14 +539,12 @@ public class VFSLogFilePatternReceiver extends LogFilePatternReceiver implements
 		  panel.add(submitButton, gc);
 
 		  getContentPane().add(panel);
-		  submitButton.addActionListener(new ActionListener(){
-			  public void actionPerformed(ActionEvent evt) {
-				  userName = userNameTextField.getText();
-				  password = passwordTextField.getPassword();
-				  getContentPane().setVisible(false);
-				  UserNamePasswordDialog.this.dispose();
-			  }
-		  });
+		  submitButton.addActionListener(evt -> {
+              userName = userNameTextField.getText();
+              password = passwordTextField.getPassword();
+              getContentPane().setVisible(false);
+              UserNamePasswordDialog.this.dispose();
+          });
 	  }
 	 
 	  public String getUserName() {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java b/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
index cf032e1..cb1160a 100644
--- a/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
+++ b/src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java
@@ -249,16 +249,14 @@ public class ZeroConfPlugin extends GUIPluginSkeleton {
             insertToLeftOfHelp(menuBar, connectToMenu);
             connectToMenu.add(nothingToConnectTo);
             
-            discoveredDevices.addTableModelListener(new TableModelListener (){
+            discoveredDevices.addTableModelListener(e -> {
+                if(discoveredDevices.getRowCount()==0) {
+                    connectToMenu.add(nothingToConnectTo,0);
+                }else if(discoveredDevices.getRowCount()>0) {
+                    connectToMenu.remove(nothingToConnectTo);
+                }
 
-                public void tableChanged(TableModelEvent e) {
-                    if(discoveredDevices.getRowCount()==0) {
-                        connectToMenu.add(nothingToConnectTo,0);
-                    }else if(discoveredDevices.getRowCount()>0) {
-                        connectToMenu.remove(nothingToConnectTo);
-                    }
-                    
-                }});
+            });
             
             nothingToConnectTo.setEnabled(false);
 
@@ -323,12 +321,9 @@ public class ZeroConfPlugin extends GUIPluginSkeleton {
         }
 //         if the device name is one of the autoconnect devices, then connect immediately
         if (preferenceModel != null && preferenceModel.getAutoConnectDevices() != null && preferenceModel.getAutoConnectDevices().contains(name)) {
-            new Thread(new Runnable() {
-
-                public void run() {
-                    LOG.info("Auto-connecting to " + name);
-                    connectTo(info);
-                }
+            new Thread(() -> {
+                LOG.info("Auto-connecting to " + name);
+                connectTo(info);
             }).start();
         }
     }
@@ -364,12 +359,8 @@ public class ZeroConfPlugin extends GUIPluginSkeleton {
              * background thread or not.. All it says is to NOT do it in the AWT
              * thread, so I'm thinking it probably should be a background thread
              */
-            Runnable runnable = new Runnable() {
-                public void run() {
-                    ZeroConfPlugin.this.jmDNS.requestServiceInfo(event
-                            .getType(), event.getName());
-                }
-            };
+            Runnable runnable = () -> ZeroConfPlugin.this.jmDNS.requestServiceInfo(event
+                    .getType(), event.getName());
             Thread thread = new Thread(runnable,
                     "ChainsawZeroConfRequestResolutionThread");
             thread.setPriority(Thread.MIN_PRIORITY);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java b/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
index 3fcb7c1..35d71c7 100644
--- a/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
+++ b/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
@@ -183,49 +183,47 @@ public class LogFileXMLReceiver extends Receiver {
      * Process the file
      */
     public void activateOptions() {
-        Runnable runnable = new Runnable() {
-            public void run() {
-                try {
-                    URL url = new URL(fileURL);
-                    host = url.getHost();
-                    if (host != null && host.equals("")) {
-                        host = FILE_KEY;
-                    }
-                    path = url.getPath();
-                } catch (MalformedURLException e1) {
-                    // TODO Auto-generated catch block
-                    e1.printStackTrace();
+        Runnable runnable = () -> {
+            try {
+                URL url = new URL(fileURL);
+                host = url.getHost();
+                if (host != null && host.equals("")) {
+                    host = FILE_KEY;
                 }
+                path = url.getPath();
+            } catch (MalformedURLException e1) {
+                // TODO Auto-generated catch block
+                e1.printStackTrace();
+            }
 
-                try {
-                    if (filterExpression != null) {
-                        expressionRule = ExpressionRule.getRule(filterExpression);
-                    }
-                } catch (Exception e) {
-                    getLogger().warn("Invalid filter expression: " + filterExpression, e);
+            try {
+                if (filterExpression != null) {
+                    expressionRule = ExpressionRule.getRule(filterExpression);
                 }
+            } catch (Exception e) {
+                getLogger().warn("Invalid filter expression: " + filterExpression, e);
+            }
 
-                Class c;
-                try {
-                    c = Class.forName(decoder);
-                    Object o = c.newInstance();
-                    if (o instanceof Decoder) {
-                        decoderInstance = (Decoder) o;
-                    }
-                } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
+            Class c;
+            try {
+                c = Class.forName(decoder);
+                Object o = c.newInstance();
+                if (o instanceof Decoder) {
+                    decoderInstance = (Decoder) o;
                 }
+            } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
 
-                try {
-                    reader = new InputStreamReader(new URL(getFileURL()).openStream());
-                    process(reader);
-                } catch (FileNotFoundException fnfe) {
-                    getLogger().info("file not available");
-                } catch (IOException ioe) {
-                    getLogger().warn("unable to load file", ioe);
-                    return;
-                }
+            try {
+                reader = new InputStreamReader(new URL(getFileURL()).openStream());
+                process(reader);
+            } catch (FileNotFoundException fnfe) {
+                getLogger().info("file not available");
+            } catch (IOException ioe) {
+                getLogger().warn("unable to load file", ioe);
+                return;
             }
         };
         if (useCurrentThread) {


[02/14] logging-chainsaw git commit: Use try-with-resources

Posted by ma...@apache.org.
Use try-with-resources


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/a088cd69
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/a088cd69
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/a088cd69

Branch: refs/heads/master
Commit: a088cd696e32b9f56db541d9211c821d69924b2a
Parents: 3d91bdd
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:01:47 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:01:47 2018 -0600

----------------------------------------------------------------------
 .../chainsaw/LogFilePatternLayoutBuilder.java   | 109 +++++++++----------
 .../java/org/apache/log4j/db/DBReceiverJob.java |  21 ++--
 .../org/apache/log4j/db/FullCycleDBTest.java    |  65 ++++++-----
 .../java/org/apache/log4j/util/Compare.java     |  26 ++---
 4 files changed, 102 insertions(+), 119 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a088cd69/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
index 8b5d039..344b2fd 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
@@ -224,69 +224,66 @@ public class LogFilePatternLayoutBuilder
   }
 
   private static Map getXMLFileAppenderConfiguration(File file) throws IOException, ParserConfigurationException, SAXException {
-    InputStream stream = file.toURI().toURL().openStream();
-    Map result = new HashMap();
-    try {
-      InputSource src = new InputSource(stream);
-      src.setSystemId(file.toURI().toURL().toString());
-      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-      DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+      Map result = new HashMap();
+      try (InputStream stream = file.toURI().toURL().openStream()) {
+          InputSource src = new InputSource(stream);
+          src.setSystemId(file.toURI().toURL().toString());
+          DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+          DocumentBuilder docBuilder = dbf.newDocumentBuilder();
 
-      docBuilder.setErrorHandler(new SAXErrorHandler());
-      docBuilder.setEntityResolver(new Log4jEntityResolver());
-      Document doc = docBuilder.parse(src);
-      NodeList appenders = doc.getElementsByTagName("appender");
-      for (int i = 0; i < appenders.getLength(); i++) {
-        Node appender = appenders.item(i);
-        NamedNodeMap appenderAttributes = appender.getAttributes();
+          docBuilder.setErrorHandler(new SAXErrorHandler());
+          docBuilder.setEntityResolver(new Log4jEntityResolver());
+          Document doc = docBuilder.parse(src);
+          NodeList appenders = doc.getElementsByTagName("appender");
+          for (int i = 0; i < appenders.getLength(); i++) {
+              Node appender = appenders.item(i);
+              NamedNodeMap appenderAttributes = appender.getAttributes();
 //        Class appenderClass = Class.forName(map.getNamedItem("class").getNodeValue());
-        Node appenderClass = appenderAttributes.getNamedItem("class");
-        if (appenderAttributes.getNamedItem("name") != null && appenderClass != null && appenderClass.getNodeValue() != null) {
-          //all log4j fileappenders end in fileappender..if a custom fileappender also ends in fileappender and uses the same dom nodes to be loaded,
-          //try to parse the nodes as well
-          if (appenderClass.getNodeValue().toLowerCase(Locale.ENGLISH).endsWith("fileappender")) {
-            String appenderName = appenderAttributes.getNamedItem("name").getNodeValue();
-            //subclass of FileAppender - add it
-            Map entry = new HashMap();
-            NodeList appenderChildren = appender.getChildNodes();
-            for (int j = 0; j < appenderChildren.getLength(); j++) {
-              Node appenderChild = appenderChildren.item(j);
-              if (appenderChild.getNodeName().equals("param") && appenderChild.hasAttributes()) {
-                Node fileNameNode = appenderChild.getAttributes().getNamedItem("name");
-                if (fileNameNode != null && fileNameNode.getNodeValue().equalsIgnoreCase("file")) {
-                  Node fileValueNode = appenderChild.getAttributes().getNamedItem("value");
-                  if (fileValueNode != null) {
-                    entry.put("file", fileValueNode.getNodeValue());
-                  }
-                }
-              }
-              if (appenderChild.getNodeName().equalsIgnoreCase("layout") && appenderChild.hasAttributes()) {
-                NamedNodeMap layoutAttributes = appenderChild.getAttributes();
-                Node layoutNode = layoutAttributes.getNamedItem("class");
-                if (layoutNode != null && layoutNode.getNodeValue() != null && layoutNode.getNodeValue().equalsIgnoreCase("org.apache.log4j.PatternLayout")) {
-                  NodeList layoutChildren = appenderChild.getChildNodes();
-                  for (int k = 0; k < layoutChildren.getLength(); k++) {
-                    Node layoutChild = layoutChildren.item(k);
-                    if (layoutChild.getNodeName().equals("param") && layoutChild.hasAttributes()) {
-                      Node layoutName = layoutChild.getAttributes().getNamedItem("name");
-                      if (layoutName != null && layoutName.getNodeValue() != null && layoutName.getNodeValue().equalsIgnoreCase("conversionpattern")) {
-                        Node conversionValue = layoutChild.getAttributes().getNamedItem("value");
-                        if (conversionValue != null) {
-                          entry.put("conversion", conversionValue.getNodeValue());
-                        }
+              Node appenderClass = appenderAttributes.getNamedItem("class");
+              if (appenderAttributes.getNamedItem("name") != null && appenderClass != null && appenderClass.getNodeValue() != null) {
+                  //all log4j fileappenders end in fileappender..if a custom fileappender also ends in fileappender and uses the same dom nodes to be loaded,
+                  //try to parse the nodes as well
+                  if (appenderClass.getNodeValue().toLowerCase(Locale.ENGLISH).endsWith("fileappender")) {
+                      String appenderName = appenderAttributes.getNamedItem("name").getNodeValue();
+                      //subclass of FileAppender - add it
+                      Map entry = new HashMap();
+                      NodeList appenderChildren = appender.getChildNodes();
+                      for (int j = 0; j < appenderChildren.getLength(); j++) {
+                          Node appenderChild = appenderChildren.item(j);
+                          if (appenderChild.getNodeName().equals("param") && appenderChild.hasAttributes()) {
+                              Node fileNameNode = appenderChild.getAttributes().getNamedItem("name");
+                              if (fileNameNode != null && fileNameNode.getNodeValue().equalsIgnoreCase("file")) {
+                                  Node fileValueNode = appenderChild.getAttributes().getNamedItem("value");
+                                  if (fileValueNode != null) {
+                                      entry.put("file", fileValueNode.getNodeValue());
+                                  }
+                              }
+                          }
+                          if (appenderChild.getNodeName().equalsIgnoreCase("layout") && appenderChild.hasAttributes()) {
+                              NamedNodeMap layoutAttributes = appenderChild.getAttributes();
+                              Node layoutNode = layoutAttributes.getNamedItem("class");
+                              if (layoutNode != null && layoutNode.getNodeValue() != null && layoutNode.getNodeValue().equalsIgnoreCase("org.apache.log4j.PatternLayout")) {
+                                  NodeList layoutChildren = appenderChild.getChildNodes();
+                                  for (int k = 0; k < layoutChildren.getLength(); k++) {
+                                      Node layoutChild = layoutChildren.item(k);
+                                      if (layoutChild.getNodeName().equals("param") && layoutChild.hasAttributes()) {
+                                          Node layoutName = layoutChild.getAttributes().getNamedItem("name");
+                                          if (layoutName != null && layoutName.getNodeValue() != null && layoutName.getNodeValue().equalsIgnoreCase("conversionpattern")) {
+                                              Node conversionValue = layoutChild.getAttributes().getNamedItem("value");
+                                              if (conversionValue != null) {
+                                                  entry.put("conversion", conversionValue.getNodeValue());
+                                              }
+                                          }
+                                      }
+                                  }
+                              }
+                          }
                       }
-                    }
+                      result.put(appenderName, entry);
                   }
-                }
               }
-            }
-            result.put(appenderName, entry);
           }
-        }
       }
-    } finally {
-      stream.close();
-    }
     MessageCenter.getInstance().getLogger().info("getXMLFileAppenderConfiguration for file: " + file + ", result: " + result);
     return result;
   }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a088cd69/src/main/java/org/apache/log4j/db/DBReceiverJob.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/db/DBReceiverJob.java b/src/main/java/org/apache/log4j/db/DBReceiverJob.java
index 1e29663..19d3fe0 100644
--- a/src/main/java/org/apache/log4j/db/DBReceiverJob.java
+++ b/src/main/java/org/apache/log4j/db/DBReceiverJob.java
@@ -174,19 +174,16 @@ class DBReceiverJob extends ComponentBase implements Job {
   void getProperties(Connection connection, long id, LoggingEvent event)
       throws SQLException {
 
-    PreparedStatement statement = connection.prepareStatement(sqlProperties);
-    try {
-      statement.setLong(1, id);
-      ResultSet rs = statement.executeQuery();
-
-      while (rs.next()) {
-        String key = rs.getString(1);
-        String value = rs.getString(2);
-        event.setProperty(key, value);
+      try (PreparedStatement statement = connection.prepareStatement(sqlProperties)) {
+          statement.setLong(1, id);
+          ResultSet rs = statement.executeQuery();
+
+          while (rs.next()) {
+              String key = rs.getString(1);
+              String value = rs.getString(2);
+              event.setProperty(key, value);
+          }
       }
-    } finally {
-      statement.close();
-    }
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a088cd69/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/log4j/db/FullCycleDBTest.java b/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
index b4e9223..6f4334e 100644
--- a/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
+++ b/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
@@ -85,40 +85,37 @@ public class FullCycleDBTest
     //      will throw exception if already defined.
     //
         Class.forName("org.hsqldb.jdbcDriver");
-        Connection connection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb");
-        try {
-            Statement s = connection.createStatement();
-            s.executeUpdate("CREATE TABLE logging_event " +
-              "( sequence_number   BIGINT NOT NULL, " +
-               " timestamp         BIGINT NOT NULL, " +
-               " rendered_message  LONGVARCHAR NOT NULL, " +
-               " logger_name       VARCHAR NOT NULL, " +
-               " level_string      VARCHAR NOT NULL, " +
-               " ndc               LONGVARCHAR, " +
-               " thread_name       VARCHAR, " +
-               " reference_flag    SMALLINT, " +
-               " caller_filename   VARCHAR, " +
-               " caller_class      VARCHAR, " +
-               " caller_method     VARCHAR, " +
-               " caller_line       CHAR(4), " +
-               " event_id          INT NOT NULL IDENTITY)");
-            s.executeUpdate("CREATE TABLE logging_event_property " +
-              "( event_id	      INT NOT NULL, " +
-               " mapped_key        VARCHAR(254) NOT NULL, " +
-               " mapped_value      LONGVARCHAR, " +
-               " PRIMARY KEY(event_id, mapped_key), " +
-               " FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
-            s.executeUpdate("CREATE TABLE logging_event_exception" +
-                    "  ( event_id         INT NOT NULL, " +
-                    "    i                SMALLINT NOT NULL," +
-                    "    trace_line       VARCHAR NOT NULL," +
-                    "    PRIMARY KEY(event_id, i)," +
-                    "    FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
-        } catch(SQLException ex) {
-            String s = ex.toString();
-        } finally {
-            connection.close();
-        }
+      try (Connection connection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb")) {
+          Statement s = connection.createStatement();
+          s.executeUpdate("CREATE TABLE logging_event " +
+                  "( sequence_number   BIGINT NOT NULL, " +
+                  " timestamp         BIGINT NOT NULL, " +
+                  " rendered_message  LONGVARCHAR NOT NULL, " +
+                  " logger_name       VARCHAR NOT NULL, " +
+                  " level_string      VARCHAR NOT NULL, " +
+                  " ndc               LONGVARCHAR, " +
+                  " thread_name       VARCHAR, " +
+                  " reference_flag    SMALLINT, " +
+                  " caller_filename   VARCHAR, " +
+                  " caller_class      VARCHAR, " +
+                  " caller_method     VARCHAR, " +
+                  " caller_line       CHAR(4), " +
+                  " event_id          INT NOT NULL IDENTITY)");
+          s.executeUpdate("CREATE TABLE logging_event_property " +
+                  "( event_id	      INT NOT NULL, " +
+                  " mapped_key        VARCHAR(254) NOT NULL, " +
+                  " mapped_value      LONGVARCHAR, " +
+                  " PRIMARY KEY(event_id, mapped_key), " +
+                  " FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
+          s.executeUpdate("CREATE TABLE logging_event_exception" +
+                  "  ( event_id         INT NOT NULL, " +
+                  "    i                SMALLINT NOT NULL," +
+                  "    trace_line       VARCHAR NOT NULL," +
+                  "    PRIMARY KEY(event_id, i)," +
+                  "    FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
+      } catch (SQLException ex) {
+          String s = ex.toString();
+      }
 
   }
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a088cd69/src/test/java/org/apache/log4j/util/Compare.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/log4j/util/Compare.java b/src/test/java/org/apache/log4j/util/Compare.java
index 9fe7ae6..b68ea31 100644
--- a/src/test/java/org/apache/log4j/util/Compare.java
+++ b/src/test/java/org/apache/log4j/util/Compare.java
@@ -56,15 +56,11 @@ public class Compare {
                                 final String file1,
                                 final String file2)
     throws IOException {
-    BufferedReader in1 = new BufferedReader(new FileReader(file1));
-    BufferedReader in2 = new BufferedReader(new InputStreamReader(
-            open(testClass, file2)));
-    try {
-      return compare(testClass, file1, file2, in1, in2);
-    } finally {
-      in1.close();
-      in2.close();
-    }
+      try (BufferedReader in1 = new BufferedReader(new FileReader(file1));
+           BufferedReader in2 = new BufferedReader(new InputStreamReader(
+              open(testClass, file2)))) {
+          return compare(testClass, file1, file2, in1, in2);
+      }
   }
     
  public static boolean compare(
@@ -153,14 +149,10 @@ public class Compare {
           throw new FileNotFoundException("Could not locate resource " + resourceName);
       }
 
-      BufferedReader in1 = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(actual))));
-      BufferedReader in2 = new BufferedReader(new InputStreamReader(new GZIPInputStream(resourceStream)));
-      try {
-        return gzCompare(testClass, actual, expected, in1, in2);
-      } finally {
-        in1.close();
-        in2.close();
-      }
+        try (BufferedReader in1 = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(actual))));
+             BufferedReader in2 = new BufferedReader(new InputStreamReader(new GZIPInputStream(resourceStream)))) {
+            return gzCompare(testClass, actual, expected, in1, in2);
+        }
     }
 
     public static boolean gzCompare(Class testClass, String file1, String file2, BufferedReader in1, BufferedReader in2) throws IOException {