diff a/src/java.smartcardio/share/classes/javax/smartcardio/ATR.java b/src/java.smartcardio/share/classes/javax/smartcardio/ATR.java
--- a/src/java.smartcardio/share/classes/javax/smartcardio/ATR.java
+++ b/src/java.smartcardio/share/classes/javax/smartcardio/ATR.java
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2021, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this
@@ -24,10 +24,11 @@
  */
 
 package javax.smartcardio;
 
 import java.util.*;
+import java.io.IOException;
 
 /**
  * A Smart Card's answer-to-reset bytes. A Card's ATR object can be obtained
  * by calling {@linkplain Card#getATR}.
  * This class does not attempt to verify that the ATR encodes a semantically
@@ -44,10 +45,13 @@
  */
 public final class ATR implements java.io.Serializable {
 
     private static final long serialVersionUID = 6695383790847736493L;
 
+    /**
+     * The internal answer-to-reset byte array.
+     */
     private byte[] atr;
 
     private transient int startHistorical, nHistorical;
 
     /**
@@ -154,12 +158,19 @@
      */
     public int hashCode() {
         return Arrays.hashCode(atr);
     }
 
+    /**
+     * Restores the state of this object from the stream.
+     *
+     * @param  in the {@code ObjectInputStream} from which data is read
+     * @throws IOException if an I/O error occurs
+     * @throws ClassNotFoundException if a serialized class cannot be loaded
+     */
     private void readObject(java.io.ObjectInputStream in)
-            throws java.io.IOException, ClassNotFoundException {
+            throws IOException, ClassNotFoundException {
         atr = (byte[])in.readUnshared();
         parse();
     }
 
 }
