Index: trunk/src/com/drew/metadata/jpeg/HuffmanTablesDescriptor.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/HuffmanTablesDescriptor.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/HuffmanTablesDescriptor.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,5 +28,5 @@
 
 /**
- * Provides a human-readable string version of the tag stored in a HuffmanTableDirectory.
+ * Provides a human-readable string version of the tag stored in a {@link HuffmanTablesDirectory}.
  *
  * <ul>
@@ -61,5 +61,5 @@
     {
         Integer value = _directory.getInteger(TAG_NUMBER_OF_TABLES);
-        if (value==null)
+        if (value == null)
             return null;
         return value + (value == 1 ? " Huffman table" : " Huffman tables");
Index: trunk/src/com/drew/metadata/jpeg/HuffmanTablesDirectory.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/HuffmanTablesDirectory.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/HuffmanTablesDirectory.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,4 +25,5 @@
 import java.util.HashMap;
 import java.util.List;
+
 import com.drew.lang.annotations.NotNull;
 import com.drew.metadata.Directory;
@@ -168,5 +169,5 @@
     /**
      * @return The {@link List} of {@link HuffmanTable}s in this
-     *         {@link Directory}.
+     * {@link Directory}.
      */
     @NotNull
@@ -227,22 +228,27 @@
      */
     public static class HuffmanTable {
-        private final int tableLength;
-        private final HuffmanTableClass tableClass;
-        private final int tableDestinationId;
-        private final byte[] lengthBytes;
-        private final byte[] valueBytes;
-
-        public HuffmanTable (
-            @NotNull HuffmanTableClass
-            tableClass,
+        private final int _tableLength;
+        private final HuffmanTableClass _tableClass;
+        private final int _tableDestinationId;
+        private final byte[] _lengthBytes;
+        private final byte[] _valueBytes;
+
+        @SuppressWarnings("ConstantConditions")
+        public HuffmanTable(
+            @NotNull HuffmanTableClass tableClass,
             int tableDestinationId,
-            @NotNull byte[] lBytes,
-            @NotNull byte[] vBytes
-        ) {
-            this.tableClass = tableClass;
-            this.tableDestinationId = tableDestinationId;
-            this.lengthBytes = lBytes;
-            this.valueBytes = vBytes;
-            this.tableLength = vBytes.length + 17;
+            @NotNull byte[] lengthBytes,
+            @NotNull byte[] valueBytes)
+        {
+            if (lengthBytes == null)
+                throw new IllegalArgumentException("lengthBytes cannot be null.");
+            if (valueBytes == null)
+                throw new IllegalArgumentException("valueBytes cannot be null.");
+
+            _tableClass = tableClass;
+            _tableDestinationId = tableDestinationId;
+            _lengthBytes = lengthBytes;
+            _valueBytes = valueBytes;
+            _tableLength = _valueBytes.length + 17;
         }
 
@@ -251,7 +257,6 @@
          */
         public int getTableLength() {
-            return tableLength;
-        }
-
+            return _tableLength;
+        }
 
         /**
@@ -259,7 +264,6 @@
          */
         public HuffmanTableClass getTableClass() {
-            return tableClass;
-        }
-
+            return _tableClass;
+        }
 
         /**
@@ -267,28 +271,24 @@
          */
         public int getTableDestinationId() {
-            return tableDestinationId;
-        }
-
+            return _tableDestinationId;
+        }
 
         /**
          * @return A byte array with the L values for this table.
          */
+        @NotNull
         public byte[] getLengthBytes() {
-            if (lengthBytes == null)
-                return null;
-            byte[] result = new byte[lengthBytes.length];
-            System.arraycopy(lengthBytes, 0, result, 0, lengthBytes.length);
+            byte[] result = new byte[_lengthBytes.length];
+            System.arraycopy(_lengthBytes, 0, result, 0, _lengthBytes.length);
             return result;
         }
 
-
         /**
          * @return A byte array with the V values for this table.
          */
+        @NotNull
         public byte[] getValueBytes() {
-            if (valueBytes == null)
-                return null;
-            byte[] result = new byte[valueBytes.length];
-            System.arraycopy(valueBytes, 0, result, 0, valueBytes.length);
+            byte[] result = new byte[_valueBytes.length];
+            System.arraycopy(_valueBytes, 0, result, 0, _valueBytes.length);
             return result;
         }
