diff --git a/src/main/java/org/apache/sling/rewriter/impl/components/TraxErrorHandler.java b/src/main/java/org/apache/sling/rewriter/impl/components/TraxErrorHandler.java
index 85cca00..e4ece41 100644
--- a/src/main/java/org/apache/sling/rewriter/impl/components/TraxErrorHandler.java
+++ b/src/main/java/org/apache/sling/rewriter/impl/components/TraxErrorHandler.java
@@ -38,6 +38,7 @@
         this.logger = logger;
     }
 
+    @Override
     public void warning(TransformerException exception)
     throws TransformerException {
         final String message = getMessage(exception);
@@ -51,6 +52,7 @@
         warnings.append("\n");
     }
 
+    @Override
     public void error(TransformerException exception)
     throws TransformerException {
         final String message = getMessage(exception);
@@ -64,6 +66,7 @@
         warnings.append("\n");
     }
 
+    @Override
     public void fatalError(TransformerException exception)
     throws TransformerException {
         final String message = getMessage(exception);
@@ -83,13 +86,13 @@
         }
     }
 
-    private String getMessage(TransformerException exception) {
-        SourceLocator locator = exception.getLocator();
+    private String getMessage(final TransformerException exception) {
+        final SourceLocator locator = exception.getLocator();
         if (locator != null) {
-            String id = (!locator.getPublicId().equals(locator.getPublicId()))
+            final String id = locator.getPublicId() != null
                     ? locator.getPublicId()
                     : (null != locator.getSystemId())
-                    ? locator.getSystemId() : "SystemId Unknown";
+                       ? locator.getSystemId() : "SystemId Unknown";
             return "File " + id
                    + "; Line " + locator.getLineNumber()
                    + "; Column " + locator.getColumnNumber()
