POM and swing fixes
diff --git a/.gitignore b/.gitignore
index a3d06f6..ed86588 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
 .project
 .idea/
 *.iml
+.DS_Store
diff --git a/pom.xml b/pom.xml
index b1ef541..2bb282e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,12 +17,6 @@
 -->
 <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>2</version>
-    <relativePath/>
-  </parent>
   <modelVersion>4.0.0</modelVersion>
   <groupId>log4j</groupId>
   <artifactId>apache-chainsaw</artifactId>
@@ -120,6 +114,7 @@
     <chainsaw.mainclass>org.apache.log4j.chainsaw.LogUI</chainsaw.mainclass>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
+    <dependency.locations.enabled>false</dependency.locations.enabled>
   </properties>
 
   <build>
@@ -142,6 +137,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.8.0</version>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -168,6 +164,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
+        <version>1.8</version>
         <executions>
           <execution>
             <phase>site</phase>
@@ -287,20 +284,6 @@
         </executions>
       </plugin>
       <plugin>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <configuration>
-          <additionalparam>-Xdoclint:none</additionalparam>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>jar</goal>
-              <goal>javadoc</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>build-helper-maven-plugin</artifactId>
         <executions>
@@ -362,10 +345,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-site-plugin</artifactId>
-        <configuration>
-          <locales>en</locales>
-          <templateFile>${basedir}/src/site/site.vm</templateFile>
-        </configuration>
+        <version>3.7.1</version>
       </plugin>
     </plugins>
   </build>
@@ -387,9 +367,9 @@
       <version>3.4.1</version>
     </dependency>
     <dependency>
-      <groupId>xstream</groupId>
+      <groupId>com.thoughtworks.xstream</groupId>
       <artifactId>xstream</artifactId>
-      <version>1.1.2</version>
+      <version>1.4.11.1</version>
     </dependency>
     <dependency>
       <groupId>commons-vfs</groupId>
@@ -435,7 +415,7 @@
     <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
-      <version>1.16.20</version>
+      <version>1.18.0</version>
       <scope>provided</scope>
     </dependency>
   </dependencies>
@@ -474,17 +454,19 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
+        <version>3.1.1</version>
         <configuration>
           <bottom><![CDATA[<p align="center">Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.<br />
           Apache Logging, Apache Log4j, Log4j, Apache Chainsaw, Chainsaw, Apache, the Apache feather logo, the Apache Logging project logo,
           and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p>]]></bottom>
-          <additionalparam>-Xdoclint:none</additionalparam>
           <encoding>UTF-8</encoding>
+          <doclint>none</doclint>
         </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-project-info-reports-plugin</artifactId>
+        <version>2.9</version>
         <reportSets>
           <reportSet>
             <reports>
@@ -520,18 +502,32 @@
       <build>
         <plugins>
           <plugin>
-            <groupId>sh.tak.appbundler</groupId>
-            <artifactId>appbundle-maven-plugin</artifactId>
-            <version>1.2.0</version>
+            <groupId>de.perdian.maven.plugins</groupId>
+            <artifactId>macosappbundler-maven-plugin</artifactId>
+            <version>1.9.0</version>
             <configuration>
-              <mainClass>${chainsaw.mainclass}</mainClass>
-              <bundleName>Chainsaw</bundleName>
-              <iconFile>logo.icns</iconFile>
-              <generateDiskImageFile>true</generateDiskImageFile>
-              <jvmOptions>
-                <jvmOption>-Xms128m</jvmOption>
-                <jvmOption>-Xmx512m</jvmOption>
-              </jvmOptions>
+              <plist>
+                <CFBundleIconFile>src/main/resources/logo.icns</CFBundleIconFile>
+                <CFBundleDisplayName>Chainsaw</CFBundleDisplayName>
+                <CFBundleDevelopmentRegion>English</CFBundleDevelopmentRegion>
+                <CFBundleURLTypes>
+                  <string>msa</string>
+                </CFBundleURLTypes>
+                <JVMMainClassName>${chainsaw.mainclass}</JVMMainClassName>
+                <JVMVersion>11+</JVMVersion>
+                <JVMOptions>
+                  <jvmOption>-Xms128m</jvmOption>
+                  <jvmOption>-Xmx512m</jvmOption>
+                </JVMOptions>
+              </plist>
+              <dmg>
+                <generate>true</generate>
+                <additionalResources>
+                  <additionalResource>
+                    <directory>src/bundle/macos/distribution</directory>
+                  </additionalResource>
+                </additionalResources>
+              </dmg>
             </configuration>
             <executions>
               <execution>