@@ -318,16 +318,16 @@
          */
         public boolean isTypical() {
-            if (tableClass == HuffmanTableClass.DC) {
+            if (_tableClass == HuffmanTableClass.DC) {
                 return
-                    Arrays.equals(lengthBytes, TYPICAL_LUMINANCE_DC_LENGTHS) &&
-                    Arrays.equals(valueBytes, TYPICAL_LUMINANCE_DC_VALUES) ||
-                    Arrays.equals(lengthBytes, TYPICAL_CHROMINANCE_DC_LENGTHS) &&
-                    Arrays.equals(valueBytes, TYPICAL_CHROMINANCE_DC_VALUES);
-            } else if (tableClass == HuffmanTableClass.AC) {
+                    Arrays.equals(_lengthBytes, TYPICAL_LUMINANCE_DC_LENGTHS) &&
+                    Arrays.equals(_valueBytes, TYPICAL_LUMINANCE_DC_VALUES) ||
+                    Arrays.equals(_lengthBytes, TYPICAL_CHROMINANCE_DC_LENGTHS) &&
+                    Arrays.equals(_valueBytes, TYPICAL_CHROMINANCE_DC_VALUES);
+            } else if (_tableClass == HuffmanTableClass.AC) {
                 return
-                    Arrays.equals(lengthBytes, TYPICAL_LUMINANCE_AC_LENGTHS) &&
-                    Arrays.equals(valueBytes, TYPICAL_LUMINANCE_AC_VALUES) ||
-                    Arrays.equals(lengthBytes, TYPICAL_CHROMINANCE_AC_LENGTHS) &&
-                    Arrays.equals(valueBytes, TYPICAL_CHROMINANCE_AC_VALUES);
+                    Arrays.equals(_lengthBytes, TYPICAL_LUMINANCE_AC_LENGTHS) &&
+                    Arrays.equals(_valueBytes, TYPICAL_LUMINANCE_AC_VALUES) ||
+                    Arrays.equals(_lengthBytes, TYPICAL_CHROMINANCE_AC_LENGTHS) &&
+                    Arrays.equals(_valueBytes, TYPICAL_CHROMINANCE_AC_VALUES);
             }
             return false;
@@ -351,7 +351,10 @@
             public static HuffmanTableClass typeOf(int value) {
                 switch (value) {
-                    case 0: return DC;
-                    case 1 : return AC;
-                    default: return UNKNOWN;
+                    case 0:
+                        return DC;
+                    case 1:
+                        return AC;
+                    default:
+                        return UNKNOWN;
                 }
             }
Index: trunk/src/com/drew/metadata/jpeg/JpegCommentDescriptor.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegCommentDescriptor.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegCommentDescriptor.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
Index: trunk/src/com/drew/metadata/jpeg/JpegCommentDirectory.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegCommentDirectory.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegCommentDirectory.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
Index: trunk/src/com/drew/metadata/jpeg/JpegCommentReader.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegCommentReader.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegCommentReader.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
Index: trunk/src/com/drew/metadata/jpeg/JpegComponent.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegComponent.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegComponent.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
Index: trunk/src/com/drew/metadata/jpeg/JpegDescriptor.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegDescriptor.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegDescriptor.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
Index: trunk/src/com/drew/metadata/jpeg/JpegDhtReader.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegDhtReader.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegDhtReader.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
Index: trunk/src/com/drew/metadata/jpeg/JpegDirectory.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegDirectory.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegDirectory.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
Index: trunk/src/com/drew/metadata/jpeg/JpegDnlReader.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegDnlReader.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegDnlReader.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
@@ -30,5 +30,4 @@
 
 import java.io.IOException;
-import java.util.Arrays;
 import java.util.Collections;
 
Index: trunk/src/com/drew/metadata/jpeg/JpegReader.java
===================================================================
--- trunk/src/com/drew/metadata/jpeg/JpegReader.java	(revision 13061)
+++ trunk/src/com/drew/metadata/jpeg/JpegReader.java	(revision 15217)
@@ -1,4 +1,4 @@
 /*
- * Copyright 2002-2017 Drew Noakes
+ * Copyright 2002-2019 Drew Noakes and contributors
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
