http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/Generator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/Generator.java 
b/src/main/java/org/apache/log4j/chainsaw/Generator.java
index e735e95..7ad7baa 100644
--- a/src/main/java/org/apache/log4j/chainsaw/Generator.java
+++ b/src/main/java/org/apache/log4j/chainsaw/Generator.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.
@@ -17,9 +17,6 @@
 
 package org.apache.log4j.chainsaw;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.apache.log4j.MDC;
@@ -30,103 +27,105 @@ import org.apache.log4j.spi.LocationInfo;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.ThrowableInformation;
 
+import java.util.HashMap;
+import java.util.Map;
+
 
 /**
  * Class designed to stress, and/or test the Chainsaw GUI by sending it
  * lots of Logging Events.
  *
  * @author Scott Deboy <sde...@apache.org>
- *
  */
 public class Generator extends Receiver implements Runnable {
-  private static final Logger logger1 =
-    Logger.getLogger("com.mycompany.mycomponentA");
-  private static final Logger logger2 =
-    Logger.getLogger("com.mycompany.mycomponentB");
-  private static final Logger logger3 =
-    Logger.getLogger("com.someothercompany.corecomponent");
-  private final String baseString_;
-  private Thread thread;
-  private boolean shutdown;
+    private static final Logger logger1 =
+        Logger.getLogger("com.mycompany.mycomponentA");
+    private static final Logger logger2 =
+        Logger.getLogger("com.mycompany.mycomponentB");
+    private static final Logger logger3 =
+        Logger.getLogger("com.someothercompany.corecomponent");
+    private final String baseString_;
+    private Thread thread;
+    private boolean shutdown;
 
-  public Generator(String name) {
-    setName(name);
-    baseString_ = name;
-  }
+    public Generator(String name) {
+        setName(name);
+        baseString_ = name;
+    }
 
-  private LoggingEvent createEvent(
-    Level level, Logger logger, String msg, Throwable t) {
-      ThrowableInformation ti = new ThrowableInformation(t);
-      Map<String, String> properties = new HashMap<>();
-      properties.put(Constants.APPLICATION_KEY, getName());
-      properties.put(Constants.HOSTNAME_KEY, "localhost");
-      LocationInfo li = new LocationInfo("file", logger.getClass().getName(), 
"method", "123");
-    LoggingEvent e = new LoggingEvent(
-        logger.getClass().getName(), logger, System.currentTimeMillis(), 
level, msg, "Thread=1", ti, "NDC value", li, properties);
-    return e;
-  }
+    private LoggingEvent createEvent(
+        Level level, Logger logger, String msg, Throwable t) {
+        ThrowableInformation ti = new ThrowableInformation(t);
+        Map<String, String> properties = new HashMap<>();
+        properties.put(Constants.APPLICATION_KEY, getName());
+        properties.put(Constants.HOSTNAME_KEY, "localhost");
+        LocationInfo li = new LocationInfo("file", 
logger.getClass().getName(), "method", "123");
+        LoggingEvent e = new LoggingEvent(
+            logger.getClass().getName(), logger, System.currentTimeMillis(), 
level, msg, "Thread=1", ti, "NDC value", li, properties);
+        return e;
+    }
 
-  public void run() {
-    NDC.push(baseString_);
-    MDC.put("some string", "some value" + baseString_);
+    public void run() {
+        NDC.push(baseString_);
+        MDC.put("some string", "some value" + baseString_);
 
-    int i = 0;
+        int i = 0;
 
-    while (!shutdown) {
-     doPost(createEvent(Level.TRACE, logger1, "tracemsg" + i++, null));
-     doPost(
-        createEvent(
-          Level.DEBUG, logger1,
-          "debugmsg " + i++
-          + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd asdf fasd fasd 
adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd asfd afsd fasd 
afsd",
-          null));
-     doPost(createEvent(Level.INFO, logger1, "infomsg " + i++, null));
-     doPost(createEvent(Level.WARN, logger1, "warnmsg " + i++, null));
-     doPost(createEvent(Level.ERROR, logger1, "errormsg " + i++, null));
-     doPost(createEvent(Level.FATAL, logger1, "fatalmsg " + i++, new 
Exception("someexception-" + baseString_)));
-     doPost(createEvent(Level.TRACE, logger2, "tracemsg" + i++, null));
-     doPost(
-        createEvent(
-          Level.DEBUG, logger2,
-          "debugmsg " + i++
-          + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd asdf fasd fasd 
adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd asfd afsd fasd 
afsd",
-          null));
-     doPost(createEvent(Level.INFO, logger2, "infomsg " + i++, null));
-     doPost(createEvent(Level.WARN, logger2, "warnmsg " + i++, null));
-     doPost(createEvent(Level.ERROR, logger2, "errormsg " + i++, null));
-     doPost(createEvent(Level.FATAL, logger2, "fatalmsg " + i++, new 
Exception("someexception-" + baseString_)));
-     doPost(createEvent(Level.TRACE, logger3, "tracemsg" + i++, null));
-     doPost(
-        createEvent(
-          Level.DEBUG, logger3,
-          "debugmsg " + i++
-          + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd asdf fasd fasd 
adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd asfd afsd fasd 
afsd",
-          null));
-     doPost(createEvent(Level.INFO, logger3, "infomsg " + i++, null));
-     doPost(createEvent(Level.WARN, logger3, "warnmsg " + i++, null));
-     doPost(createEvent(Level.ERROR, logger3, "errormsg " + i++, null));
-     doPost(createEvent(Level.FATAL, logger3, "fatalmsg " + i++, new 
Exception("someexception-" + baseString_)));
+        while (!shutdown) {
+            doPost(createEvent(Level.TRACE, logger1, "tracemsg" + i++, null));
+            doPost(
+                createEvent(
+                    Level.DEBUG, logger1,
+                    "debugmsg " + i++
+                        + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd 
asdf fasd fasd adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd 
asfd afsd fasd afsd",
+                    null));
+            doPost(createEvent(Level.INFO, logger1, "infomsg " + i++, null));
+            doPost(createEvent(Level.WARN, logger1, "warnmsg " + i++, null));
+            doPost(createEvent(Level.ERROR, logger1, "errormsg " + i++, null));
+            doPost(createEvent(Level.FATAL, logger1, "fatalmsg " + i++, new 
Exception("someexception-" + baseString_)));
+            doPost(createEvent(Level.TRACE, logger2, "tracemsg" + i++, null));
+            doPost(
+                createEvent(
+                    Level.DEBUG, logger2,
+                    "debugmsg " + i++
+                        + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd 
asdf fasd fasd adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd 
asfd afsd fasd afsd",
+                    null));
+            doPost(createEvent(Level.INFO, logger2, "infomsg " + i++, null));
+            doPost(createEvent(Level.WARN, logger2, "warnmsg " + i++, null));
+            doPost(createEvent(Level.ERROR, logger2, "errormsg " + i++, null));
+            doPost(createEvent(Level.FATAL, logger2, "fatalmsg " + i++, new 
Exception("someexception-" + baseString_)));
+            doPost(createEvent(Level.TRACE, logger3, "tracemsg" + i++, null));
+            doPost(
+                createEvent(
+                    Level.DEBUG, logger3,
+                    "debugmsg " + i++
+                        + " g dg sdfa sadf sdf safd fsda asfd sdfa sdaf asfd 
asdf fasd fasd adfs fasd adfs fads afds afds afsd afsd afsd afsd afsd fasd asfd 
asfd afsd fasd afsd",
+                    null));
+            doPost(createEvent(Level.INFO, logger3, "infomsg " + i++, null));
+            doPost(createEvent(Level.WARN, logger3, "warnmsg " + i++, null));
+            doPost(createEvent(Level.ERROR, logger3, "errormsg " + i++, null));
+            doPost(createEvent(Level.FATAL, logger3, "fatalmsg " + i++, new 
Exception("someexception-" + baseString_)));
 
-      try {
-        Thread.sleep(1000);
-      } catch (InterruptedException ie) {
-      }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException ie) {
+            }
+        }
     }
-  }
 
-  /* (non-Javadoc)
-   * @see org.apache.log4j.plugins.Plugin#shutdown()
-   */
-  public void shutdown() {
-    shutdown = true;
-  }
+    /* (non-Javadoc)
+     * @see org.apache.log4j.plugins.Plugin#shutdown()
+     */
+    public void shutdown() {
+        shutdown = true;
+    }
 
-  /* (non-Javadoc)
-   * @see org.apache.log4j.spi.OptionHandler#activateOptions()
-   */
-  public void activateOptions() {
-    thread = new Thread(this);
-    thread.setPriority(Thread.MIN_PRIORITY);
-    thread.start();
-  }
+    /* (non-Javadoc)
+     * @see org.apache.log4j.spi.OptionHandler#activateOptions()
+     */
+    public void activateOptions() {
+        thread = new Thread(this);
+        thread.setPriority(Thread.MIN_PRIORITY);
+        thread.start();
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/GeneratorBeanInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/GeneratorBeanInfo.java 
b/src/main/java/org/apache/log4j/chainsaw/GeneratorBeanInfo.java
index 0c3d788..fd9fd16 100644
--- a/src/main/java/org/apache/log4j/chainsaw/GeneratorBeanInfo.java
+++ b/src/main/java/org/apache/log4j/chainsaw/GeneratorBeanInfo.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.
@@ -25,20 +25,19 @@ import java.beans.SimpleBeanInfo;
  * Generator plugin
  *
  * @author Paul Smith &lt;psm...@apache.org&gt;
- *
  */
 public class GeneratorBeanInfo extends SimpleBeanInfo {
-  /* (non-Javadoc)
-   * @see java.beans.BeanInfo#getPropertyDescriptors()
-   */
-  public PropertyDescriptor[] getPropertyDescriptors() {
-    try {
-      return new PropertyDescriptor[] {
-        new PropertyDescriptor("name", Generator.class),
-      };
-    } catch (Exception e) {
-    }
+    /* (non-Javadoc)
+     * @see java.beans.BeanInfo#getPropertyDescriptors()
+     */
+    public PropertyDescriptor[] getPropertyDescriptors() {
+        try {
+            return new PropertyDescriptor[]{
+                new PropertyDescriptor("name", Generator.class),
+            };
+        } catch (Exception e) {
+        }
 
-    return null;
-  }
+        return null;
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/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 601fc3b..64ae803 100644
--- a/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
+++ b/src/main/java/org/apache/log4j/chainsaw/JSortTable.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.
@@ -17,15 +17,14 @@
 
 package org.apache.log4j.chainsaw;
 
-import java.awt.event.InputEvent;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
+import org.apache.log4j.chainsaw.helper.SwingHelper;
 
-import javax.swing.JTable;
+import javax.swing.*;
 import javax.swing.table.JTableHeader;
 import javax.swing.table.TableColumnModel;
-
-import org.apache.log4j.chainsaw.helper.SwingHelper;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
 
 
 /**
@@ -34,129 +33,128 @@ import org.apache.log4j.chainsaw.helper.SwingHelper;
  *
  * @author Claude Duguay
  * @author Scott Deboy &lt;sde...@apache.org&gt;
- * 
  */
 public class JSortTable extends JTable implements MouseListener {
-  protected int sortedColumnIndex = -1;
-  protected boolean sortedColumnAscending = true;
-  private String sortedColumn;
-  private int lastSelectedColumn = -1;
-
-  public JSortTable(SortTableModel model) {
-    super(model);
-    initSortHeader();
-  }
-
-  public void changeSelection(int rowIndex, int columnIndex, boolean toggle, 
boolean extend) {
-    //selection of the msg field causes rendering to flash...skip over it
-    int colToSelect = columnIndex;
-    //CHAINSAW columns are 1-based indexes
-    if (columnIndex + 1 == ChainsawColumns.INDEX_MESSAGE_COL_NAME) {
-        colToSelect = lastSelectedColumn < columnIndex ? columnIndex + 1 : 
columnIndex - 1;
-        super.changeSelection(rowIndex, colToSelect, toggle, extend);
-    } else {
-        super.changeSelection(rowIndex, columnIndex, toggle, extend);
+    protected int sortedColumnIndex = -1;
+    protected boolean sortedColumnAscending = true;
+    private String sortedColumn;
+    private int lastSelectedColumn = -1;
+
+    public JSortTable(SortTableModel model) {
+        super(model);
+        initSortHeader();
     }
-    lastSelectedColumn = colToSelect;
-  }
-
-  protected void initSortHeader() {
-    JTableHeader header = getTableHeader();
-    header.setDefaultRenderer(new SortHeaderRenderer());
-    header.addMouseListener(this);
-  }
-
-  public int getSortedColumnIndex() {
-    return sortedColumnIndex;
-  }
-
-  public void updateSortedColumn() {
-       if (sortedColumn != null) {
-               try {
-                       sortedColumnIndex = 
columnModel.getColumnIndex(sortedColumn);
-            getTableHeader().resizeAndRepaint();
-               } catch (IllegalArgumentException ie) {//nothing...column is 
not in the model
-                       setSortedColumnIndex(-1);
-               }
-         }
-  }
-  
-  public void setSortedColumnIndex(int index) {
-    sortedColumnIndex = index;
-    if (sortedColumnIndex > -1) {
-        SortTableModel model = (SortTableModel) getModel();
-        model.sortColumn(sortedColumnIndex, sortedColumnAscending);
+
+    public void changeSelection(int rowIndex, int columnIndex, boolean toggle, 
boolean extend) {
+        //selection of the msg field causes rendering to flash...skip over it
+        int colToSelect = columnIndex;
+        //CHAINSAW columns are 1-based indexes
+        if (columnIndex + 1 == ChainsawColumns.INDEX_MESSAGE_COL_NAME) {
+            colToSelect = lastSelectedColumn < columnIndex ? columnIndex + 1 : 
columnIndex - 1;
+            super.changeSelection(rowIndex, colToSelect, toggle, extend);
+        } else {
+            super.changeSelection(rowIndex, columnIndex, toggle, extend);
+        }
+        lastSelectedColumn = colToSelect;
+    }
+
+    protected void initSortHeader() {
+        JTableHeader header = getTableHeader();
+        header.setDefaultRenderer(new SortHeaderRenderer());
+        header.addMouseListener(this);
     }
-    getTableHeader().resizeAndRepaint();
-  }
-
-  //Allow synchronous updates if already on the EDT
-  private void scrollTo(final int row, final int col) {
-    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
+
+    public int getSortedColumnIndex() {
+        return sortedColumnIndex;
+    }
+
+    public void updateSortedColumn() {
+        if (sortedColumn != null) {
+            try {
+                sortedColumnIndex = columnModel.getColumnIndex(sortedColumn);
+                getTableHeader().resizeAndRepaint();
+            } catch (IllegalArgumentException ie) {//nothing...column is not 
in the model
+                setSortedColumnIndex(-1);
+            }
         }
-      }
-    });
-  }
-
-  public void scrollToRow(int row) {
-    scrollTo(row, columnAtPoint(getVisibleRect().getLocation()));
-  }
-
-  public boolean isSortedColumnAscending() {
-    return sortedColumnAscending;
-  }
-
-  public void mouseClicked(MouseEvent event) {
-       
-       if(event.getClickCount()<2 || event.isPopupTrigger()){
-               return;
-       }else if(event.getClickCount()>1 && ((event.getModifiers() & 
InputEvent.BUTTON2_MASK)>0)){
-               return;
-       }
-       
-    TableColumnModel colModel = getColumnModel();
-    int index = colModel.getColumnIndexAtX(event.getX());
-    int modelIndex = colModel.getColumn(index).getModelIndex();
-    SortTableModel model = (SortTableModel) getModel();
-
-    if (model.isSortable(modelIndex)) {
-      // toggle ascension, if already sorted
-      if (sortedColumnIndex == index) {
-        sortedColumnAscending = !sortedColumnAscending;
-      }
-
-      sortedColumnIndex = index;
-      sortedColumn = colModel.getColumn(index).getHeaderValue().toString();
-      model.sortColumn(modelIndex, sortedColumnAscending);
-      getTableHeader().resizeAndRepaint();
     }
-  }
 
-  public void mousePressed(MouseEvent event) {
-  }
+    public void setSortedColumnIndex(int index) {
+        sortedColumnIndex = index;
+        if (sortedColumnIndex > -1) {
+            SortTableModel model = (SortTableModel) getModel();
+            model.sortColumn(sortedColumnIndex, sortedColumnAscending);
+        }
+        getTableHeader().resizeAndRepaint();
+    }
 
-  public void mouseReleased(MouseEvent event) {
-  }
+    //Allow synchronous updates if already on the EDT
+    private void scrollTo(final int row, final int col) {
+        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
+                }
+            }
+        });
+    }
+
+    public void scrollToRow(int row) {
+        scrollTo(row, columnAtPoint(getVisibleRect().getLocation()));
+    }
 
-  public void mouseEntered(MouseEvent event) {
-  }
+    public boolean isSortedColumnAscending() {
+        return sortedColumnAscending;
+    }
+
+    public void mouseClicked(MouseEvent event) {
 
-  public void mouseExited(MouseEvent event) {
-  }
+        if (event.getClickCount() < 2 || event.isPopupTrigger()) {
+            return;
+        } else if (event.getClickCount() > 1 && ((event.getModifiers() & 
InputEvent.BUTTON2_MASK) > 0)) {
+            return;
+        }
+
+        TableColumnModel colModel = getColumnModel();
+        int index = colModel.getColumnIndexAtX(event.getX());
+        int modelIndex = colModel.getColumn(index).getModelIndex();
+        SortTableModel model = (SortTableModel) getModel();
+
+        if (model.isSortable(modelIndex)) {
+            // toggle ascension, if already sorted
+            if (sortedColumnIndex == index) {
+                sortedColumnAscending = !sortedColumnAscending;
+            }
+
+            sortedColumnIndex = index;
+            sortedColumn = 
colModel.getColumn(index).getHeaderValue().toString();
+            model.sortColumn(modelIndex, sortedColumnAscending);
+            getTableHeader().resizeAndRepaint();
+        }
+    }
+
+    public void mousePressed(MouseEvent event) {
+    }
+
+    public void mouseReleased(MouseEvent event) {
+    }
+
+    public void mouseEntered(MouseEvent event) {
+    }
+
+    public void mouseExited(MouseEvent event) {
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java 
b/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java
index 89ad68a..543c69b 100644
--- a/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java
+++ b/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java
@@ -16,24 +16,22 @@
  */
 package org.apache.log4j.chainsaw;
 
-import java.awt.Font;
-
-import javax.swing.UIManager;
+import javax.swing.*;
 import javax.swing.text.Document;
 import javax.swing.text.JTextComponent;
 import javax.swing.text.html.HTMLDocument;
+import java.awt.*;
 
 /**
  * Apply system font and size (normal size + 1) rule if the JEditorPane 
document contains html.
  */
-public class JTextComponentFormatter
-{
+public class JTextComponentFormatter {
     public static void applySystemFontAndSize(JTextComponent textComponent) {
         Document document = textComponent.getDocument();
         if (document instanceof HTMLDocument) {
-          Font font = UIManager.getFont("Label.font");
-          String bodyRule = "body { font-family: " + font.getFamily() + "; 
font-size: " + (font.getSize() + 1) + "pt; }";
-          ((HTMLDocument)document).getStyleSheet().addRule(bodyRule);
+            Font font = UIManager.getFont("Label.font");
+            String bodyRule = "body { font-family: " + font.getFamily() + "; 
font-size: " + (font.getSize() + 1) + "pt; }";
+            ((HTMLDocument) document).getStyleSheet().addRule(bodyRule);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/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 032c267..16c4fc5 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
@@ -16,42 +16,9 @@
  */
 package org.apache.log4j.chainsaw;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
 import org.apache.log4j.chainsaw.messages.MessageCenter;
 import org.apache.log4j.helpers.OptionConverter;
-import org.apache.log4j.pattern.ClassNamePatternConverter;
-import org.apache.log4j.pattern.DatePatternConverter;
-import org.apache.log4j.pattern.FileLocationPatternConverter;
-import org.apache.log4j.pattern.FullLocationPatternConverter;
-import org.apache.log4j.pattern.LevelPatternConverter;
-import org.apache.log4j.pattern.LineLocationPatternConverter;
-import org.apache.log4j.pattern.LineSeparatorPatternConverter;
-import org.apache.log4j.pattern.LiteralPatternConverter;
-import org.apache.log4j.pattern.LoggerPatternConverter;
-import org.apache.log4j.pattern.LoggingEventPatternConverter;
-import org.apache.log4j.pattern.MessagePatternConverter;
-import org.apache.log4j.pattern.MethodLocationPatternConverter;
-import org.apache.log4j.pattern.NDCPatternConverter;
-import org.apache.log4j.pattern.PatternParser;
-import org.apache.log4j.pattern.PropertiesPatternConverter;
-import org.apache.log4j.pattern.RelativeTimePatternConverter;
-import org.apache.log4j.pattern.SequenceNumberPatternConverter;
-import org.apache.log4j.pattern.ThreadPatternConverter;
+import org.apache.log4j.pattern.*;
 import org.apache.log4j.xml.Log4jEntityResolver;
 import org.apache.log4j.xml.SAXErrorHandler;
 import org.w3c.dom.Document;
@@ -61,8 +28,16 @@ import org.w3c.dom.NodeList;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
-public class LogFilePatternLayoutBuilder
-{
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+
+public class LogFilePatternLayoutBuilder {
     public static String getLogFormatFromPatternLayout(String patternLayout) {
         String input = OptionConverter.convertSpecialChars(patternLayout);
         List converters = new ArrayList();
@@ -74,31 +49,31 @@ public class LogFilePatternLayoutBuilder
     }
 
     public static String getTimeStampFormat(String patternLayout) {
-      int basicIndex = patternLayout.indexOf("%d");
-      if (basicIndex < 0) {
-        return null;
-      }
+        int basicIndex = patternLayout.indexOf("%d");
+        if (basicIndex < 0) {
+            return null;
+        }
 
-      int index = patternLayout.indexOf("%d{");
-      //%d - default
-      if (index < 0) {
-        return "yyyy-MM-dd HH:mm:ss,SSS";
-      }
+        int index = patternLayout.indexOf("%d{");
+        //%d - default
+        if (index < 0) {
+            return "yyyy-MM-dd HH:mm:ss,SSS";
+        }
 
-      int length = patternLayout.substring(index).indexOf("}");
-      String timestampFormat = patternLayout.substring(index + "%d{".length(), 
index + length);
-      if (timestampFormat.equals("ABSOLUTE")) {
-        return "HH:mm:ss,SSS";
-      }
-      if (timestampFormat.equals("ISO8601")) {
-        return "yyyy-MM-dd HH:mm:ss,SSS";
-      }
-      if (timestampFormat.equals("DATE")) {
-        return "dd MMM yyyy HH:mm:ss,SSS";
-      }
-      return timestampFormat;
+        int length = patternLayout.substring(index).indexOf("}");
+        String timestampFormat = patternLayout.substring(index + 
"%d{".length(), index + length);
+        if (timestampFormat.equals("ABSOLUTE")) {
+            return "HH:mm:ss,SSS";
+        }
+        if (timestampFormat.equals("ISO8601")) {
+            return "yyyy-MM-dd HH:mm:ss,SSS";
+        }
+        if (timestampFormat.equals("DATE")) {
+            return "dd MMM yyyy HH:mm:ss,SSS";
+        }
+        return timestampFormat;
     }
-  
+
     private static String getFormatFromConverters(List converters) {
         StringBuffer buffer = new StringBuffer();
         for (Object converter1 : converters) {
@@ -148,59 +123,59 @@ public class LogFilePatternLayoutBuilder
         return buffer.toString();
     }
 
-  public static Map<String, Map<String, String>> getAppenderConfiguration(File 
file) {
-    try {
-      return getXMLFileAppenderConfiguration(file);
-    } catch (IOException | SAXException | ParserConfigurationException e) {
-      //ignore
-    }
-      try {
-      return getPropertiesFileAppenderConfiguration(file);
-    } catch (Exception e) {
-      //ignore
+    public static Map<String, Map<String, String>> 
getAppenderConfiguration(File file) {
+        try {
+            return getXMLFileAppenderConfiguration(file);
+        } catch (IOException | SAXException | ParserConfigurationException e) {
+            //ignore
+        }
+        try {
+            return getPropertiesFileAppenderConfiguration(file);
+        } catch (Exception e) {
+            //ignore
+        }
+        //don't return null
+        return new HashMap<>();
     }
-    //don't return null
-    return new HashMap<>();
-  }
 
-  public static Map<String, Map<String, String>> 
getPropertiesFileAppenderConfiguration(File propertyFile) throws IOException {
-    Map<String, Map<String, String>> result = new HashMap<>();
-    String appenderPrefix = "log4j.appender";
-    Properties props = new Properties();
-    FileInputStream inputStream = null;
-    try {
-      inputStream = new FileInputStream(propertyFile);
-      props.load(inputStream);
-      Enumeration propertyNames = props.propertyNames();
-      Map<String, String> appenders = new HashMap<>();
-      while (propertyNames.hasMoreElements()) {
-        String propertyName = propertyNames.nextElement().toString();
-        if (propertyName.startsWith(appenderPrefix)) {
-          String value = propertyName.substring(appenderPrefix.length() + 1);
-          if (!value.contains(".")) {
-            //no sub-values - this entry is the appender name & class
-            appenders.put(value, props.getProperty(propertyName).trim());
-          }
-        }
-      }
-        for (Object o : appenders.entrySet()) {
-            Map.Entry appenderEntry = (Map.Entry) o;
-            String appenderName = appenderEntry.getKey().toString();
-            String appenderClassName = appenderEntry.getValue().toString();
-            if 
(appenderClassName.toLowerCase(Locale.ENGLISH).endsWith("fileappender")) {
-                String layout = props.getProperty(appenderPrefix + "." + 
appenderName + ".layout");
-                if (layout != null && 
layout.trim().equals("org.apache.log4j.PatternLayout")) {
-                    String conversion = props.getProperty(appenderPrefix + "." 
+ appenderName + ".layout.ConversionPattern");
-                    String file = props.getProperty(appenderPrefix + "." + 
appenderName + ".File");
-                    if (conversion != null && file != null) {
-                        Map<String, String> entry = new HashMap<>();
-                        entry.put("file", file.trim());
-                        entry.put("conversion", conversion.trim());
-                        result.put(appenderName, entry);
+    public static Map<String, Map<String, String>> 
getPropertiesFileAppenderConfiguration(File propertyFile) throws IOException {
+        Map<String, Map<String, String>> result = new HashMap<>();
+        String appenderPrefix = "log4j.appender";
+        Properties props = new Properties();
+        FileInputStream inputStream = null;
+        try {
+            inputStream = new FileInputStream(propertyFile);
+            props.load(inputStream);
+            Enumeration propertyNames = props.propertyNames();
+            Map<String, String> appenders = new HashMap<>();
+            while (propertyNames.hasMoreElements()) {
+                String propertyName = propertyNames.nextElement().toString();
+                if (propertyName.startsWith(appenderPrefix)) {
+                    String value = 
propertyName.substring(appenderPrefix.length() + 1);
+                    if (!value.contains(".")) {
+                        //no sub-values - this entry is the appender name & 
class
+                        appenders.put(value, 
props.getProperty(propertyName).trim());
+                    }
+                }
+            }
+            for (Object o : appenders.entrySet()) {
+                Map.Entry appenderEntry = (Map.Entry) o;
+                String appenderName = appenderEntry.getKey().toString();
+                String appenderClassName = appenderEntry.getValue().toString();
+                if 
(appenderClassName.toLowerCase(Locale.ENGLISH).endsWith("fileappender")) {
+                    String layout = props.getProperty(appenderPrefix + "." + 
appenderName + ".layout");
+                    if (layout != null && 
layout.trim().equals("org.apache.log4j.PatternLayout")) {
+                        String conversion = props.getProperty(appenderPrefix + 
"." + appenderName + ".layout.ConversionPattern");
+                        String file = props.getProperty(appenderPrefix + "." + 
appenderName + ".File");
+                        if (conversion != null && file != null) {
+                            Map<String, String> entry = new HashMap<>();
+                            entry.put("file", file.trim());
+                            entry.put("conversion", conversion.trim());
+                            result.put(appenderName, entry);
+                        }
                     }
                 }
             }
-        }
           /*
           example:
           log4j.appender.R=org.apache.log4j.RollingFileAppender
@@ -210,80 +185,78 @@ public class LogFilePatternLayoutBuilder
           log4j.appender.R.layout=org.apache.log4j.PatternLayout
           log4j.appender.R.layout.ConversionPattern=%d - %p %t %c - %m%n
            */
+        } catch (IOException ioe) {
+        } finally {
+            if (inputStream != null) {
+                inputStream.close();
+            }
+        }
+        //don't return null
+        return result;
     }
-    catch (IOException ioe) {
-    }
-    finally {
-      if (inputStream != null) {
-        inputStream.close();
-      }
-    }
-    //don't return null
-    return result;
-  }
 
-  private static Map<String, Map<String, String>> 
getXMLFileAppenderConfiguration(File file) throws IOException, 
ParserConfigurationException, SAXException {
-      Map<String, Map<String, String>> 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();
+    private static Map<String, Map<String, String>> 
getXMLFileAppenderConfiguration(File file) throws IOException, 
ParserConfigurationException, SAXException {
+        Map<String, Map<String, String>> 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<String, String> 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);
-                  }
-              }
-          }
-      }
-    
MessageCenter.getInstance().getLogger().info("getXMLFileAppenderConfiguration 
for file: " + file + ", result: " + result);
-    return result;
-  }
+                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<String, String> 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);
+                    }
+                }
+            }
+        }
+        
MessageCenter.getInstance().getLogger().info("getXMLFileAppenderConfiguration 
for file: " + file + ", result: " + result);
+        return result;
+    }
 }

Reply via email to