diff --git a/src/main/java/org/apache/log4j/chainsaw/JSortTable.java b/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
index 64ae803..840e0d0 100644
--- a/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
+++ b/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
@@ -19,9 +19,10 @@
 
 import org.apache.log4j.chainsaw.helper.SwingHelper;
 
-import javax.swing.*;
+import javax.swing.JTable;
 import javax.swing.table.JTableHeader;
 import javax.swing.table.TableColumnModel;
+import java.awt.Color;
 import java.awt.event.InputEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
@@ -60,6 +61,7 @@
 
     protected void initSortHeader() {
         JTableHeader header = getTableHeader();
+        header.setBackground(Color.WHITE);
         header.setDefaultRenderer(new SortHeaderRenderer());
         header.addMouseListener(this);
     }
diff --git a/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
index 3161792..8479cd5 100644
--- a/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
+++ b/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
@@ -32,6 +32,7 @@
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;
@@ -47,7 +48,7 @@
  */
 public class TableColorizingRenderer extends DefaultTableCellRenderer {
     private static final DateFormat DATE_FORMATTER = new SimpleDateFormat(Constants.SIMPLE_TIME_PATTERN);
-    private static final Map<String, Icon> iconMap = LevelIconFactory.getInstance().getLevelToIconMap();
+    private final Map<String, Icon> iconMap;
     private RuleColorizer colorizer;
     private boolean levelUseIcons = false;
     private boolean wrap = false;
@@ -95,6 +96,13 @@
         levelPanel.setLayout(new BoxLayout(levelPanel, BoxLayout.Y_AXIS));
         maxHeight = Toolkit.getDefaultToolkit().getScreenSize().height;
 
+        iconMap = new HashMap<>();
+        try {
+            iconMap.putAll(LevelIconFactory.getInstance().getLevelToIconMap());
+        } catch (IllegalStateException ise) {
+            //ignore
+        }
+
         if (UIManager.get("Table.selectionBackground") != null) {
             borderColor = (Color) UIManager.get("Table.selectionBackground");
         } else {
diff --git a/src/main/java/org/apache/log4j/chainsaw/icons/LevelIconFactory.java b/src/main/java/org/apache/log4j/chainsaw/icons/LevelIconFactory.java
index 1bac38f..3d7b76b 100644
--- a/src/main/java/org/apache/log4j/chainsaw/icons/LevelIconFactory.java
+++ b/src/main/java/org/apache/log4j/chainsaw/icons/LevelIconFactory.java
@@ -44,19 +44,20 @@
                     "icons/" + iconFileNames[i]);
             }
             if (resourceURL == null) {
-                throw new IllegalStateException("Was unable to locate an L&F icon using either the current L&F or the cross platform L&F.");
-            }
+                iconMap.put(iconLabels[i], ChainsawIcons.ICON_DEBUG);
+            } else {
 
-            final ImageIcon icon =
-                new ImageIcon(resourceURL);
-            double scalex = .5;
-            double scaley = .5;
-            final int newWidth = (int) (scalex * icon.getIconWidth());
-            final int newHeight = (int) (scaley * icon.getIconHeight());
-            Image iconImage =
-                icon.getImage().getScaledInstance(
-                    newWidth, newHeight, Image.SCALE_SMOOTH);
-            iconMap.put(iconLabels[i], new ImageIcon(iconImage));
+                final ImageIcon icon =
+                    new ImageIcon(resourceURL);
+                double scalex = .5;
+                double scaley = .5;
+                final int newWidth = (int) (scalex * icon.getIconWidth());
+                final int newHeight = (int) (scaley * icon.getIconHeight());
+                Image iconImage =
+                    icon.getImage().getScaledInstance(
+                        newWidth, newHeight, Image.SCALE_SMOOTH);
+                iconMap.put(iconLabels[i], new ImageIcon(iconImage));
+            }
         }
         //reuse DEBUG icon for TRACE level
         iconMap.put("TRACE", ChainsawIcons.ICON_DEBUG);