8003476: Cleanup warnings in com.sun.jmx.snmp code
authordfuchs
Wed, 28 Nov 2012 15:14:47 +0100
changeset 14677 1607f4cfc506
parent 14675 17224d0282f1
child 14678 8cf05595ebb7
8003476: Cleanup warnings in com.sun.jmx.snmp code Reviewed-by: alanb, smarks
jdk/src/share/classes/com/sun/jmx/snmp/EnumRowStatus.java
jdk/src/share/classes/com/sun/jmx/snmp/Enumerated.java
jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/AclImpl.java
jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAclBlock.java
jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformBlock.java
jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapBlock.java
jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JJTParserState.java
jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java
jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/SnmpAcl.java
jdk/src/share/classes/com/sun/jmx/snmp/InetAddressAcl.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpErrorHandlerAgent.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpGenericObjectServer.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpIndex.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMib.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibAgent.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibOid.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequest.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequestImpl.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibSubRequest.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibTable.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpRequestTree.java
jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardObjectServer.java
jdk/src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServer.java
jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServer.java
jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServerMBean.java
jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpMibTree.java
jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java
jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java
jdk/src/share/classes/com/sun/jmx/snmp/defaults/SnmpProperties.java
jdk/src/share/classes/com/sun/jmx/snmp/tasks/ThreadService.java
jdk/src/share/classes/sun/management/snmp/AdaptorBootstrap.java
--- a/jdk/src/share/classes/com/sun/jmx/snmp/EnumRowStatus.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/EnumRowStatus.java	Wed Nov 28 15:14:47 2012 +0100
@@ -28,10 +28,6 @@
 import java.io.Serializable;
 import java.util.Hashtable;
 
-import com.sun.jmx.snmp.SnmpValue;
-import com.sun.jmx.snmp.SnmpInt;
-
-import com.sun.jmx.snmp.Enumerated;
 
 /**
  * This class is an internal class which is used to represent RowStatus
@@ -263,30 +259,30 @@
 
     // Documented in Enumerated
     //
-    protected Hashtable getIntTable() {
+    @Override
+    protected Hashtable<Integer, String> getIntTable() {
         return EnumRowStatus.getRSIntTable();
     }
 
     // Documented in Enumerated
     //
-    protected Hashtable getStringTable() {
+    @Override
+    protected Hashtable<String, Integer> getStringTable() {
         return  EnumRowStatus.getRSStringTable();
     }
 
-    static final Hashtable getRSIntTable() {
+    static Hashtable<Integer, String> getRSIntTable() {
         return intTable ;
     }
 
-    static final Hashtable getRSStringTable() {
+    static Hashtable<String, Integer> getRSStringTable() {
         return stringTable ;
     }
 
     // Initialize the mapping tables.
     //
-    final static Hashtable<Integer, String> intTable =
-            new Hashtable<Integer, String>();
-    final static Hashtable<String, Integer> stringTable =
-            new Hashtable<String, Integer>();
+    final static Hashtable<Integer, String> intTable = new Hashtable<>();
+    final static Hashtable<String, Integer> stringTable = new Hashtable<>();
     static  {
         intTable.put(new Integer(0), "unspecified");
         intTable.put(new Integer(3), "notReady");
--- a/jdk/src/share/classes/com/sun/jmx/snmp/Enumerated.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/Enumerated.java	Wed Nov 28 15:14:47 2012 +0100
@@ -54,9 +54,9 @@
     * @exception IllegalArgumentException One of the arguments passed to the method is illegal or inappropriate.
    */
   public Enumerated() throws IllegalArgumentException {
-    Enumeration e =getIntTable().keys() ;
+    Enumeration<Integer> e =getIntTable().keys();
     if (e.hasMoreElements()) {
-      value = ((Integer)e.nextElement()).intValue() ;
+      value = e.nextElement().intValue() ;
     }
     else {
       throw new IllegalArgumentException() ;
@@ -100,7 +100,7 @@
    *  to the method is illegal or inappropriate.
    */
   public Enumerated(String valueString) throws IllegalArgumentException {
-    Integer index = (Integer)getStringTable().get(valueString) ;
+    Integer index = getStringTable().get(valueString) ;
     if (index == null) {
       throw new IllegalArgumentException() ;
     }
@@ -127,7 +127,7 @@
    * @return An enumeration of Integer instances
    */
 
-  public Enumeration valueIndexes() {
+  public Enumeration<Integer> valueIndexes() {
     return getIntTable().keys() ;
   }
 
@@ -138,7 +138,7 @@
    * @return An enumeration of String instances
    */
 
-  public Enumeration valueStrings() {
+  public Enumeration<String> valueStrings() {
     return getStringTable().keys() ;
   }
 
@@ -153,6 +153,7 @@
    *
    * @return True if this and obj are the same; false otherwise
    */
+  @Override
   public boolean equals(Object obj) {
 
     return ((obj != null) &&
@@ -166,6 +167,7 @@
    *
    * @return A hash code value for this object.
    */
+  @Override
   public int hashCode() {
     String hashString = getClass().getName() + String.valueOf(value) ;
     return hashString.hashCode() ;
@@ -177,9 +179,9 @@
    *
    * @return The string for for this object.
    */
-
+  @Override
   public String toString() {
-    return (String)getIntTable().get(new Integer(value)) ;
+    return getIntTable().get(new Integer(value)) ;
   }
 
 
@@ -193,7 +195,7 @@
    * @return An hashtable for read-only purpose
    */
 
-  protected abstract Hashtable getIntTable() ;
+  protected abstract Hashtable<Integer,String>  getIntTable() ;
 
 
 
@@ -207,12 +209,12 @@
    * @return An hashtable for read-only purpose
    */
 
-  protected abstract Hashtable getStringTable() ;
+  protected abstract Hashtable<String,Integer> getStringTable() ;
 
 
   /**
    * This variable keeps the integer form of the enumerated.
-   * The string form is retreived using getIntTable().
+   * The string form is retrieved using getIntTable().
    */
   protected int value ;
 
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/AclImpl.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/AclImpl.java	Wed Nov 28 15:14:47 2012 +0100
@@ -66,7 +66,7 @@
    */
   public AclImpl (PrincipalImpl owner, String name) {
         super(owner);
-        entryList = new Vector<AclEntry>();
+        entryList = new Vector<>();
         aclName = name;
   }
 
@@ -81,6 +81,7 @@
    *            of this ACL.
    * @see java.security.Principal
    */
+  @Override
   public void setName(Principal caller, String name)
         throws NotOwnerException {
           if (!isOwner(caller))
@@ -93,6 +94,7 @@
    *
    * @return the name of this ACL.
    */
+  @Override
   public String getName(){
         return aclName;
   }
@@ -113,6 +115,7 @@
    *       this ACL.
    * @see java.security.Principal
    */
+  @Override
   public boolean addEntry(Principal caller, AclEntry entry)
         throws NotOwnerException {
           if (!isOwner(caller))
@@ -144,6 +147,7 @@
    * @see java.security.Principal
    * @see java.security.acl.AclEntry
    */
+  @Override
   public boolean removeEntry(Principal caller, AclEntry entry)
         throws NotOwnerException {
           if (!isOwner(caller))
@@ -185,8 +189,9 @@
    *     is allowed.
    * @see java.security.Principal
    */
+  @Override
   public Enumeration<Permission> getPermissions(Principal user){
-        Vector<Permission> empty = new Vector<Permission>();
+        Vector<Permission> empty = new Vector<>();
         for (Enumeration<AclEntry> e = entryList.elements();e.hasMoreElements();){
           AclEntry ent = e.nextElement();
           if (ent.getPrincipal().equals(user))
@@ -201,6 +206,7 @@
    *
    * @return an enumeration of the entries in this ACL.
    */
+  @Override
   public Enumeration<AclEntry> entries(){
         return entryList.elements();
   }
@@ -221,10 +227,11 @@
    * @see java.security.Principal
    * @see java.security.Permission
    */
+  @Override
   public boolean checkPermission(Principal user,
                                  java.security.acl.Permission perm) {
-        for (Enumeration e = entryList.elements();e.hasMoreElements();){
-          AclEntry ent = (AclEntry) e.nextElement();
+        for (Enumeration<AclEntry> e = entryList.elements();e.hasMoreElements();){
+          AclEntry ent = e.nextElement();
           if (ent.getPrincipal().equals(user))
                 if (ent.checkPermission(perm)) return true;
         }
@@ -250,7 +257,7 @@
    */
   public boolean checkPermission(Principal user, String community,
                                  java.security.acl.Permission perm) {
-        for (Enumeration e = entryList.elements();e.hasMoreElements();){
+        for (Enumeration<AclEntry> e = entryList.elements();e.hasMoreElements();){
           AclEntryImpl ent = (AclEntryImpl) e.nextElement();
           if (ent.getPrincipal().equals(user))
                 if (ent.checkPermission(perm) && ent.checkCommunity(community)) return true;
@@ -269,7 +276,7 @@
    * @see java.security.Permission
    */
   public boolean checkCommunity(String community) {
-        for (Enumeration e = entryList.elements();e.hasMoreElements();){
+        for (Enumeration<AclEntry> e = entryList.elements();e.hasMoreElements();){
           AclEntryImpl ent = (AclEntryImpl) e.nextElement();
           if (ent.checkCommunity(community)) return true;
         }
@@ -281,6 +288,7 @@
    *
    * @return a string representation of the ACL contents.
    */
+  @Override
   public String toString(){
         return ("AclImpl: "+ getName());
   }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAclBlock.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAclBlock.java	Wed Nov 28 15:14:47 2012 +0100
@@ -28,7 +28,9 @@
 
 package com.sun.jmx.snmp.IPAcl;
 
+import java.net.InetAddress;
 import java.util.Hashtable;
+import java.util.Vector;
 
 class JDMAclBlock extends SimpleNode {
   JDMAclBlock(int id) {
@@ -51,11 +53,13 @@
    * Do no need to go through this part of the tree for
    * building TrapEntry.
    */
-   public void buildTrapEntries(Hashtable dest) {}
+   @Override
+   public void buildTrapEntries(Hashtable<InetAddress, Vector<String>> dest) {}
 
   /**
    * Do no need to go through this part of the tree for
    * building InformEntry.
    */
-   public void buildInformEntries(Hashtable dest) {}
+    @Override
+   public void buildInformEntries(Hashtable<InetAddress, Vector<String>> dest) {}
 }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformBlock.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformBlock.java	Wed Nov 28 15:14:47 2012 +0100
@@ -27,7 +27,9 @@
 
 package com.sun.jmx.snmp.IPAcl;
 
+import java.net.InetAddress;
 import java.util.Hashtable;
+import java.util.Vector;
 
 class JDMInformBlock extends SimpleNode {
     JDMInformBlock(int id) {
@@ -50,11 +52,13 @@
      * Do no need to go through this part of the tree for
      * building AclEntry.
      */
+    @Override
     public void buildAclEntries(PrincipalImpl owner, AclImpl acl) {}
 
     /**
      * Do no need to go through this part of the tree for
      * building TrapEntry.
      */
-    public void buildTrapEntries(Hashtable dest) {}
+    @Override
+    public void buildTrapEntries(Hashtable<InetAddress, Vector<String>> dest) {}
 }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapBlock.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapBlock.java	Wed Nov 28 15:14:47 2012 +0100
@@ -28,7 +28,9 @@
 
 package com.sun.jmx.snmp.IPAcl;
 
+import java.net.InetAddress;
 import java.util.Hashtable;
+import java.util.Vector;
 
 class JDMTrapBlock extends SimpleNode {
   JDMTrapBlock(int id) {
@@ -51,11 +53,13 @@
    * Do no need to go through this part of the tree for
    * building AclEntry.
    */
+   @Override
    public void buildAclEntries(PrincipalImpl owner, AclImpl acl) {}
 
   /**
    * Do no need to go through this part of the tree for
    * building InformEntry.
    */
-   public void buildInformEntries(Hashtable dest) {}
+   @Override
+   public void buildInformEntries(Hashtable<InetAddress, Vector<String>> dest) {}
 }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JJTParserState.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/JJTParserState.java	Wed Nov 28 15:14:47 2012 +0100
@@ -27,18 +27,17 @@
 
 package com.sun.jmx.snmp.IPAcl;
 
-@SuppressWarnings("unchecked")  // generated code, not worth fixing
 class JJTParserState {
-  private java.util.Stack nodes;
-  private java.util.Stack marks;
+  private java.util.Stack<Node> nodes;
+  private java.util.Stack<Integer> marks;
 
   private int sp;               // number of nodes on stack
   private int mk;               // current mark
   private boolean node_created;
 
   JJTParserState() {
-    nodes = new java.util.Stack();
-    marks = new java.util.Stack();
+    nodes = new java.util.Stack<>();
+    marks = new java.util.Stack<>();
     sp = 0;
     mk = 0;
   }
@@ -62,7 +61,7 @@
   /* Returns the root node of the AST.  It only makes sense to call
      this after a successful parse. */
   Node rootNode() {
-    return (Node)nodes.elementAt(0);
+    return nodes.elementAt(0);
   }
 
   /* Pushes a node on to the stack. */
@@ -75,14 +74,14 @@
      stack.  */
   Node popNode() {
     if (--sp < mk) {
-      mk = ((Integer)marks.pop()).intValue();
+      mk = marks.pop().intValue();
     }
-    return (Node)nodes.pop();
+    return nodes.pop();
   }
 
   /* Returns the node currently on the top of the stack. */
   Node peekNode() {
-    return (Node)nodes.peek();
+    return nodes.peek();
   }
 
   /* Returns the number of children on the stack in the current node
@@ -96,7 +95,7 @@
     while (sp > mk) {
       popNode();
     }
-    mk = ((Integer)marks.pop()).intValue();
+    mk = marks.pop().intValue();
   }
 
 
@@ -112,7 +111,7 @@
      made the children of the definite node.  Then the definite node
      is pushed on to the stack. */
   void closeNodeScope(Node n, int num) {
-    mk = ((Integer)marks.pop()).intValue();
+    mk = marks.pop().intValue();
     while (num-- > 0) {
       Node c = popNode();
       c.jjtSetParent(n);
@@ -132,7 +131,7 @@
   void closeNodeScope(Node n, boolean condition) {
     if (condition) {
       int a = nodeArity();
-      mk = ((Integer)marks.pop()).intValue();
+      mk = marks.pop().intValue();
       while (a-- > 0) {
         Node c = popNode();
         c.jjtSetParent(n);
@@ -142,7 +141,7 @@
       pushNode(n);
       node_created = true;
     } else {
-      mk = ((Integer)marks.pop()).intValue();
+      mk = marks.pop().intValue();
       node_created = false;
     }
   }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java	Wed Nov 28 15:14:47 2012 +0100
@@ -1168,7 +1168,7 @@
       return (jj_ntk = jj_nt.kind);
   }
 
-  private java.util.Vector jj_expentries = new java.util.Vector();
+  private java.util.Vector<int[]> jj_expentries = new java.util.Vector<>();
   private int[] jj_expentry;
   private int jj_kind = -1;
   private int[] jj_lasttokens = new int[100];
@@ -1184,8 +1184,8 @@
         jj_expentry[i] = jj_lasttokens[i];
       }
       boolean exists = false;
-      for (java.util.Enumeration enumv = jj_expentries.elements(); enumv.hasMoreElements();) {
-        int[] oldentry = (int[])(enumv.nextElement());
+      for (java.util.Enumeration<int[]> enumv = jj_expentries.elements(); enumv.hasMoreElements();) {
+        int[] oldentry = enumv.nextElement();
         if (oldentry.length == jj_expentry.length) {
           exists = true;
           for (int i = 0; i < jj_expentry.length; i++) {
@@ -1236,7 +1236,7 @@
     jj_add_error_token(0, 0);
     int[][] exptokseq = new int[jj_expentries.size()][];
     for (int i = 0; i < jj_expentries.size(); i++) {
-      exptokseq[i] = (int[])jj_expentries.elementAt(i);
+      exptokseq[i] = jj_expentries.elementAt(i);
     }
     return new ParseException(token, exptokseq, tokenImage);
   }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/SnmpAcl.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/SnmpAcl.java	Wed Nov 28 15:14:47 2012 +0100
@@ -126,7 +126,7 @@
      *
      * @return An enumeration of the entries in this ACL.
      */
-    public Enumeration entries() {
+    public Enumeration<AclEntry> entries() {
         return acl.entries();
     }
 
@@ -137,11 +137,11 @@
     public Enumeration<String> communities() {
         HashSet<String> set = new HashSet<String>();
         Vector<String> res = new Vector<String>();
-        for (Enumeration e = acl.entries() ; e.hasMoreElements() ;) {
+        for (Enumeration<AclEntry> e = acl.entries() ; e.hasMoreElements() ;) {
             AclEntryImpl entry = (AclEntryImpl) e.nextElement();
-            for (Enumeration cs = entry.communities();
+            for (Enumeration<String> cs = entry.communities();
                  cs.hasMoreElements() ;) {
-                set.add((String) cs.nextElement());
+                set.add(cs.nextElement());
             }
         }
         String[] objs = set.toArray(new String[0]);
@@ -316,7 +316,7 @@
      *
      * @return An enumeration of the trap destinations (enumeration of <CODE>InetAddress</CODE>).
      */
-    public Enumeration getTrapDestinations() {
+    public Enumeration<InetAddress> getTrapDestinations() {
         return trapDestList.keys();
     }
 
@@ -327,16 +327,16 @@
      *
      * @return An enumeration of trap communities for a given host (enumeration of <CODE>String</CODE>).
      */
-    public Enumeration getTrapCommunities(InetAddress i) {
-        Vector list = null;
-        if ((list = (Vector)trapDestList.get(i)) != null ) {
+    public Enumeration<String> getTrapCommunities(InetAddress i) {
+        Vector<String> list = null;
+        if ((list = trapDestList.get(i)) != null ) {
             if (SNMP_LOGGER.isLoggable(Level.FINER)) {
                 SNMP_LOGGER.logp(Level.FINER, SnmpAcl.class.getName(),
                     "getTrapCommunities", "["+i.toString()+"] is in list");
             }
             return list.elements();
         } else {
-            list = new Vector();
+            list = new Vector<>();
             if (SNMP_LOGGER.isLoggable(Level.FINER)) {
                 SNMP_LOGGER.logp(Level.FINER, SnmpAcl.class.getName(),
                     "getTrapCommunities", "["+i.toString()+"] is not in list");
@@ -350,7 +350,7 @@
      *
      * @return An enumeration of the inform destinations (enumeration of <CODE>InetAddress</CODE>).
      */
-    public Enumeration getInformDestinations() {
+    public Enumeration<InetAddress> getInformDestinations() {
         return informDestList.keys();
     }
 
@@ -361,16 +361,16 @@
      *
      * @return An enumeration of inform communities for a given host (enumeration of <CODE>String</CODE>).
      */
-    public Enumeration getInformCommunities(InetAddress i) {
-        Vector list = null;
-        if ((list = (Vector)informDestList.get(i)) != null ) {
+    public Enumeration<String> getInformCommunities(InetAddress i) {
+        Vector<String> list = null;
+        if ((list = informDestList.get(i)) != null ) {
             if (SNMP_LOGGER.isLoggable(Level.FINER)) {
                 SNMP_LOGGER.logp(Level.FINER, SnmpAcl.class.getName(),
                     "getInformCommunities", "["+i.toString()+"] is in list");
             }
             return list.elements();
         } else {
-            list = new Vector();
+            list = new Vector<>();
             if (SNMP_LOGGER.isLoggable(Level.FINER)) {
                 SNMP_LOGGER.logp(Level.FINER, SnmpAcl.class.getName(),
                     "getInformCommunities", "["+i.toString()+"] is not in list");
@@ -426,15 +426,15 @@
                 throw new IllegalArgumentException(err.getMessage());
             }
 
-            for(Enumeration e = acl.entries(); e.hasMoreElements();) {
+            for(Enumeration<AclEntry> e = acl.entries(); e.hasMoreElements();) {
                 AclEntryImpl aa = (AclEntryImpl) e.nextElement();
                 if (SNMP_LOGGER.isLoggable(Level.FINER)) {
                     SNMP_LOGGER.logp(Level.FINER, SnmpAcl.class.getName(),
                             "readAuthorizedListFile",
                             "===> " + aa.getPrincipal().toString());
                 }
-                for (Enumeration eee = aa.permissions();eee.hasMoreElements();) {
-                    java.security.acl.Permission perm = (java.security.acl.Permission)eee.nextElement();
+                for (Enumeration<java.security.acl.Permission> eee = aa.permissions();eee.hasMoreElements();) {
+                    java.security.acl.Permission perm = eee.nextElement();
                     if (SNMP_LOGGER.isLoggable(Level.FINER)) {
                         SNMP_LOGGER.logp(Level.FINER, SnmpAcl.class.getName(),
                                 "readAuthorizedListFile", "perm = " + perm);
--- a/jdk/src/share/classes/com/sun/jmx/snmp/InetAddressAcl.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/InetAddressAcl.java	Wed Nov 28 15:14:47 2012 +0100
@@ -99,7 +99,7 @@
      *
      * @return An enumeration of the trap destinations (enumeration of <CODE>InetAddress</CODE>).
      */
-    public Enumeration getTrapDestinations();
+    public Enumeration<InetAddress> getTrapDestinations();
 
     /**
      * Returns an enumeration of trap communities for a given host.
@@ -108,14 +108,14 @@
      *
      * @return An enumeration of trap communities for a given host (enumeration of <CODE>String</CODE>).
      */
-    public Enumeration getTrapCommunities(InetAddress address);
+    public Enumeration<String> getTrapCommunities(InetAddress address);
 
     /**
      * Returns an enumeration of inform destinations.
      *
      * @return An enumeration of the inform destinations (enumeration of <CODE>InetAddress</CODE>).
      */
-    public Enumeration getInformDestinations();
+    public Enumeration<InetAddress> getInformDestinations();
 
     /**
      * Returns an enumeration of inform communities for a given host.
@@ -124,5 +124,5 @@
      *
      * @return An enumeration of inform communities for a given host (enumeration of <CODE>String</CODE>).
      */
-    public Enumeration getInformCommunities(InetAddress address);
+    public Enumeration<String> getInformCommunities(InetAddress address);
 }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpErrorHandlerAgent.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpErrorHandlerAgent.java	Wed Nov 28 15:14:47 2012 +0100
@@ -59,6 +59,7 @@
      * @exception IllegalAccessException The MIB cannot be initialized.
      */
 
+    @Override
     public void init() throws IllegalAccessException {
     }
 
@@ -74,6 +75,7 @@
      * @exception java.lang.Exception
      */
 
+    @Override
     public ObjectName preRegister(MBeanServer server, ObjectName name)
         throws Exception {
         return name;
@@ -87,6 +89,7 @@
      * @return The returned oid is null.
      */
 
+    @Override
     public long[] getRootOid() {
         return null;
     }
@@ -99,6 +102,7 @@
      * @exception SnmpStatusException An error occured during the operation.
      */
 
+    @Override
     public void get(SnmpMibRequest inRequest) throws SnmpStatusException {
 
         SNMP_ADAPTOR_LOGGER.logp(Level.FINEST,
@@ -108,9 +112,9 @@
         if(inRequest.getVersion() == SnmpDefinitions.snmpVersionOne)
             throw new SnmpStatusException(SnmpStatusException.noSuchName);
 
-        Enumeration l = inRequest.getElements();
+        Enumeration<SnmpVarBind> l = inRequest.getElements();
         while(l.hasMoreElements()) {
-            SnmpVarBind varbind = (SnmpVarBind) l.nextElement();
+            SnmpVarBind varbind = l.nextElement();
             varbind.setNoSuchObject();
         }
     }
@@ -128,6 +132,7 @@
      *    cannot be performed.
      */
 
+    @Override
     public void check(SnmpMibRequest inRequest) throws SnmpStatusException {
 
         SNMP_ADAPTOR_LOGGER.logp(Level.FINEST,
@@ -145,6 +150,7 @@
      * @exception SnmpStatusException An error occured during the operation.
      */
 
+    @Override
     public void set(SnmpMibRequest inRequest) throws SnmpStatusException {
 
         SNMP_ADAPTOR_LOGGER.logp(Level.FINEST,
@@ -162,6 +168,7 @@
      * @exception SnmpStatusException An error occured during the operation.
      */
 
+    @Override
     public void getNext(SnmpMibRequest inRequest) throws SnmpStatusException {
 
         SNMP_ADAPTOR_LOGGER.logp(Level.FINEST,
@@ -171,9 +178,9 @@
         if(inRequest.getVersion() == SnmpDefinitions.snmpVersionOne)
             throw new SnmpStatusException(SnmpStatusException.noSuchName);
 
-        Enumeration l = inRequest.getElements();
+        Enumeration<SnmpVarBind> l = inRequest.getElements();
         while(l.hasMoreElements()) {
-            SnmpVarBind varbind = (SnmpVarBind) l.nextElement();
+            SnmpVarBind varbind = l.nextElement();
             varbind.setEndOfMibView();
         }
     }
@@ -186,6 +193,7 @@
      * @exception SnmpStatusException An error occured during the operation.
      */
 
+    @Override
     public void getBulk(SnmpMibRequest inRequest, int nonRepeat, int maxRepeat)
         throws SnmpStatusException {
 
@@ -196,9 +204,9 @@
         if(inRequest.getVersion() == SnmpDefinitions.snmpVersionOne)
             throw new SnmpStatusException(SnmpDefinitions.snmpRspGenErr, 0);
 
-        Enumeration l = inRequest.getElements();
+        Enumeration<SnmpVarBind> l = inRequest.getElements();
         while(l.hasMoreElements()) {
-            SnmpVarBind varbind = (SnmpVarBind) l.nextElement();
+            SnmpVarBind varbind = l.nextElement();
             varbind.setEndOfMibView();
         }
     }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpGenericObjectServer.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpGenericObjectServer.java	Wed Nov 28 15:14:47 2012 +0100
@@ -28,7 +28,6 @@
 
 // java imports
 //
-import java.util.Vector;
 import java.util.Enumeration;
 import java.util.Iterator;
 
@@ -149,8 +148,8 @@
         final long[]        idList   = new long[size];
         int   i = 0;
 
-        for (Enumeration e=req.getElements(); e.hasMoreElements();) {
-            final SnmpVarBind var= (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e=req.getElements(); e.hasMoreElements();) {
+            final SnmpVarBind var= e.nextElement();
             try {
                 final long id = var.oid.getOidArc(depth);
                 nameList[i]   = meta.getAttributeName(id);
@@ -190,7 +189,7 @@
         }
 
 
-        final Iterator it = result.iterator();
+        final Iterator<?> it = result.iterator();
 
         for (int j=0; j < i; j++) {
             if (!it.hasNext()) {
@@ -312,8 +311,8 @@
         final long[]        idList   = new long[size];
         int   i = 0;
 
-        for (Enumeration e=req.getElements(); e.hasMoreElements();) {
-            final SnmpVarBind var= (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e=req.getElements(); e.hasMoreElements();) {
+            final SnmpVarBind var= e.nextElement();
             try {
                 final long id = var.oid.getOidArc(depth);
                 final String attname = meta.getAttributeName(id);
@@ -330,7 +329,7 @@
             }
         }
 
-        AttributeList result = null;
+        AttributeList result;
         int errorCode = SnmpStatusException.noAccess;
 
         try {
@@ -345,7 +344,7 @@
             result = new AttributeList();
         }
 
-        final Iterator it = result.iterator();
+        final Iterator<?> it = result.iterator();
 
         for (int j=0; j < i; j++) {
             if (!it.hasNext()) {
@@ -469,8 +468,8 @@
 
         final Object data = req.getUserData();
 
-        for (Enumeration e=req.getElements(); e.hasMoreElements();) {
-            final SnmpVarBind var= (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e=req.getElements(); e.hasMoreElements();) {
+            final SnmpVarBind var= e.nextElement();
             try {
                 final long id = var.oid.getOidArc(depth);
                 // call meta.check() here, and meta.check will call check()
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpIndex.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpIndex.java	Wed Nov 28 15:14:47 2012 +0100
@@ -164,11 +164,12 @@
      *
      * @return A string representation of the index.
      */
+    @Override
     public String toString() {
-        StringBuffer msg= new StringBuffer();
-        for(Enumeration e= oids.elements(); e.hasMoreElements(); ) {
-            SnmpOid val= (SnmpOid) e.nextElement();
-            msg.append( "//" + val.toString());
+        final StringBuilder msg= new StringBuilder();
+        for(Enumeration<SnmpOid> e= oids.elements(); e.hasMoreElements(); ) {
+            SnmpOid val= e.nextElement();
+            msg.append("//").append( val.toString());
         }
         return msg.toString();
     }
@@ -180,7 +181,7 @@
      * The list of OIDs.
      * @serial
      */
-    private Vector<SnmpOid> oids = new Vector<SnmpOid>();
+    private Vector<SnmpOid> oids = new Vector<>();
 
     /**
      * The number of elements in the index.
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMib.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMib.java	Wed Nov 28 15:14:47 2012 +0100
@@ -42,10 +42,6 @@
 import com.sun.jmx.snmp.SnmpVarBind;
 import com.sun.jmx.snmp.SnmpDefinitions;
 import com.sun.jmx.snmp.SnmpStatusException;
-import com.sun.jmx.snmp.SnmpEngine;
-import com.sun.jmx.snmp.SnmpUnknownModelException;
-import com.sun.jmx.snmp.internal.SnmpAccessControlModel;
-import com.sun.jmx.snmp.internal.SnmpEngineImpl;
 
 /**
  * Abstract class for representing an SNMP MIB.
@@ -241,6 +237,7 @@
     // Implements the method defined in SnmpMibAgent. See SnmpMibAgent
     // for java-doc
     //
+    @Override
     public void get(SnmpMibRequest req) throws SnmpStatusException {
 
         // Builds the request tree: creation is not allowed, operation
@@ -259,8 +256,8 @@
 
         // For each sub-request stored in the request-tree, invoke the
         // get() method.
-        for (Enumeration eh=handlers.getHandlers();eh.hasMoreElements();) {
-            h = (SnmpRequestTree.Handler) eh.nextElement();
+        for (Enumeration<SnmpRequestTree.Handler> eh=handlers.getHandlers();eh.hasMoreElements();) {
+            h = eh.nextElement();
 
             // Gets the Meta node. It can be either a Group Meta or a
             // Table Meta.
@@ -270,11 +267,11 @@
             // Gets the depth of the Meta node in the OID tree
             final int depth = handlers.getOidDepth(h);
 
-            for (Enumeration rqs=handlers.getSubRequests(h);
+            for (Enumeration<SnmpMibSubRequest> rqs=handlers.getSubRequests(h);
                  rqs.hasMoreElements();) {
 
                 // Invoke the get() operation.
-                meta.get((SnmpMibSubRequest)rqs.nextElement(),depth);
+                meta.get(rqs.nextElement(),depth);
             }
         }
     }
@@ -286,6 +283,7 @@
     // Implements the method defined in SnmpMibAgent. See SnmpMibAgent
     // for java-doc
     //
+    @Override
     public void set(SnmpMibRequest req) throws SnmpStatusException {
 
         SnmpRequestTree handlers = null;
@@ -307,8 +305,8 @@
         handlers.switchCreationFlag(false);
         handlers.setPduType(reqType);
 
-        SnmpRequestTree.Handler h = null;
-        SnmpMibNode meta = null;
+        SnmpRequestTree.Handler h;
+        SnmpMibNode meta;
 
         if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
             SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpMib.class.getName(),
@@ -317,8 +315,8 @@
 
         // For each sub-request stored in the request-tree, invoke the
         // get() method.
-        for (Enumeration eh=handlers.getHandlers();eh.hasMoreElements();) {
-            h = (SnmpRequestTree.Handler) eh.nextElement();
+        for (Enumeration<SnmpRequestTree.Handler> eh=handlers.getHandlers();eh.hasMoreElements();) {
+            h = eh.nextElement();
 
             // Gets the Meta node. It can be either a Group Meta or a
             // Table Meta.
@@ -328,11 +326,11 @@
             // Gets the depth of the Meta node in the OID tree
             final int depth = handlers.getOidDepth(h);
 
-            for (Enumeration rqs=handlers.getSubRequests(h);
+            for (Enumeration<SnmpMibSubRequest> rqs=handlers.getSubRequests(h);
                  rqs.hasMoreElements();) {
 
                 // Invoke the set() operation
-                meta.set((SnmpMibSubRequest)rqs.nextElement(),depth);
+                meta.set(rqs.nextElement(),depth);
             }
         }
     }
@@ -346,6 +344,7 @@
     // Implements the method defined in SnmpMibAgent. See SnmpMibAgent
     // for java-doc
     //
+    @Override
     public void check(SnmpMibRequest req) throws SnmpStatusException {
 
         final int reqType = SnmpDefinitions.pduWalkRequest;
@@ -353,8 +352,8 @@
         // is atomic.
         SnmpRequestTree handlers = getHandlers(req,true,true,reqType);
 
-        SnmpRequestTree.Handler h = null;
-        SnmpMibNode meta = null;
+        SnmpRequestTree.Handler h;
+        SnmpMibNode meta;
 
         if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
             SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpMib.class.getName(),
@@ -363,8 +362,8 @@
 
         // For each sub-request stored in the request-tree, invoke the
         // check() method.
-        for (Enumeration eh=handlers.getHandlers();eh.hasMoreElements();) {
-            h = (SnmpRequestTree.Handler) eh.nextElement();
+        for (Enumeration<SnmpRequestTree.Handler> eh=handlers.getHandlers();eh.hasMoreElements();) {
+            h = eh.nextElement();
 
             // Gets the Meta node. It can be either a Group Meta or a
             // Table Meta.
@@ -374,11 +373,11 @@
             // Gets the depth of the Meta node in the OID tree
             final int depth = handlers.getOidDepth(h);
 
-            for (Enumeration rqs=handlers.getSubRequests(h);
+            for (Enumeration<SnmpMibSubRequest> rqs=handlers.getSubRequests(h);
                  rqs.hasMoreElements();) {
 
                 // Invoke the check() operation
-                meta.check((SnmpMibSubRequest)rqs.nextElement(),depth);
+                meta.check(rqs.nextElement(),depth);
             }
         }
 
@@ -398,13 +397,14 @@
     // Implements the method defined in SnmpMibAgent. See SnmpMibAgent
     // for java-doc
     //
+    @Override
     public void getNext(SnmpMibRequest req) throws SnmpStatusException {
         // Build the request tree for the operation
         // The subrequest stored in the request tree are valid GET requests
         SnmpRequestTree handlers = getGetNextHandlers(req);
 
-        SnmpRequestTree.Handler h = null;
-        SnmpMibNode meta = null;
+        SnmpRequestTree.Handler h;
+        SnmpMibNode meta;
 
         if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
             SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpMib.class.getName(),
@@ -412,8 +412,8 @@
         }
 
         // Now invoke get() for each subrequest of the request tree.
-        for (Enumeration eh=handlers.getHandlers();eh.hasMoreElements();) {
-            h = (SnmpRequestTree.Handler) eh.nextElement();
+        for (Enumeration<SnmpRequestTree.Handler> eh=handlers.getHandlers();eh.hasMoreElements();) {
+            h = eh.nextElement();
 
             // Gets the Meta node. It can be either a Group Meta or a
             // Table Meta.
@@ -423,11 +423,11 @@
             // Gets the depth of the Meta node in the OID tree
             int depth = handlers.getOidDepth(h);
 
-            for (Enumeration rqs=handlers.getSubRequests(h);
+            for (Enumeration<SnmpMibSubRequest> rqs=handlers.getSubRequests(h);
                  rqs.hasMoreElements();) {
 
                 // Invoke the get() operation
-                meta.get((SnmpMibSubRequest)rqs.nextElement(),depth);
+                meta.get(rqs.nextElement(),depth);
             }
         }
     }
@@ -442,6 +442,7 @@
     // Implements the method defined in SnmpMibAgent. See SnmpMibAgent
     // for java-doc
     //
+    @Override
     public void getBulk(SnmpMibRequest req, int nonRepeat, int maxRepeat)
         throws SnmpStatusException {
 
@@ -456,10 +457,11 @@
      *
      * @return The root object identifier.
      */
+    @Override
     public long[] getRootOid() {
 
         if( rootOid == null) {
-            Vector<Integer> list= new Vector<Integer>(10);
+            Vector<Integer> list= new Vector<>(10);
 
             // Ask the tree to do the job !
             //
@@ -507,13 +509,13 @@
             new SnmpRequestTree(req,createflag,type);
 
         int index=0;
-        SnmpVarBind var = null;
+        SnmpVarBind var;
         final int ver= req.getVersion();
 
         // For each varbind in the list finds its handling node.
-        for (Enumeration e= req.getElements(); e.hasMoreElements(); index++) {
+        for (Enumeration<SnmpVarBind> e= req.getElements(); e.hasMoreElements(); index++) {
 
-            var= (SnmpVarBind) e.nextElement();
+            var= e.nextElement();
 
             try {
                 // Find the handling node for this varbind.
@@ -657,10 +659,10 @@
         // request into a valid GET request, replacing the OIDs in the
         // original GET-NEXT request with the OID of the first leaf that
         // follows.
-        for (Enumeration e= req.getElements(); e.hasMoreElements(); index++) {
+        for (Enumeration<SnmpVarBind> e= req.getElements(); e.hasMoreElements(); index++) {
 
-            var = (SnmpVarBind) e.nextElement();
-            SnmpOid result = null;
+            var = e.nextElement();
+            SnmpOid result;
             try {
                 // Find the node handling the OID that follows the varbind
                 // OID. `result' contains this next leaf OID.
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibAgent.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibAgent.java	Wed Nov 28 15:14:47 2012 +0100
@@ -33,14 +33,12 @@
 import java.io.Serializable;
 import java.util.Vector;
 import java.util.Enumeration;
-import java.util.Set;
 
 // jmx imports
 //
 import javax.management.MBeanServer;
 import javax.management.MBeanRegistration;
 import javax.management.ObjectName;
-import javax.management.MalformedObjectNameException;
 import javax.management.InstanceNotFoundException;
 import javax.management.ServiceNotFoundException;
 import javax.management.ReflectionException;
@@ -94,6 +92,7 @@
      *
      * @exception java.lang.Exception
      */
+    @Override
     public abstract ObjectName preRegister(MBeanServer server,
                                            ObjectName name)
         throws java.lang.Exception;
@@ -101,18 +100,21 @@
     /**
      * Not used in this context.
      */
+    @Override
     public void postRegister (Boolean registrationDone) {
     }
 
     /**
      * Not used in this context.
      */
+    @Override
     public void preDeregister() throws java.lang.Exception {
     }
 
     /**
      * Not used in this context.
      */
+    @Override
     public void postDeregister() {
     }
 
@@ -127,6 +129,7 @@
      *
      * @exception SnmpStatusException An error occured during the operation.
      */
+    @Override
     public abstract void get(SnmpMibRequest req)
         throws SnmpStatusException;
 
@@ -141,6 +144,7 @@
      *
      * @exception SnmpStatusException An error occured during the operation.
      */
+    @Override
     public abstract void getNext(SnmpMibRequest req)
         throws SnmpStatusException;
 
@@ -164,6 +168,7 @@
      *
      * @exception SnmpStatusException An error occured during the operation.
      */
+    @Override
     public abstract void getBulk(SnmpMibRequest req, int nonRepeat,
                                  int maxRepeat)
         throws SnmpStatusException;
@@ -185,6 +190,7 @@
      *            the exception is thrown in the {@link #check(SnmpMibRequest)}
      *            method instead.
      */
+    @Override
     public abstract void set(SnmpMibRequest req)
         throws SnmpStatusException;
 
@@ -203,6 +209,7 @@
      * @exception SnmpStatusException The <CODE>set</CODE> operation
      *    cannot be performed.
      */
+    @Override
     public abstract void check(SnmpMibRequest req)
         throws SnmpStatusException;
 
@@ -226,6 +233,7 @@
      * @return The MBean server or null if the MIB is not registered in any
      *     MBean server.
      */
+    @Override
     public MBeanServer getMBeanServer() {
         return server;
     }
@@ -236,6 +244,7 @@
      *
      * @return The SNMP MIB handler.
      */
+    @Override
     public SnmpMibHandler getSnmpAdaptor() {
         return adaptor;
     }
@@ -246,6 +255,7 @@
      *
      * @param stack The SNMP MIB handler.
      */
+    @Override
     public void setSnmpAdaptor(SnmpMibHandler stack) {
         if (adaptor != null) {
             adaptor.removeMib(this);
@@ -266,6 +276,7 @@
      *
      * @since 1.5
      */
+    @Override
     public void setSnmpAdaptor(SnmpMibHandler stack, SnmpOid[] oids) {
         if (adaptor != null) {
             adaptor.removeMib(this);
@@ -288,6 +299,7 @@
      *
      * @since 1.5
      */
+    @Override
     public void setSnmpAdaptor(SnmpMibHandler stack, String contextName) {
         if (adaptor != null) {
             adaptor.removeMib(this, contextName);
@@ -309,6 +321,7 @@
      *
      * @since 1.5
      */
+    @Override
     public void setSnmpAdaptor(SnmpMibHandler stack,
                                String contextName,
                                SnmpOid[] oids) {
@@ -327,6 +340,7 @@
      *
      * @return The name of the SNMP protocol adaptor.
      */
+    @Override
     public ObjectName getSnmpAdaptorName() {
         return adaptorName;
     }
@@ -344,6 +358,7 @@
      * @exception ServiceNotFoundException This SNMP MIB is not registered
      *     in the MBean server or the requested service is not supported.
      */
+    @Override
     public void setSnmpAdaptorName(ObjectName name)
         throws InstanceNotFoundException, ServiceNotFoundException {
 
@@ -389,6 +404,7 @@
      *
      * @since 1.5
      */
+    @Override
     public void setSnmpAdaptorName(ObjectName name, SnmpOid[] oids)
         throws InstanceNotFoundException, ServiceNotFoundException {
 
@@ -434,6 +450,7 @@
      *
      * @since 1.5
      */
+    @Override
     public void setSnmpAdaptorName(ObjectName name, String contextName)
         throws InstanceNotFoundException, ServiceNotFoundException {
 
@@ -481,6 +498,7 @@
      *
      * @since 1.5
      */
+    @Override
     public void setSnmpAdaptorName(ObjectName name,
                                    String contextName, SnmpOid[] oids)
         throws InstanceNotFoundException, ServiceNotFoundException {
@@ -522,6 +540,7 @@
      * @return <CODE>true</CODE> if the MIB module is bound,
      *         <CODE>false</CODE> otherwise.
      */
+    @Override
     public boolean getBindingState() {
         if (adaptor == null)
             return false;
@@ -534,6 +553,7 @@
      *
      * @return The MIB name.
      */
+    @Override
     public String getMibName() {
         return mibName;
     }
@@ -681,7 +701,7 @@
     private Vector<SnmpVarBind> splitFrom(Vector<SnmpVarBind> original, int limit) {
 
         int max= original.size();
-        Vector<SnmpVarBind> result= new Vector<SnmpVarBind>(max - limit);
+        Vector<SnmpVarBind> result= new Vector<>(max - limit);
         int i= limit;
 
         // Ok the loop looks a bit strange. But in order to improve the
@@ -697,21 +717,12 @@
         return result;
     }
 
-    private void concatVector(SnmpMibRequest req, Vector source) {
-        for(Enumeration e= source.elements(); e.hasMoreElements(); ) {
-            SnmpVarBind var= (SnmpVarBind) e.nextElement();
-            // We need to duplicate the SnmpVarBind otherwise it is going
-            // to be overloaded by the next get Next ...
-            req.addVarBind(new SnmpVarBind(var.oid, var.value));
-        }
-    }
-
-    private void concatVector(Vector<SnmpVarBind> target, Vector<SnmpVarBind> source) {
+    private void concatVector(SnmpMibRequest req, Vector<SnmpVarBind> source) {
         for(Enumeration<SnmpVarBind> e= source.elements(); e.hasMoreElements(); ) {
             SnmpVarBind var= e.nextElement();
             // We need to duplicate the SnmpVarBind otherwise it is going
             // to be overloaded by the next get Next ...
-            target.addElement(new SnmpVarBind(var.oid, var.value));
+            req.addVarBind(new SnmpVarBind(var.oid, var.value));
         }
     }
 
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java	Wed Nov 28 15:14:47 2012 +0100
@@ -29,20 +29,13 @@
 //
 import java.io.Serializable;
 import java.util.Hashtable;
-import java.util.Enumeration;
 import java.util.Vector;
 
 // jmx imports
 //
-import com.sun.jmx.snmp.SnmpOid;
-import com.sun.jmx.snmp.SnmpValue;
 import com.sun.jmx.snmp.SnmpVarBind;
 import com.sun.jmx.snmp.SnmpStatusException;
 
-// SNMP Runtime imports
-//
-import com.sun.jmx.snmp.agent.SnmpMibOid;
-import com.sun.jmx.snmp.agent.SnmpMibNode;
 
 /**
  * Represents a node in an SNMP MIB which corresponds to a group.
@@ -174,6 +167,7 @@
      * @exception SnmpStatusException An error occurred while accessing
      *  the MIB node.
      */
+    @Override
     abstract public void get(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException;
 
@@ -203,6 +197,7 @@
      * @exception SnmpStatusException An error occurred while accessing
      *  the MIB node.
      */
+    @Override
     abstract public void set(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException;
 
@@ -234,6 +229,7 @@
      * @exception SnmpStatusException An error occurred while accessing
      *  the MIB node.
      */
+    @Override
     abstract public void check(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException;
 
@@ -241,8 +237,8 @@
     // If we reach this node, we are below the root OID, so we just
     // return.
     // --------------------------------------------------------------------
-    public void getRootOid(Vector result) {
-        return;
+    @Override
+    public void getRootOid(Vector<Integer> result) {
     }
 
     // -------------------------------------------------------------------
@@ -264,7 +260,7 @@
      */
     void registerNestedArc(long arc) {
         Long obj = new Long(arc);
-        if (subgroups == null) subgroups = new Hashtable<Long, Long>();
+        if (subgroups == null) subgroups = new Hashtable<>();
         // registers the arc in the hashtable.
         subgroups.put(obj,obj);
     }
@@ -312,6 +308,7 @@
      * @param node The node being registered.
      *
      */
+    @Override
     void registerNode(long[] oid, int cursor ,SnmpMibNode node)
         throws IllegalAccessException {
         super.registerNode(oid,cursor,node);
@@ -325,13 +322,13 @@
     // -------------------------------------------------------------------
     // see comments in SnmpMibNode
     // -------------------------------------------------------------------
+    @Override
     void findHandlingNode(SnmpVarBind varbind,
                           long[] oid, int depth,
                           SnmpRequestTree handlers)
         throws SnmpStatusException {
 
         int length = oid.length;
-        SnmpMibNode node = null;
 
         if (handlers == null)
             throw new SnmpStatusException(SnmpStatusException.snmpRspGenErr);
@@ -349,7 +346,6 @@
             // This arc leads to a subgroup: delegates the search to the
             // method defined in SnmpMibOid
             super.findHandlingNode(varbind,oid,depth,handlers);
-            return;
         } else if (isTable(arc)) {
             // This arc leads to a table: forward the search to the table.
 
@@ -384,6 +380,7 @@
     // -------------------------------------------------------------------
     // See comments in SnmpMibNode.
     // -------------------------------------------------------------------
+    @Override
     long[] findNextHandlingNode(SnmpVarBind varbind,
                                 long[] oid, int pos, int depth,
                                 SnmpRequestTree handlers, AcmChecker checker)
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibOid.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibOid.java	Wed Nov 28 15:14:47 2012 +0100
@@ -37,7 +37,6 @@
 // jmx imports
 //
 import com.sun.jmx.snmp.SnmpOid;
-import com.sun.jmx.snmp.SnmpValue;
 import com.sun.jmx.snmp.SnmpVarBind;
 import com.sun.jmx.snmp.SnmpStatusException;
 
@@ -79,10 +78,11 @@
      * @exception SnmpStatusException The default implementation (if not
      *            overridden) is to generate a SnmpStatusException.
      */
+    @Override
     public void get(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException {
-        for (Enumeration e= req.getElements(); e.hasMoreElements();) {
-            SnmpVarBind var= (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e= req.getElements(); e.hasMoreElements();) {
+            SnmpVarBind var= e.nextElement();
             SnmpStatusException x =
                 new SnmpStatusException(SnmpStatusException.noSuchObject);
             req.registerGetException(var,x);
@@ -102,10 +102,11 @@
      * @exception SnmpStatusException The default implementation (if not
      *            overridden) is to generate a SnmpStatusException.
      */
+    @Override
     public void set(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException {
-        for (Enumeration e= req.getElements(); e.hasMoreElements();) {
-            SnmpVarBind var= (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e= req.getElements(); e.hasMoreElements();) {
+            SnmpVarBind var= e.nextElement();
             SnmpStatusException x =
                 new SnmpStatusException(SnmpStatusException.noAccess);
             req.registerSetException(var,x);
@@ -123,12 +124,13 @@
      * @param depth The depth reached in the OID tree.
      *
      * @exception SnmpStatusException The default implementation (if not
-     *            overriden) is to generate a SnmpStatusException.
+     *            overridden) is to generate a SnmpStatusException.
      */
+    @Override
     public void check(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException {
-        for (Enumeration e= req.getElements(); e.hasMoreElements();) {
-            SnmpVarBind var= (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e= req.getElements(); e.hasMoreElements();) {
+            SnmpVarBind var= e.nextElement();
             SnmpStatusException x =
                 new SnmpStatusException(SnmpStatusException.noAccess);
             req.registerCheckException(var,x);
@@ -143,6 +145,7 @@
     //
     // ---------------------------------------------------------------------
     //
+    @Override
     void findHandlingNode(SnmpVarBind varbind,
                           long[] oid, int depth,
                           SnmpRequestTree handlers)
@@ -191,6 +194,7 @@
     //
     // ---------------------------------------------------------------------
     //
+    @Override
     long[] findNextHandlingNode(SnmpVarBind varbind,
                                 long[] oid, int pos, int depth,
                                 SnmpRequestTree handlers,
@@ -267,6 +271,7 @@
     /**
      * Computes the root OID of the MIB.
      */
+    @Override
     public void getRootOid(Vector<Integer> result) {
 
         // If a node has several children, let assume that we are one step to
@@ -359,7 +364,6 @@
             //     String.valueOf(var) + " position= " + cursor);
             children.insertElementAt(child, newPos);
             child.registerNode(oid, cursor + 1, node);
-            return;
         }
         else {
             // The node is already registered
@@ -404,7 +408,6 @@
                     }
                 }
                 children.setElementAt(node,pos);
-                return;
             } else {
                 if (child == null)
                     throw new IllegalAccessException();
@@ -469,7 +472,7 @@
 
         int max= varList.length -1 ;
         int curr= low + (max-low)/2;
-        int elmt= 0;
+        int elmt;
         while (low <= max) {
             elmt= varList[curr];
             if (cursor == elmt) {
@@ -494,7 +497,7 @@
         if (varList == null)
             return -1;
         int max= varList.length -1 ;
-        int elmt=0;
+        int elmt;
         //final int[] v = varList;
 
         //if (index > a[max])
@@ -528,7 +531,7 @@
     /**
      * Contains the list of sub nodes.
      */
-    private NonSyncVector<SnmpMibNode> children = new NonSyncVector<SnmpMibNode>(1);
+    private NonSyncVector<SnmpMibNode> children = new NonSyncVector<>(1);
 
     /**
      * The number of sub nodes.
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequest.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequest.java	Wed Nov 28 15:14:47 2012 +0100
@@ -50,7 +50,7 @@
      * @return The element of the enumeration are instances of
      *         {@link com.sun.jmx.snmp.SnmpVarBind}
      */
-    public Enumeration getElements();
+    public Enumeration<SnmpVarBind> getElements();
 
     /**
      * Returns the vector of varbind to be handled by the SNMP mib node.
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequestImpl.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequestImpl.java	Wed Nov 28 15:14:47 2012 +0100
@@ -87,6 +87,7 @@
      * Returns the local engine. This parameter is returned only if <CODE> SnmpV3AdaptorServer </CODE> is the adaptor receiving this request. Otherwise null is returned.
      * @return the local engine.
      */
+    @Override
     public SnmpEngine getEngine() {
         return engine;
     }
@@ -95,6 +96,7 @@
      * Gets the incoming request principal. This parameter is returned only if <CODE> SnmpV3AdaptorServer </CODE> is the adaptor receiving this request. Otherwise null is returned.
      * @return The request principal.
      **/
+    @Override
     public String getPrincipal() {
         return principal;
     }
@@ -103,6 +105,7 @@
      * Gets the incoming request security level. This level is defined in {@link com.sun.jmx.snmp.SnmpEngine SnmpEngine}. This parameter is returned only if <CODE> SnmpV3AdaptorServer </CODE> is the adaptor receiving this request. Otherwise -1 is returned.
      * @return The security level.
      */
+    @Override
     public int getSecurityLevel() {
         return securityLevel;
     }
@@ -110,6 +113,7 @@
      * Gets the incoming request security model. This parameter is returned only if <CODE> SnmpV3AdaptorServer </CODE> is the adaptor receiving this request. Otherwise -1 is returned.
      * @return The security model.
      */
+    @Override
     public int getSecurityModel() {
         return securityModel;
     }
@@ -117,6 +121,7 @@
      * Gets the incoming request context name. This parameter is returned only if <CODE> SnmpV3AdaptorServer </CODE> is the adaptor receiving this request. Otherwise null is returned.
      * @return The context name.
      */
+    @Override
     public byte[] getContextName() {
         return contextName;
     }
@@ -125,6 +130,7 @@
      * Gets the incoming request context name used by Access Control Model in order to allow or deny the access to OIDs. This parameter is returned only if <CODE> SnmpV3AdaptorServer </CODE> is the adaptor receiving this request. Otherwise null is returned.
      * @return The checked context.
      */
+    @Override
     public byte[] getAccessContextName() {
         return accessContextName;
     }
@@ -133,6 +139,7 @@
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
+    @Override
     public final SnmpPdu getPdu() {
         return reqPdu;
     }
@@ -141,18 +148,21 @@
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
-    public final Enumeration getElements()  {return varbinds.elements();}
+    @Override
+    public final Enumeration<SnmpVarBind> getElements()  {return varbinds.elements();}
 
     // -------------------------------------------------------------------
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
+    @Override
     public final Vector<SnmpVarBind> getSubList()  {return varbinds;}
 
     // -------------------------------------------------------------------
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
+    @Override
     public final int getSize()  {
         if (varbinds == null) return 0;
         return varbinds.size();
@@ -162,24 +172,28 @@
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
+    @Override
     public final int         getVersion()  {return version;}
 
     // -------------------------------------------------------------------
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
+    @Override
     public final int         getRequestPduVersion()  {return reqPdu.version;}
 
     // -------------------------------------------------------------------
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
+    @Override
     public final Object      getUserData() {return data;}
 
     // -------------------------------------------------------------------
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
+    @Override
     public final int getVarIndex(SnmpVarBind varbind) {
         return varbinds.indexOf(varbind);
     }
@@ -188,6 +202,7 @@
     // Implements the method defined in SnmpMibRequest interface.
     // See SnmpMibRequest for the java doc.
     // -------------------------------------------------------------------
+    @Override
     public void addVarBind(SnmpVarBind varbind) {
         varbinds.addElement(varbind);
     }
@@ -218,7 +233,7 @@
     // Returns the underlying vector of SNMP varbinds (used for algorithm
     // optimization).
     // -------------------------------------------------------------------
-    final Vector getVarbinds() {return varbinds;}
+    final Vector<SnmpVarBind> getVarbinds() {return varbinds;}
 
     // -------------------------------------------------------------------
     // Private variables
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibSubRequest.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibSubRequest.java	Wed Nov 28 15:14:47 2012 +0100
@@ -65,7 +65,8 @@
      * @return The elements of the enumeration are instances of
      *         {@link com.sun.jmx.snmp.SnmpVarBind}
      */
-    public Enumeration getElements();
+    @Override
+    public Enumeration<SnmpVarBind> getElements();
 
     /**
      * Return the list of varbind to be handled by the SNMP MIB node.
@@ -85,6 +86,7 @@
      * @return The elements of the vector are instances of
      *         {@link com.sun.jmx.snmp.SnmpVarBind}
      */
+    @Override
     public Vector<SnmpVarBind> getSubList();
 
     /**
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibTable.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibTable.java	Wed Nov 28 15:14:47 2012 +0100
@@ -266,6 +266,7 @@
      * <p>
      *
      */
+    @Override
     public void get(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException {
 
@@ -276,9 +277,9 @@
         // each varbind involved (nb: should not happen, the error
         // should have been registered earlier)
         if (isnew) {
-            SnmpVarBind     var = null;
-            for (Enumeration e= r.getElements(); e.hasMoreElements();) {
-                var      = (SnmpVarBind) e.nextElement();
+            SnmpVarBind var;
+            for (Enumeration<SnmpVarBind> e= r.getElements(); e.hasMoreElements();) {
+                var = e.nextElement();
                 r.registerGetException(var,noSuchInstanceException);
             }
         }
@@ -329,6 +330,7 @@
      * <p>
      *
      */
+    @Override
     public void check(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException {
         final SnmpOid     oid    = req.getEntryOid();
@@ -389,6 +391,7 @@
      * <p>
      *
      */
+    @Override
     public void set(SnmpMibSubRequest req, int depth)
         throws SnmpStatusException {
 
@@ -755,6 +758,7 @@
      *
      * @exception IllegalArgumentException Listener parameter is null.
      */
+    @Override
     public synchronized void
         addNotificationListener(NotificationListener listener,
                                 NotificationFilter filter, Object handback)  {
@@ -768,13 +772,11 @@
 
         // looking for listener in handbackTable
         //
-        Vector<Object> handbackList =
-            handbackTable.get(listener) ;
-        Vector<NotificationFilter> filterList =
-            filterTable.get(listener) ;
+        Vector<Object> handbackList = handbackTable.get(listener) ;
+        Vector<NotificationFilter> filterList = filterTable.get(listener) ;
         if ( handbackList == null ) {
-            handbackList = new Vector<Object>() ;
-            filterList = new Vector<NotificationFilter>() ;
+            handbackList = new Vector<>() ;
+            filterList = new Vector<>() ;
             handbackTable.put(listener, handbackList) ;
             filterTable.put(listener, filterList) ;
         }
@@ -797,16 +799,14 @@
      * @exception ListenerNotFoundException The listener is not registered
      *    in the MBean.
      */
+    @Override
     public synchronized void
         removeNotificationListener(NotificationListener listener)
         throws ListenerNotFoundException {
 
         // looking for listener in handbackTable
         //
-        java.util.Vector handbackList =
-            (java.util.Vector) handbackTable.get(listener) ;
-        java.util.Vector filterList =
-            (java.util.Vector) filterTable.get(listener) ;
+        java.util.Vector<?> handbackList = handbackTable.get(listener) ;
         if ( handbackList == null ) {
             throw new ListenerNotFoundException("listener");
         }
@@ -822,6 +822,7 @@
      * notification class and the notification type sent by the
      * <CODE>SnmpMibTable</CODE>.
      */
+    @Override
     public MBeanNotificationInfo[] getNotificationInfo() {
 
         String[] types = {SnmpTableEntryNotification.SNMP_ENTRY_ADDED,
@@ -1813,9 +1814,9 @@
     //
     // ---------------------------------------------------------------------
 
-    final static void checkRowStatusFail(SnmpMibSubRequest req,
-                                         int errorStatus)
+    static void checkRowStatusFail(SnmpMibSubRequest req, int errorStatus)
         throws SnmpStatusException {
+
         final SnmpVarBind statusvb  = req.getRowStatusVarBind();
         final SnmpStatusException x = new SnmpStatusException(errorStatus);
         req.registerCheckException(statusvb,x);
@@ -1827,9 +1828,9 @@
     //
     // ---------------------------------------------------------------------
 
-    final static void setRowStatusFail(SnmpMibSubRequest req,
-                                       int errorStatus)
+    static void setRowStatusFail(SnmpMibSubRequest req, int errorStatus)
         throws SnmpStatusException {
+
         final SnmpVarBind statusvb  = req.getRowStatusVarBind();
         final SnmpStatusException x = new SnmpStatusException(errorStatus);
         req.registerSetException(statusvb,x);
@@ -1840,6 +1841,7 @@
     // Implements the method defined in SnmpMibNode.
     //
     // ---------------------------------------------------------------------
+    @Override
     final synchronized void findHandlingNode(SnmpVarBind varbind,
                                              long[] oid, int depth,
                                              SnmpRequestTree handlers)
@@ -1909,11 +1911,15 @@
     // largely inspired from the original getNext() method.
     //
     // ---------------------------------------------------------------------
+    @Override
     final synchronized long[] findNextHandlingNode(SnmpVarBind varbind,
-                                      long[] oid, int pos, int depth,
-                                      SnmpRequestTree handlers,
-                                      AcmChecker checker)
+                                                   long[] oid,
+                                                   int pos,
+                                                   int depth,
+                                                   SnmpRequestTree handlers,
+                                                   AcmChecker checker)
         throws SnmpStatusException {
+
             int length = oid.length;
 
             if (handlers == null)
@@ -1974,7 +1980,7 @@
             }
 
             // Now that we've got everything right we can begin.
-            SnmpOid entryoid = null ;
+            SnmpOid entryoid;
 
             if (pos == (length - 1)) {
                 // pos points to the last arc in the oid, and this arc is
@@ -2200,28 +2206,25 @@
 
         // loop on listener
         //
-        for(java.util.Enumeration k = handbackTable.keys();
+        for(java.util.Enumeration<NotificationListener> k = handbackTable.keys();
             k.hasMoreElements(); ) {
 
-            NotificationListener listener =
-                (NotificationListener) k.nextElement();
+            NotificationListener listener = k.nextElement();
 
             // Get the associated handback list and the associated filter list
             //
-            java.util.Vector handbackList =
-                (java.util.Vector) handbackTable.get(listener) ;
-            java.util.Vector filterList =
-                (java.util.Vector) filterTable.get(listener) ;
+            java.util.Vector<?> handbackList = handbackTable.get(listener) ;
+            java.util.Vector<NotificationFilter> filterList =
+                filterTable.get(listener) ;
 
             // loop on handback
             //
-            java.util.Enumeration f = filterList.elements();
-            for(java.util.Enumeration h = handbackList.elements();
+            java.util.Enumeration<NotificationFilter> f = filterList.elements();
+            for(java.util.Enumeration<?> h = handbackList.elements();
                 h.hasMoreElements(); ) {
 
                 Object handback = h.nextElement();
-                NotificationFilter filter =
-                    (NotificationFilter)f.nextElement();
+                NotificationFilter filter = f.nextElement();
 
                 if ((filter == null) ||
                      (filter.isNotificationEnabled(notification))) {
@@ -2300,7 +2303,7 @@
      *         OID was not found.
      *
      **/
-    private final int findObject(SnmpOid oid) {
+    private int findObject(SnmpOid oid) {
         int low= 0;
         int max= size - 1;
         SnmpOid pos;
@@ -2339,25 +2342,6 @@
      * <p>
      * @param oid The OID we would like to insert.
      *
-     * @return The position at which the OID should be inserted in
-     *         the table.
-     *
-     * @exception SnmpStatusException if the OID is already present in the
-     *            table.
-     *
-     **/
-    private final int getInsertionPoint(SnmpOid oid)
-        throws SnmpStatusException {
-        return getInsertionPoint(oid, true);
-    }
-
-    /**
-     * Search the position at which the given oid should be inserted
-     * in the OID table (tableoids).
-     *
-     * <p>
-     * @param oid The OID we would like to insert.
-     *
      * @param fail Tells whether a SnmpStatusException must be generated
      *             if the given OID is already present in the table.
      *
@@ -2371,7 +2355,7 @@
      *            table and <code>fail</code> is <code>true</code>.
      *
      **/
-    private final int getInsertionPoint(SnmpOid oid, boolean fail)
+    private int getInsertionPoint(SnmpOid oid, boolean fail)
         throws SnmpStatusException {
 
         final int failStatus = SnmpStatusException.snmpRspNotWritable;
@@ -2413,7 +2397,7 @@
      * @param pos The position at which the OID to be removed is located.
      *
      **/
-    private final void removeOid(int pos) {
+    private void removeOid(int pos) {
         if (pos >= tablecount) return;
         if (pos < 0) return;
         final int l1 = --tablecount-pos;
@@ -2431,7 +2415,7 @@
      * @param pos The position at which the OID to be added is located.
      *
      **/
-    private final void insertOid(int pos, SnmpOid oid) {
+    private void insertOid(int pos, SnmpOid oid) {
         if (pos >= tablesize || tablecount == tablesize) {
                 // Vector must be enlarged
 
@@ -2534,13 +2518,13 @@
      * The list of entries.
      * @serial
      */
-    private final Vector<Object> entries= new Vector<Object>();
+    private final Vector<Object> entries= new Vector<>();
 
     /**
      * The list of object names.
      * @serial
      */
-    private final Vector<ObjectName> entrynames= new Vector<ObjectName>();
+    private final Vector<ObjectName> entrynames= new Vector<>();
 
     /**
      * Callback handlers
@@ -2548,17 +2532,16 @@
     // final Vector callbacks = new Vector();
 
     /**
-     * Listener hastable containing the hand-back objects.
+     * Listener hashtable containing the hand-back objects.
      */
     private Hashtable<NotificationListener, Vector<Object>> handbackTable =
-            new Hashtable<NotificationListener, Vector<Object>>();
+            new Hashtable<>();
 
     /**
-     * Listener hastable containing the filter objects.
+     * Listener hashtable containing the filter objects.
      */
     private Hashtable<NotificationListener, Vector<NotificationFilter>>
-            filterTable =
-            new Hashtable<NotificationListener, Vector<NotificationFilter>>();
+            filterTable = new Hashtable<>();
 
     // PACKAGE VARIABLES
     //------------------
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpRequestTree.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpRequestTree.java	Wed Nov 28 15:14:47 2012 +0100
@@ -25,11 +25,9 @@
 package com.sun.jmx.snmp.agent;
 
 import java.util.Vector;
-import java.util.ArrayList;
 import java.util.Hashtable;
 import java.util.Enumeration;
 import java.util.Iterator;
-import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Arrays;
 import java.util.logging.Level;
@@ -77,7 +75,7 @@
         this.request = req;
         this.version  = req.getVersion();
         this.creationflag = creationflag;
-        this.hashtable = new Hashtable<Object, Handler>();
+        this.hashtable = new Hashtable<>();
         setPduType(pdutype);
     }
 
@@ -191,7 +189,7 @@
     // SnmSubRequest associated with an Handler node.
     //-------------------------------------------------------------------
 
-    static final class Enum implements Enumeration {
+    static final class Enum implements Enumeration<SnmpMibSubRequest> {
         Enum(SnmpRequestTree hlist,Handler h) {
             handler = h;
             this.hlist = hlist;
@@ -203,11 +201,13 @@
         private int   iter  = 0;
         private int   size  = 0;
 
+        @Override
         public boolean hasMoreElements() {
             return iter < size;
         }
 
-        public Object nextElement() throws NoSuchElementException  {
+        @Override
+        public SnmpMibSubRequest nextElement() throws NoSuchElementException  {
             if (iter == 0) {
                 if (handler.sublist != null) {
                     iter++;
@@ -216,7 +216,7 @@
             }
             iter ++;
             if (iter > size) throw new NoSuchElementException();
-            Object result = hlist.getSubRequest(handler,entry);
+            SnmpMibSubRequest result = hlist.getSubRequest(handler,entry);
             entry++;
             return result;
         }
@@ -252,7 +252,8 @@
         // Implements the method defined in SnmpMibRequest interface.
         // See SnmpMibRequest for the java doc.
         // -------------------------------------------------------------
-        public Enumeration getElements() {
+        @Override
+        public Enumeration<SnmpVarBind> getElements() {
             return varbinds.elements();
         }
 
@@ -260,6 +261,7 @@
         // Implements the method defined in SnmpMibRequest interface.
         // See SnmpMibRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public Vector<SnmpVarBind> getSubList() {
             return varbinds;
         }
@@ -268,6 +270,7 @@
         // Implements the method defined in SnmpMibRequest interface.
         // See SnmpMibRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public final int getSize()  {
             if (varbinds == null) return 0;
             return varbinds.size();
@@ -277,6 +280,7 @@
         // Implements the method defined in SnmpMibRequest interface.
         // See SnmpMibRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public void addVarBind(SnmpVarBind varbind) {
             // XXX not sure we must also add the varbind in the global
             //     request? or whether we should raise an exception:
@@ -289,6 +293,7 @@
         // Implements the method defined in SnmpMibSubRequest interface.
         // See SnmpMibSubRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public boolean isNewEntry() {
             return isnew;
         }
@@ -297,6 +302,7 @@
         // Implements the method defined in SnmpMibSubRequest interface.
         // See SnmpMibSubRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public SnmpOid getEntryOid() {
             return entryoid;
         }
@@ -305,6 +311,7 @@
         // Implements the method defined in SnmpMibRequest interface.
         // See SnmpMibRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public int getVarIndex(SnmpVarBind varbind) {
             if (varbind == null) return 0;
             return global.getVarIndex(varbind);
@@ -314,6 +321,7 @@
         // Implements the method defined in SnmpMibRequest interface.
         // See SnmpMibRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public Object getUserData() { return global.getUserData(); }
 
 
@@ -322,6 +330,7 @@
         // See SnmpMibSubRequest for the java doc.
         // -------------------------------------------------------------
 
+        @Override
         public void registerGetException(SnmpVarBind var,
                                          SnmpStatusException exception)
             throws SnmpStatusException {
@@ -364,6 +373,7 @@
         // Implements the method defined in SnmpMibSubRequest interface.
         // See SnmpMibSubRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public void registerSetException(SnmpVarBind var,
                                          SnmpStatusException exception)
             throws SnmpStatusException {
@@ -387,6 +397,7 @@
         // Implements the method defined in SnmpMibSubRequest interface.
         // See SnmpMibSubRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public void registerCheckException(SnmpVarBind var,
                                            SnmpStatusException exception)
             throws SnmpStatusException {
@@ -410,42 +421,52 @@
         // Implements the method defined in SnmpMibRequest interface.
         // See SnmpMibRequest for the java doc.
         // -------------------------------------------------------------
+        @Override
         public int getVersion() {
             return version;
         }
 
+        @Override
         public SnmpVarBind getRowStatusVarBind() {
             return statusvb;
         }
 
+        @Override
         public SnmpPdu getPdu() {
             return global.getPdu();
         }
 
+        @Override
         public int getRequestPduVersion() {
             return global.getRequestPduVersion();
         }
 
+        @Override
         public SnmpEngine getEngine() {
             return global.getEngine();
         }
 
+        @Override
         public String getPrincipal() {
             return global.getPrincipal();
         }
 
+        @Override
         public int getSecurityLevel() {
             return global.getSecurityLevel();
         }
 
+        @Override
         public int getSecurityModel() {
             return global.getSecurityModel();
         }
 
+        @Override
         public byte[] getContextName() {
             return global.getContextName();
         }
 
+        @Override
         public byte[] getAccessContextName() {
             return global.getAccessContextName();
         }
@@ -485,7 +506,7 @@
          * Adds a varbind in this node sublist.
          */
         public void addVarbind(SnmpVarBind varbind) {
-            if (sublist == null) sublist = new Vector<SnmpVarBind>();
+            if (sublist == null) sublist = new Vector<>();
             sublist.addElement(varbind);
         }
 
@@ -503,7 +524,7 @@
                 // Vectors are null: Allocate new vectors
 
                 entryoids  = new SnmpOid[Delta];
-                entrylists = new Vector[Delta];
+                entrylists = (Vector<SnmpVarBind>[])new Vector<?>[Delta];
                 isentrynew = new boolean[Delta];
                 rowstatus  = new SnmpVarBind[Delta];
                 entrysize  = Delta;
@@ -521,7 +542,7 @@
                 // Allocate larger vectors
                 entrysize += Delta;
                 entryoids =  new SnmpOid[entrysize];
-                entrylists = new Vector[entrysize];
+                entrylists = (Vector<SnmpVarBind>[])new Vector<?>[entrysize];
                 isentrynew = new boolean[entrysize];
                 rowstatus  = new SnmpVarBind[entrysize];
 
@@ -595,7 +616,7 @@
 //              entryoids = new ArrayList();
 //              entrylists = new ArrayList();
 //              isentrynew = new ArrayList();
-                v = new Vector<SnmpVarBind>();
+                v = new Vector<>();
 //              entryoids.add(entryoid);
 //              entrylists.add(v);
 //              isentrynew.add(new Boolean(isnew));
@@ -614,7 +635,7 @@
                     // if (pos == -1 || pos >= entrycount ) {
                     // pos = getInsertionPoint(entryoids,entryoid);
                     // pos = getInsertionPoint(entryoids,entrycount,entryoid);
-                    v = new Vector<SnmpVarBind>();
+                    v = new Vector<>();
 //                  entryoids.add(pos,entryoid);
 //                  entrylists.add(pos,v);
 //                  isentrynew.add(pos,new Boolean(isnew));
@@ -775,7 +796,7 @@
     // If it is a table, there will be one subrequest per entry involved.
     //-------------------------------------------------------------------
 
-    public Enumeration getSubRequests(Handler handler) {
+    public Enumeration<SnmpMibSubRequest> getSubRequests(Handler handler) {
         return new Enum(this,handler);
     }
 
@@ -783,7 +804,7 @@
     // returns an enumeration of the Handlers stored in the Hashtable.
     //-------------------------------------------------------------------
 
-    public Enumeration getHandlers() {
+    public Enumeration<Handler> getHandlers() {
         return hashtable.elements();
     }
 
@@ -1048,7 +1069,6 @@
             handler.addVarbind(varbind);
         else
             handler.addVarbind(varbind,entryoid,isnew,statusvb);
-        return ;
     }
 
 
--- a/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardObjectServer.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardObjectServer.java	Wed Nov 28 15:14:47 2012 +0100
@@ -27,14 +27,7 @@
 // java imports
 //
 import java.io.Serializable;
-import java.util.Hashtable;
 import java.util.Enumeration;
-import java.util.Vector;
-
-// jmx imports
-//
-import com.sun.jmx.snmp.SnmpOid;
-import com.sun.jmx.snmp.SnmpValue;
 import com.sun.jmx.snmp.SnmpVarBind;
 import com.sun.jmx.snmp.SnmpStatusException;
 
@@ -121,8 +114,8 @@
 
         final Object data = req.getUserData();
 
-        for (Enumeration e= req.getElements(); e.hasMoreElements();) {
-            final SnmpVarBind var= (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e= req.getElements(); e.hasMoreElements();) {
+            final SnmpVarBind var= e.nextElement();
             try {
                 final long id = var.oid.getOidArc(depth);
                 var.value = meta.get(id, data);
@@ -182,9 +175,8 @@
 
         final Object data = req.getUserData();
 
-        for (Enumeration e= req.getElements(); e.hasMoreElements();) {
-            SnmpVarBind var = null;
-            var = (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e= req.getElements(); e.hasMoreElements();) {
+            SnmpVarBind var = e.nextElement();
             try {
                 // This method will generate a SnmpStatusException
                 // if `depth' is out of bounds.
@@ -248,8 +240,8 @@
 
         final Object data = req.getUserData();
 
-        for (Enumeration e= req.getElements(); e.hasMoreElements();) {
-            final SnmpVarBind var = (SnmpVarBind) e.nextElement();
+        for (Enumeration<SnmpVarBind> e= req.getElements(); e.hasMoreElements();) {
+            final SnmpVarBind var = e.nextElement();
             try {
                 // This method will generate a SnmpStatusException
                 // if `depth' is out of bounds.
--- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServer.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServer.java	Wed Nov 28 15:14:47 2012 +0100
@@ -33,7 +33,6 @@
 import java.io.ObjectInputStream;
 import java.io.IOException;
 import java.net.InetAddress;
-import java.util.Enumeration;
 import java.util.logging.Level;
 import java.util.Vector;
 import java.util.NoSuchElementException;
@@ -50,8 +49,6 @@
 import javax.management.MBeanNotificationInfo;
 import javax.management.AttributeChangeNotification;
 import javax.management.ListenerNotFoundException;
-import javax.management.loading.ClassLoaderRepository;
-import javax.management.MBeanServerFactory;
 
 import static com.sun.jmx.defaults.JmxProperties.SNMP_ADAPTOR_LOGGER;
 
@@ -225,9 +222,8 @@
     private transient Object stateLock = new Object();
 
     private transient Vector<ClientHandler>
-            clientHandlerVector = new Vector<ClientHandler>() ;
+            clientHandlerVector = new Vector<>() ;
 
-    private transient Thread fatherThread = Thread.currentThread() ;
     private transient Thread mainThread = null ;
 
     private volatile boolean stopRequested = false ;
@@ -328,6 +324,7 @@
      * Has no effect if this <CODE>CommunicatorServer</CODE> is
      * <CODE>ONLINE</CODE> or <CODE>STOPPING</CODE>.
      */
+    @Override
     public void start() {
         try {
             start(0);
@@ -346,6 +343,7 @@
      * Has no effect if this <CODE>CommunicatorServer</CODE> is
      * <CODE>OFFLINE</CODE> or  <CODE>STOPPING</CODE>.
      */
+    @Override
     public void stop() {
         synchronized (stateLock) {
             if (state == OFFLINE || state == STOPPING) {
@@ -393,6 +391,7 @@
      *
      * @return True if connector is <CODE>ONLINE</CODE>; false otherwise.
      */
+    @Override
     public boolean isActive() {
         synchronized (stateLock) {
             return (state == ONLINE);
@@ -431,6 +430,7 @@
      * @return true if the value of this MBean's State attribute is the
      *      same as the <VAR>wantedState</VAR> parameter; false otherwise.
      */
+    @Override
     public boolean waitState(int wantedState, long timeOut) {
         if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
             SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
@@ -595,6 +595,7 @@
      * @return <CODE>ONLINE</CODE>, <CODE>OFFLINE</CODE>,
      *         <CODE>STARTING</CODE> or <CODE>STOPPING</CODE>.
      */
+    @Override
     public int getState() {
         synchronized (stateLock) {
             return state ;
@@ -607,6 +608,7 @@
      * @return One of the strings "ONLINE", "OFFLINE", "STARTING" or
      *         "STOPPING".
      */
+    @Override
     public String getStateString() {
         return getStringForState(state) ;
     }
@@ -616,6 +618,7 @@
      *
      * @return The host name used by this <CODE>CommunicatorServer</CODE>.
      */
+    @Override
     public String getHost() {
         try {
             host = InetAddress.getLocalHost().getHostName();
@@ -630,6 +633,7 @@
      *
      * @return The port number used by this <CODE>CommunicatorServer</CODE>.
      */
+    @Override
     public int getPort() {
         synchronized (stateLock) {
             return port ;
@@ -645,6 +649,7 @@
      * @exception java.lang.IllegalStateException This method has been invoked
      * while the communicator was ONLINE or STARTING.
      */
+    @Override
     public void setPort(int port) throws java.lang.IllegalStateException {
         synchronized (stateLock) {
             if ((state == ONLINE) || (state == STARTING))
@@ -659,7 +664,8 @@
      * Gets the protocol being used by this <CODE>CommunicatorServer</CODE>.
      * @return The protocol as a string.
      */
-    public abstract String getProtocol() ;
+    @Override
+    public abstract String getProtocol();
 
     /**
      * Gets the number of clients that have been processed by this
@@ -754,6 +760,7 @@
      * <p>
      * The <CODE>run</CODE> method executed by this connector's main thread.
      */
+    @Override
     public void run() {
 
         // Fix jaw.00667.B
@@ -851,7 +858,7 @@
         } finally {
             synchronized (stateLock) {
                 interrupted = true;
-                Thread.currentThread().interrupted();
+                Thread.interrupted();
             }
 
             // ----------------------
@@ -970,7 +977,7 @@
             "MBeanServer argument must be MBean server where this " +
             "server is registered, or an MBeanServerForwarder " +
             "leading to that server";
-        Vector<MBeanServer> seenMBS = new Vector<MBeanServer>();
+        Vector<MBeanServer> seenMBS = new Vector<>();
         for (MBeanServer mbs = newMBS;
              mbs != bottomMBS;
              mbs = ((MBeanServerForwarder) mbs).getMBeanServer()) {
@@ -1153,8 +1160,7 @@
         state = OFFLINE;
         stopRequested = false;
         servedClientCount = 0;
-        clientHandlerVector = new Vector<ClientHandler>();
-        fatherThread = Thread.currentThread();
+        clientHandlerVector = new Vector<>();
         mainThread = null;
         notifCount = 0;
         notifInfos = null;
@@ -1184,6 +1190,7 @@
      *
      * @exception IllegalArgumentException Listener parameter is null.
      */
+    @Override
     public void addNotificationListener(NotificationListener listener,
                                         NotificationFilter filter,
                                         Object handback)
@@ -1207,6 +1214,7 @@
      *
      * @exception ListenerNotFoundException The listener is not registered.
      */
+    @Override
     public void removeNotificationListener(NotificationListener listener)
         throws ListenerNotFoundException {
 
@@ -1225,6 +1233,7 @@
      * sent when the <tt>State</tt> attribute of this CommunicatorServer
      * changes.
      */
+    @Override
     public MBeanNotificationInfo[] getNotificationInfo() {
 
         // Initialize notifInfos on first call to getNotificationInfo()
@@ -1304,6 +1313,7 @@
      *           the <CODE>MBeanServer</CODE> and re-thrown
      *           as an <CODE>MBeanRegistrationException</CODE>.
      */
+    @Override
     public ObjectName preRegister(MBeanServer server, ObjectName name)
             throws java.lang.Exception {
         objectName = name;
@@ -1325,6 +1335,7 @@
      *       successfully registered in the <CODE>MBeanServer</CODE>.
      *       The value false means that the registration phase has failed.
      */
+    @Override
     public void postRegister(Boolean registrationDone) {
         if (!registrationDone.booleanValue()) {
             synchronized (this) {
@@ -1340,6 +1351,7 @@
      *            the <CODE>MBeanServer</CODE> and re-thrown
      *            as an <CODE>MBeanRegistrationException</CODE>.
      */
+    @Override
     public void preDeregister() throws java.lang.Exception {
         synchronized (this) {
             topMBS = bottomMBS = null;
@@ -1354,22 +1366,8 @@
     /**
      * Do nothing.
      */
+    @Override
     public void postDeregister(){
     }
 
-    /**
-     * Load a class using the default loader repository
-     **/
-    Class loadClass(String className)
-        throws ClassNotFoundException {
-        try {
-            return Class.forName(className);
-        } catch (ClassNotFoundException e) {
-            final ClassLoaderRepository clr =
-                MBeanServerFactory.getClassLoaderRepository(bottomMBS);
-            if (clr == null) throw new ClassNotFoundException(className);
-            return clr.loadClass(className);
-        }
-    }
-
 }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServer.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServer.java	Wed Nov 28 15:14:47 2012 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2012, 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
@@ -47,7 +47,6 @@
 import javax.management.MBeanServer;
 import javax.management.MBeanRegistration;
 import javax.management.ObjectName;
-import javax.management.InstanceAlreadyExistsException;
 import static com.sun.jmx.defaults.JmxProperties.SNMP_ADAPTOR_LOGGER;
 import com.sun.jmx.snmp.SnmpIpAddress;
 import com.sun.jmx.snmp.SnmpMessage;
@@ -157,7 +156,7 @@
     /**
      * The IP address based ACL used by this SNMP protocol adaptor.
      */
-    private Object ipacl = null;
+    private InetAddressAcl ipacl = null;
 
     /**
      * The factory object.
@@ -199,7 +198,7 @@
     transient DatagramSocket          trapSocket      = null;
     private transient SnmpSession     informSession   = null;
     private transient DatagramPacket  packet          = null;
-    transient Vector<SnmpMibAgent>    mibs            = new Vector<SnmpMibAgent>();
+    transient Vector<SnmpMibAgent>    mibs            = new Vector<>();
     private transient SnmpMibTree     root;
 
     /**
@@ -482,8 +481,7 @@
         //
         if (acl == null && forceAcl) {
             try {
-                acl = (InetAddressAcl)
-                    new SnmpAcl("SNMP protocol adaptor IP ACL");
+                acl = new SnmpAcl("SNMP protocol adaptor IP ACL");
             } catch (UnknownHostException e) {
                 if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                     SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
@@ -508,6 +506,7 @@
      * since its creation. This counter is not reset by the <CODE>stop</CODE>
      * method.
      */
+    @Override
     public int getServedClientCount() {
         return super.getServedClientCount();
     }
@@ -519,6 +518,7 @@
      * @return The number of managers currently being processed by this
      * SNMP protocol adaptor.
      */
+    @Override
     public int getActiveClientCount() {
         return super.getActiveClientCount();
     }
@@ -530,6 +530,7 @@
      * @return The maximum number of managers that this SNMP protocol adaptor
      *         can process concurrently.
      */
+    @Override
     public int getMaxActiveClientCount() {
         return super.getMaxActiveClientCount();
     }
@@ -543,6 +544,7 @@
      * @exception java.lang.IllegalStateException This method has been invoked
      * while the communicator was <CODE>ONLINE</CODE> or <CODE>STARTING</CODE>.
      */
+    @Override
     public void setMaxActiveClientCount(int c)
         throws java.lang.IllegalStateException {
         super.setMaxActiveClientCount(c);
@@ -554,8 +556,9 @@
      *
      * @since 1.5
      */
+    @Override
     public InetAddressAcl getInetAddressAcl() {
-        return (InetAddressAcl)ipacl;
+        return ipacl;
     }
 
     /**
@@ -564,6 +567,7 @@
      *
      * @return The port number for sending SNMP traps.
      */
+    @Override
     public Integer getTrapPort() {
         return new Integer(trapPort) ;
     }
@@ -573,6 +577,7 @@
      *
      * @param port The port number for sending SNMP traps.
      */
+    @Override
     public void setTrapPort(Integer port) {
         setTrapPort(port.intValue());
     }
@@ -595,6 +600,7 @@
      *
      * @return The port number for sending SNMP inform requests.
      */
+    @Override
     public int getInformPort() {
         return informPort;
     }
@@ -605,6 +611,7 @@
      *
      * @param port The port number for sending SNMP inform requests.
      */
+    @Override
     public void setInformPort(int port) {
         if (port < 0)
             throw new IllegalArgumentException("Inform request port "+
@@ -617,6 +624,7 @@
      *
      * @return The string "snmp".
      */
+    @Override
     public String getProtocol() {
         return "snmp";
     }
@@ -629,6 +637,7 @@
      *
      * @return The buffer size.
      */
+    @Override
     public Integer getBufferSize() {
         return new Integer(bufferSize) ;
     }
@@ -643,6 +652,7 @@
      * @exception java.lang.IllegalStateException This method has been invoked
      * while the communicator was <CODE>ONLINE</CODE> or <CODE>STARTING</CODE>.
      */
+    @Override
     public void setBufferSize(Integer s)
         throws java.lang.IllegalStateException {
         if ((state == ONLINE) || (state == STARTING)) {
@@ -658,6 +668,7 @@
      * By default, a maximum of 3 tries is used.
      * @return The maximun number of tries.
      */
+    @Override
     final public int getMaxTries() {
         return maxTries;
     }
@@ -667,6 +678,7 @@
      * request before giving up.
      * @param newMaxTries The maximun number of tries.
      */
+    @Override
     final public synchronized void setMaxTries(int newMaxTries) {
         if (newMaxTries < 0)
             throw new IllegalArgumentException();
@@ -678,6 +690,7 @@
      * By default, a timeout of 3 seconds is used.
      * @return The value of the timeout property.
      */
+    @Override
     final public int getTimeout() {
         return timeout;
     }
@@ -686,6 +699,7 @@
      * Changes the timeout to wait for an inform response from the manager.
      * @param newTimeout The timeout (in milliseconds).
      */
+    @Override
     final public synchronized void setTimeout(int newTimeout) {
         if (newTimeout < 0)
             throw new IllegalArgumentException();
@@ -697,6 +711,7 @@
      *
      * @return The factory object.
      */
+    @Override
     public SnmpPduFactory getPduFactory() {
         return pduFactory ;
     }
@@ -706,6 +721,7 @@
      *
      * @param factory The factory object (null means the default factory).
      */
+    @Override
     public void setPduFactory(SnmpPduFactory factory) {
         if (factory == null)
             pduFactory = new SnmpPduFactoryBER() ;
@@ -719,6 +735,7 @@
      * @param factory The factory object (null means no factory).
      * @see com.sun.jmx.snmp.agent.SnmpUserDataFactory
      */
+    @Override
     public void setUserDataFactory(SnmpUserDataFactory factory) {
         userDataFactory = factory ;
     }
@@ -729,6 +746,7 @@
      * @return The factory object (null means no factory).
      * @see com.sun.jmx.snmp.agent.SnmpUserDataFactory
      */
+    @Override
     public SnmpUserDataFactory getUserDataFactory() {
         return userDataFactory;
     }
@@ -745,6 +763,7 @@
      * @return <CODE>true</CODE> if authentication traps are enabled,
      *         <CODE>false</CODE> otherwise.
      */
+    @Override
     public boolean getAuthTrapEnabled() {
         return authTrapEnabled ;
     }
@@ -755,6 +774,7 @@
      *
      * @param enabled Flag indicating if traps need to be sent.
      */
+    @Override
     public void setAuthTrapEnabled(boolean enabled) {
         authTrapEnabled = enabled ;
     }
@@ -772,6 +792,7 @@
      *
      * @return <CODE>true</CODE> if responses are sent.
      */
+    @Override
     public boolean getAuthRespEnabled() {
         return authRespEnabled ;
     }
@@ -782,6 +803,7 @@
      *
      * @param enabled Flag indicating if responses need to be sent.
      */
+    @Override
     public void setAuthRespEnabled(boolean enabled) {
         authRespEnabled = enabled ;
     }
@@ -793,6 +815,7 @@
      *
      * @return The OID in string format "x.x.x.x".
      */
+    @Override
     public String getEnterpriseOid() {
         return enterpriseOid.toString() ;
     }
@@ -804,6 +827,7 @@
      *
      * @exception IllegalArgumentException The string format is incorrect
      */
+    @Override
     public void setEnterpriseOid(String oid) throws IllegalArgumentException {
         enterpriseOid = new SnmpOid(oid) ;
     }
@@ -813,11 +837,12 @@
      *
      * @return An array of MIB names.
      */
+    @Override
     public String[] getMibs() {
         String[] result = new String[mibs.size()] ;
         int i = 0 ;
-        for (Enumeration e = mibs.elements() ; e.hasMoreElements() ;) {
-            SnmpMibAgent mib = (SnmpMibAgent)e.nextElement() ;
+        for (Enumeration<SnmpMibAgent> e = mibs.elements() ; e.hasMoreElements() ;) {
+            SnmpMibAgent mib = e.nextElement() ;
             result[i++] = mib.getMibName();
         }
         return result ;
@@ -831,6 +856,7 @@
      *
      * @return The <CODE>snmpOutTraps</CODE> value.
      */
+    @Override
     public Long getSnmpOutTraps() {
         return new Long(snmpOutTraps);
     }
@@ -840,6 +866,7 @@
      *
      * @return The <CODE>snmpOutGetResponses</CODE> value.
      */
+    @Override
     public Long getSnmpOutGetResponses() {
         return new Long(snmpOutGetResponses);
     }
@@ -849,6 +876,7 @@
      *
      * @return The <CODE>snmpOutGenErrs</CODE> value.
      */
+    @Override
     public Long getSnmpOutGenErrs() {
         return new Long(snmpOutGenErrs);
     }
@@ -858,6 +886,7 @@
      *
      * @return The <CODE>snmpOutBadValues</CODE> value.
      */
+    @Override
     public Long getSnmpOutBadValues() {
         return new Long(snmpOutBadValues);
     }
@@ -867,6 +896,7 @@
      *
      * @return The <CODE>snmpOutNoSuchNames</CODE> value.
      */
+    @Override
     public Long getSnmpOutNoSuchNames() {
         return new Long(snmpOutNoSuchNames);
     }
@@ -876,6 +906,7 @@
      *
      * @return The <CODE>snmpOutTooBigs</CODE> value.
      */
+    @Override
     public Long getSnmpOutTooBigs() {
         return new Long(snmpOutTooBigs);
     }
@@ -885,6 +916,7 @@
      *
      * @return The <CODE>snmpInASNParseErrs</CODE> value.
      */
+    @Override
     public Long getSnmpInASNParseErrs() {
         return new Long(snmpInASNParseErrs);
     }
@@ -894,6 +926,7 @@
      *
      * @return The <CODE>snmpInBadCommunityUses</CODE> value.
      */
+    @Override
     public Long getSnmpInBadCommunityUses() {
         return new Long(snmpInBadCommunityUses);
     }
@@ -904,6 +937,7 @@
      *
      * @return The <CODE>snmpInBadCommunityNames</CODE> value.
      */
+    @Override
     public Long getSnmpInBadCommunityNames() {
         return new Long(snmpInBadCommunityNames);
     }
@@ -913,6 +947,7 @@
      *
      * @return The <CODE>snmpInBadVersions</CODE> value.
      */
+    @Override
     public Long getSnmpInBadVersions() {
         return new Long(snmpInBadVersions);
     }
@@ -922,6 +957,7 @@
      *
      * @return The <CODE>snmpOutPkts</CODE> value.
      */
+    @Override
     public Long getSnmpOutPkts() {
         return new Long(snmpOutPkts);
     }
@@ -931,6 +967,7 @@
      *
      * @return The <CODE>snmpInPkts</CODE> value.
      */
+    @Override
     public Long getSnmpInPkts() {
         return new Long(snmpInPkts);
     }
@@ -940,6 +977,7 @@
      *
      * @return The <CODE>snmpInGetRequests</CODE> value.
      */
+    @Override
     public Long getSnmpInGetRequests() {
         return new Long(snmpInGetRequests);
     }
@@ -949,6 +987,7 @@
      *
      * @return The <CODE>snmpInGetNexts</CODE> value.
      */
+    @Override
     public Long getSnmpInGetNexts() {
         return new Long(snmpInGetNexts);
     }
@@ -958,6 +997,7 @@
      *
      * @return The <CODE>snmpInSetRequests</CODE> value.
      */
+    @Override
     public Long getSnmpInSetRequests() {
         return new Long(snmpInSetRequests);
     }
@@ -967,6 +1007,7 @@
      *
      * @return The <CODE>snmpInTotalSetVars</CODE> value.
      */
+    @Override
     public Long getSnmpInTotalSetVars() {
         return new Long(snmpInTotalSetVars);
     }
@@ -976,6 +1017,7 @@
      *
      * @return The <CODE>snmpInTotalReqVars</CODE> value.
      */
+    @Override
     public Long getSnmpInTotalReqVars() {
         return new Long(snmpInTotalReqVars);
     }
@@ -988,6 +1030,7 @@
      *
      * @since 1.5
      */
+    @Override
     public Long getSnmpSilentDrops() {
         return new Long(snmpSilentDrops);
     }
@@ -1000,6 +1043,7 @@
      *
      * @since 1.5
      */
+    @Override
     public Long getSnmpProxyDrops() {
         return new Long(0);
     }
@@ -1027,6 +1071,7 @@
      *
      * @exception java.lang.Exception
      */
+    @Override
     public ObjectName preRegister(MBeanServer server, ObjectName name)
         throws java.lang.Exception {
 
@@ -1040,6 +1085,7 @@
     /**
      * Not used in this context.
      */
+    @Override
     public void postRegister (Boolean registrationDone) {
         super.postRegister(registrationDone);
     }
@@ -1047,6 +1093,7 @@
     /**
      * Not used in this context.
      */
+    @Override
     public void preDeregister() throws java.lang.Exception {
         super.preDeregister();
     }
@@ -1054,6 +1101,7 @@
     /**
      * Not used in this context.
      */
+    @Override
     public void postDeregister() {
         super.postDeregister();
     }
@@ -1067,6 +1115,7 @@
      *
      * @exception IllegalArgumentException If the parameter is null.
      */
+    @Override
     public SnmpMibHandler addMib(SnmpMibAgent mib)
         throws IllegalArgumentException {
         if (mib == null) {
@@ -1097,6 +1146,7 @@
      *
      * @since 1.5
      */
+    @Override
     public SnmpMibHandler addMib(SnmpMibAgent mib, SnmpOid[] oids)
         throws IllegalArgumentException {
         if (mib == null) {
@@ -1129,6 +1179,7 @@
      *
      * @since 1.5
      */
+    @Override
     public SnmpMibHandler addMib(SnmpMibAgent mib, String contextName)
         throws IllegalArgumentException {
         return addMib(mib);
@@ -1150,10 +1201,12 @@
      *
      * @since 1.5
      */
+    @Override
     public SnmpMibHandler addMib(SnmpMibAgent mib,
                                  String contextName,
                                  SnmpOid[] oids)
         throws IllegalArgumentException {
+
         return addMib(mib, oids);
     }
 
@@ -1171,6 +1224,7 @@
      *
      * @since 1.5
      */
+    @Override
     public boolean removeMib(SnmpMibAgent mib, String contextName) {
         return removeMib(mib);
     }
@@ -1183,6 +1237,7 @@
      * @return <CODE>true</CODE> if the specified <CODE>mib</CODE> was a MIB
      *         included in the SNMP MIB handler, <CODE>false</CODE> otherwise.
      */
+    @Override
     public boolean removeMib(SnmpMibAgent mib) {
         root.unregister(mib);
         return (mibs.removeElement(mib)) ;
@@ -1199,6 +1254,7 @@
      *
      * @since 1.5
      */
+    @Override
     public boolean removeMib(SnmpMibAgent mib, SnmpOid[] oids) {
         root.unregister(mib, oids);
         return (mibs.removeElement(mib)) ;
@@ -1216,6 +1272,7 @@
      *
      * @since 1.5
      */
+    @Override
     public boolean removeMib(SnmpMibAgent mib,
                              String contextName,
                              SnmpOid[] oids) {
@@ -1228,6 +1285,7 @@
     /**
      * Creates the datagram socket.
      */
+    @Override
     protected void doBind()
         throws CommunicationException, InterruptedException {
 
@@ -1255,6 +1313,7 @@
      * that port number was 0.
      * @return the actual port to which the adaptor is bound.
      **/
+    @Override
     public int getPort() {
         synchronized (this) {
             if (socket != null) return socket.getLocalPort();
@@ -1265,6 +1324,7 @@
     /**
      * Closes the datagram socket.
      */
+    @Override
     protected void doUnbind()
         throws CommunicationException, InterruptedException {
         if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
@@ -1282,12 +1342,17 @@
         closeInformSocketIfNeeded() ;
     }
 
-    void createSnmpRequestHandler(SnmpAdaptorServer server, int id,
-                                  DatagramSocket s, DatagramPacket p,
-                                  SnmpMibTree tree, Vector m, Object a,
-                                  SnmpPduFactory factory,
-                                  SnmpUserDataFactory dataFactory,
-                                  MBeanServer f, ObjectName n) {
+    private void createSnmpRequestHandler(SnmpAdaptorServer server,
+                                          int id,
+                                          DatagramSocket s,
+                                          DatagramPacket p,
+                                          SnmpMibTree tree,
+                                          Vector<SnmpMibAgent> m,
+                                          InetAddressAcl a,
+                                          SnmpPduFactory factory,
+                                          SnmpUserDataFactory dataFactory,
+                                          MBeanServer f,
+                                          ObjectName n) {
         final SnmpRequestHandler handler =
             new SnmpRequestHandler(this, id, s, p, tree, m, a, factory,
                                    dataFactory, f, n);
@@ -1298,6 +1363,7 @@
      * Reads a packet from the datagram socket and creates a request
      * handler which decodes and processes the request.
      */
+    @Override
     protected void doReceive()
         throws CommunicationException, InterruptedException {
 
@@ -1339,13 +1405,14 @@
         }
     }
 
+    @Override
     protected void doError(Exception e) throws CommunicationException {
-        return;
     }
 
     /**
      * Not used in this context.
      */
+    @Override
     protected void doProcess()
         throws CommunicationException, InterruptedException {
     }
@@ -1357,6 +1424,7 @@
      * We attempt only once...
      * @return 1
      **/
+    @Override
     protected int getBindTries() {
         return 1;
     }
@@ -1368,6 +1436,7 @@
      * Has no effect if this SNMP protocol adaptor is <CODE>OFFLINE</CODE> or
      * <CODE>STOPPING</CODE>.
      */
+    @Override
     public void stop(){
 
         final int port = getPort();
@@ -1424,6 +1493,7 @@
      * @exception SnmpStatusException If the trap exceeds the limit defined
      *            by <CODE>bufferSize</CODE>.
      */
+    @Override
     public void snmpV1Trap(int generic, int specific,
                            SnmpVarBindList varBindList)
         throws IOException, SnmpStatusException {
@@ -1499,6 +1569,7 @@
      * @exception SnmpStatusException If the trap exceeds the limit defined
      *            by <CODE>bufferSize</CODE>.
      */
+    @Override
     public void snmpV1Trap(InetAddress addr, String cs, int generic,
                            int specific, SnmpVarBindList varBindList)
         throws IOException, SnmpStatusException {
@@ -1617,6 +1688,7 @@
      *
      * @since 1.5
      */
+    @Override
     public void snmpV1Trap(SnmpPeer peer,
                            SnmpIpAddress agentAddr,
                            SnmpOid enterpOid,
@@ -1625,6 +1697,7 @@
                            SnmpVarBindList varBindList,
                            SnmpTimeticks time)
         throws IOException, SnmpStatusException {
+
         SnmpParameters p = (SnmpParameters) peer.getParams();
         snmpV1Trap(peer.getDestAddr(),
                    peer.getDestPort(),
@@ -1745,11 +1818,13 @@
      *
      * @since 1.5
      */
+    @Override
     public void snmpV2Trap(SnmpPeer peer,
                            SnmpOid trapOid,
                            SnmpVarBindList varBindList,
                            SnmpTimeticks time)
         throws IOException, SnmpStatusException {
+
         SnmpParameters p = (SnmpParameters) peer.getParams();
         snmpV2Trap(peer.getDestAddr(),
                    peer.getDestPort(),
@@ -1781,6 +1856,7 @@
      * @exception SnmpStatusException If the trap exceeds the limit defined
      *            by <CODE>bufferSize</CODE>.
      */
+    @Override
     public void snmpV2Trap(SnmpOid trapOid, SnmpVarBindList varBindList)
         throws IOException, SnmpStatusException {
 
@@ -1801,7 +1877,7 @@
 
         SnmpVarBindList fullVbl ;
         if (varBindList != null)
-            fullVbl = (SnmpVarBindList)varBindList.clone() ;
+            fullVbl = varBindList.clone() ;
         else
             fullVbl = new SnmpVarBindList(2) ;
         SnmpTimeticks sysUpTimeValue = new SnmpTimeticks(getSysUpTime()) ;
@@ -1840,6 +1916,7 @@
      * @exception SnmpStatusException If the trap exceeds the limit
      *            defined by <CODE>bufferSize</CODE>.
      */
+    @Override
     public void snmpV2Trap(InetAddress addr, String cs, SnmpOid trapOid,
                            SnmpVarBindList varBindList)
         throws IOException, SnmpStatusException {
@@ -1865,7 +1942,7 @@
 
         SnmpVarBindList fullVbl ;
         if (varBindList != null)
-            fullVbl = (SnmpVarBindList)varBindList.clone() ;
+            fullVbl = varBindList.clone() ;
         else
             fullVbl = new SnmpVarBindList(2) ;
         SnmpTimeticks sysUpTimeValue = new SnmpTimeticks(getSysUpTime()) ;
@@ -1964,12 +2041,12 @@
 
         SnmpVarBindList fullVbl ;
         if (varBindList != null)
-            fullVbl = (SnmpVarBindList)varBindList.clone() ;
+            fullVbl = varBindList.clone() ;
         else
             fullVbl = new SnmpVarBindList(2) ;
 
         // Only difference with other
-        SnmpTimeticks sysUpTimeValue = null;
+        SnmpTimeticks sysUpTimeValue;
         if(time != null)
             sysUpTimeValue = time;
         else
@@ -2002,6 +2079,7 @@
      *
      * @since 1.5
      */
+    @Override
     public void snmpPduTrap(InetAddress address, SnmpPduPacket pdu)
             throws IOException, SnmpStatusException {
 
@@ -2021,6 +2099,7 @@
      * by <CODE>bufferSize</CODE>.
      * @since 1.5
      */
+    @Override
     public void snmpPduTrap(SnmpPeer peer,
                             SnmpPduPacket pdu)
         throws IOException, SnmpStatusException {
@@ -2066,13 +2145,12 @@
         int sendingCount = 0 ;
         openTrapSocketIfNeeded() ;
         if (ipacl != null) {
-            Enumeration ed = ((InetAddressAcl)ipacl).getTrapDestinations() ;
+            Enumeration<InetAddress> ed = ipacl.getTrapDestinations() ;
             while (ed.hasMoreElements()) {
-                msg.address = (InetAddress)ed.nextElement() ;
-                Enumeration ec = ((InetAddressAcl)ipacl).
-                    getTrapCommunities(msg.address) ;
+                msg.address = ed.nextElement() ;
+                Enumeration<String> ec = ipacl.getTrapCommunities(msg.address) ;
                 while (ec.hasMoreElements()) {
-                    msg.community = ((String)ec.nextElement()).getBytes() ;
+                    msg.community = ec.nextElement().getBytes() ;
                     try {
                         sendTrapMessage(msg) ;
                         sendingCount++ ;
@@ -2164,6 +2242,7 @@
      */
     private void sendTrapMessage(SnmpMessage msg)
         throws IOException, SnmpTooBigException {
+
         byte[] buffer = new byte[bufferSize] ;
         DatagramPacket packet = new DatagramPacket(buffer, buffer.length) ;
         int encodingLength = msg.encodeMessage(buffer) ;
@@ -2245,8 +2324,10 @@
      * @exception SnmpStatusException If the inform request exceeds the
      *            limit defined by <CODE>bufferSize</CODE>.
      */
-    public Vector snmpInformRequest(SnmpInformHandler cb, SnmpOid trapOid,
-                                    SnmpVarBindList varBindList)
+    @Override
+    public Vector<SnmpInformRequest> snmpInformRequest(SnmpInformHandler cb,
+                                                       SnmpOid trapOid,
+                                                       SnmpVarBindList varBindList)
         throws IllegalStateException, IOException, SnmpStatusException {
 
         if (!isActive()) {
@@ -2263,7 +2344,7 @@
         //
         SnmpVarBindList fullVbl ;
         if (varBindList != null)
-            fullVbl = (SnmpVarBindList)varBindList.clone() ;
+            fullVbl = varBindList.clone() ;
         else
             fullVbl = new SnmpVarBindList(2) ;
         SnmpTimeticks sysUpTimeValue = new SnmpTimeticks(getSysUpTime()) ;
@@ -2277,17 +2358,16 @@
 
         // Now send the SNMP message to each destination
         //
-        Vector<SnmpInformRequest> informReqList = new Vector<SnmpInformRequest>();
-        InetAddress addr = null;
-        String cs = null;
+        Vector<SnmpInformRequest> informReqList = new Vector<>();
+        InetAddress addr;
+        String cs;
         if (ipacl != null) {
-            Enumeration ed = ((InetAddressAcl)ipacl).getInformDestinations() ;
+            Enumeration<InetAddress> ed = ipacl.getInformDestinations() ;
             while (ed.hasMoreElements()) {
-                addr = (InetAddress)ed.nextElement() ;
-                Enumeration ec = ((InetAddressAcl)ipacl).
-                    getInformCommunities(addr) ;
+                addr = ed.nextElement() ;
+                Enumeration<String> ec = ipacl.getInformCommunities(addr) ;
                 while (ec.hasMoreElements()) {
-                    cs = (String)ec.nextElement() ;
+                    cs = ec.nextElement() ;
                     informReqList.addElement(
                        informSession.makeAsyncRequest(addr, cs, cb,
                                               fullVbl,getInformPort())) ;
@@ -2330,6 +2410,7 @@
      * @exception SnmpStatusException If the inform request exceeds the
      *            limit defined by <CODE>bufferSize</CODE>.
      */
+    @Override
     public SnmpInformRequest snmpInformRequest(InetAddress addr,
                                                String cs,
                                                SnmpInformHandler cb,
@@ -2380,11 +2461,13 @@
      *
      * @since 1.5
      */
+    @Override
     public SnmpInformRequest snmpInformRequest(SnmpPeer peer,
                                                SnmpInformHandler cb,
                                                SnmpOid trapOid,
                                                SnmpVarBindList varBindList)
         throws IllegalStateException, IOException, SnmpStatusException {
+
         SnmpParameters p = (SnmpParameters) peer.getParams();
         return snmpInformRequest(peer.getDestAddr(),
                                  peer.getDestPort(),
@@ -2401,9 +2484,9 @@
      * @param protocolVersion The protocol version.
      * @param reqPduType The pdu type.
      */
-    public static final int mapErrorStatus(int errorStatus,
-                                           int protocolVersion,
-                                           int reqPduType) {
+    public static int mapErrorStatus(int errorStatus,
+                                     int protocolVersion,
+                                     int reqPduType) {
         return SnmpSubRequestHandler.mapErrorStatus(errorStatus,
                                                     protocolVersion,
                                                     reqPduType);
@@ -2416,6 +2499,7 @@
                                                 SnmpOid trapOid,
                                                 SnmpVarBindList varBindList)
         throws IllegalStateException, IOException, SnmpStatusException {
+
         if (!isActive()) {
             throw new IllegalStateException(
               "Start SNMP adaptor server before carrying out this operation");
@@ -2430,7 +2514,7 @@
         //
         SnmpVarBindList fullVbl ;
         if (varBindList != null)
-            fullVbl = (SnmpVarBindList)varBindList.clone() ;
+            fullVbl = varBindList.clone() ;
         else
             fullVbl = new SnmpVarBindList(2) ;
         SnmpTimeticks sysUpTimeValue = new SnmpTimeticks(getSysUpTime()) ;
@@ -2489,6 +2573,7 @@
      * references to the object.
      * <P>Closes the datagram socket associated to this SNMP protocol adaptor.
      */
+    @Override
     protected void finalize() {
         try {
             if (socket != null) {
@@ -2511,6 +2596,7 @@
     /**
      * Returns the string used in debug traces.
      */
+    @Override
     String makeDebugTag() {
         return "SnmpAdaptorServer["+ getProtocol() + ":" + getPort() + "]";
     }
@@ -2615,13 +2701,13 @@
         // This is for transient structures to be initialized to specific
         // default values.
         //
-        mibs      = new Vector<SnmpMibAgent>() ;
+        mibs      = new Vector<>() ;
     }
 
     /**
      * Common initializations.
      */
-    private void init(Object acl, int p, InetAddress a) {
+    private void init(InetAddressAcl acl, int p, InetAddress a) {
 
         root= new SnmpMibTree();
 
@@ -2650,6 +2736,7 @@
         return root.getAgentMib(oid);
     }
 
+    @Override
     protected Thread createMainThread() {
         final Thread t = super.createMainThread();
         t.setDaemon(true);
--- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServerMBean.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServerMBean.java	Wed Nov 28 15:14:47 2012 +0100
@@ -140,6 +140,7 @@
      *
      * @return The string "snmp".
      */
+    @Override
     public String getProtocol();
 
     /**
@@ -636,7 +637,8 @@
      * @exception IOException An I/O error occurred while sending the inform request.
      * @exception SnmpStatusException If the inform request exceeds the limit defined by <CODE>bufferSize</CODE>.
      */
-    public Vector snmpInformRequest(SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList)
+    public Vector<?> snmpInformRequest(SnmpInformHandler cb, SnmpOid trapOid,
+            SnmpVarBindList varBindList)
         throws IllegalStateException, IOException, SnmpStatusException;
 
     /**
--- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpMibTree.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpMibTree.java	Wed Nov 28 15:14:47 2012 +0100
@@ -125,7 +125,7 @@
             TreeNode node= retrieveChild(oid, cursor);
             if (node == null)
                 return this;
-            if (children.size() == 0) {
+            if (children.isEmpty()) {
                 // In this case, the node does not have any children. So no point to
                 // continue the search ...
                 return node;
@@ -149,24 +149,24 @@
 
         public void printTree(String ident) {
 
-            StringBuffer buff= new StringBuffer();
+            StringBuilder buff= new StringBuilder();
             if (agents == null) {
                 return;
             }
 
-            for(Enumeration e= agents.elements(); e.hasMoreElements(); ) {
-                SnmpMibAgent mib= (SnmpMibAgent) e.nextElement();
+            for(Enumeration<SnmpMibAgent> e= agents.elements(); e.hasMoreElements(); ) {
+                SnmpMibAgent mib= e.nextElement();
                 if (mib == null)
                     buff.append("empty ");
                 else
-                    buff.append(mib.getMibName() + " ");
+                    buff.append(mib.getMibName()).append(" ");
             }
             ident+= " ";
             if (children == null) {
                 return;
             }
-            for(Enumeration e= children.elements(); e.hasMoreElements(); ) {
-                TreeNode node= (TreeNode) e.nextElement();
+            for(Enumeration<TreeNode> e= children.elements(); e.hasMoreElements(); ) {
+                TreeNode node= e.nextElement();
                 node.printTree(ident);
             }
         }
@@ -185,7 +185,7 @@
         }
 
         private void removeAgentFully(SnmpMibAgent agent) {
-            Vector<TreeNode> v = new Vector<TreeNode>();
+            Vector<TreeNode> v = new Vector<>();
             for(Enumeration<TreeNode> e= children.elements();
                 e.hasMoreElements(); ) {
 
@@ -212,9 +212,9 @@
 
         }
 
-      private void setAgent(SnmpMibAgent agent) {
-        this.agent = agent;
-      }
+        private void setAgent(SnmpMibAgent agent) {
+            this.agent = agent;
+        }
 
         private void registerNode(long[] oid, int cursor, SnmpMibAgent agent) {
 
@@ -247,20 +247,20 @@
         private TreeNode retrieveChild(long[] oid, int current) {
             long theValue= oid[current];
 
-            for(Enumeration e= children.elements(); e.hasMoreElements(); ) {
-                TreeNode node= (TreeNode) e.nextElement();
+            for(Enumeration<TreeNode> e= children.elements(); e.hasMoreElements(); ) {
+                TreeNode node= e.nextElement();
                 if (node.match(theValue))
                     return node;
             }
             return null;
         }
 
-        final private boolean match(long value) {
+        private boolean match(long value) {
             return (nodeValue == value) ? true : false;
         }
 
-        private Vector<TreeNode> children= new Vector<TreeNode>();
-        private Vector<SnmpMibAgent> agents= new Vector<SnmpMibAgent>();
+        private Vector<TreeNode> children= new Vector<>();
+        private Vector<SnmpMibAgent> agents= new Vector<>();
         private long nodeValue;
         private SnmpMibAgent agent;
         private TreeNode parent;
--- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java	Wed Nov 28 15:14:47 2012 +0100
@@ -71,9 +71,9 @@
 
 class SnmpRequestHandler extends ClientHandler implements SnmpDefinitions {
 
-    private transient DatagramSocket      socket = null ;
-    private transient DatagramPacket      packet = null ;
-    private transient Vector              mibs = null ;
+    private transient DatagramSocket       socket = null ;
+    private transient DatagramPacket       packet = null ;
+    private transient Vector<SnmpMibAgent> mibs = null ;
 
     /**
      * Contains the list of sub-requests associated to the current request.
@@ -85,7 +85,7 @@
      */
     private transient SnmpMibTree root;
 
-    private transient Object              ipacl = null ;
+    private transient InetAddressAcl      ipacl = null ;
     private transient SnmpPduFactory      pduFactory = null ;
     private transient SnmpUserDataFactory userDataFactory = null ;
     private transient SnmpAdaptorServer adaptor = null;
@@ -94,7 +94,8 @@
      */
     public SnmpRequestHandler(SnmpAdaptorServer server, int id,
                               DatagramSocket s, DatagramPacket p,
-                              SnmpMibTree tree, Vector m, Object a,
+                              SnmpMibTree tree, Vector<SnmpMibAgent> m,
+                              InetAddressAcl a,
                               SnmpPduFactory factory,
                               SnmpUserDataFactory dataFactory,
                               MBeanServer f, ObjectName n)
@@ -108,8 +109,8 @@
         socket = s;
         packet = p;
         root= tree;
-        mibs = (Vector) m.clone();
-        subs= new Hashtable<SnmpMibAgent, SnmpSubRequestHandler>(mibs.size());
+        mibs = new Vector<>(m);
+        subs= new Hashtable<>(mibs.size());
         ipacl = a;
         pduFactory = factory ;
         userDataFactory = dataFactory ;
@@ -121,6 +122,7 @@
      * back to the client.
      * Note: we overwrite 'packet' with the response bytes.
      */
+    @Override
     public void doRun() {
 
         // Trace the input packet
@@ -243,7 +245,7 @@
 
         // Transform the request message into a request pdu
         //
-        SnmpPduPacket reqPdu = null ;
+        SnmpPduPacket reqPdu;
         Object userData = null;
         try {
             reqPdu = (SnmpPduPacket)pduFactory.decodeSnmpPdu(reqMsg) ;
@@ -306,7 +308,7 @@
                         SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                             "makeResponseMessage", "fail on element" + pos);
                     }
-                    int old= 0;
+                    int old;
                     while (true) {
                         try {
                             respPdu = reduceResponsePdu(reqPdu, respPdu, pos) ;
@@ -580,20 +582,18 @@
                                             Object userData) {
 
         int errorStatus = SnmpDefinitions.snmpRspNoError ;
-        int nbSubRequest= subs.size();
 
-        int i=0;
+        int i;
         // If it's a set request, we must first check any varBind
         //
         if (req.type == pduSetRequestPdu) {
 
             i=0;
-            for(Enumeration e= subs.elements(); e.hasMoreElements() ; i++) {
+            for(Enumeration<SnmpSubRequestHandler> e= subs.elements(); e.hasMoreElements() ; i++) {
                 // Indicate to the sub request that a check must be invoked ...
                 // OK we should have defined out own tag for that !
                 //
-                SnmpSubRequestHandler sub= (SnmpSubRequestHandler)
-                    e.nextElement();
+                SnmpSubRequestHandler sub= e.nextElement();
                 sub.setUserData(userData);
                 sub.type= pduWalkRequest;
 
@@ -618,8 +618,8 @@
         // Let's start the sub-requests.
         //
         i=0;
-        for(Enumeration e= subs.elements(); e.hasMoreElements() ;i++) {
-            SnmpSubRequestHandler sub= (SnmpSubRequestHandler) e.nextElement();
+        for(Enumeration<SnmpSubRequestHandler> e= subs.elements(); e.hasMoreElements() ;i++) {
+            SnmpSubRequestHandler sub= e.nextElement();
         /* NPCTE fix for bugId 4492741, esc 0, 16-August 2001 */
             sub.setUserData(userData);
         /* end of NPCTE fix for bugId 4492741 */
@@ -650,7 +650,7 @@
     private SnmpPduPacket turboProcessingGetSet(SnmpPduRequest req,
                                                 Object userData) {
 
-        int errorStatus = SnmpDefinitions.snmpRspNoError ;
+        int errorStatus;
         SnmpSubRequestHandler sub = subs.elements().nextElement();
         sub.setUserData(userData);
 
@@ -707,7 +707,7 @@
     private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                                  Object userData) {
 
-        SnmpVarBind[] respVarBindList = null ;
+        SnmpVarBind[] respVarBindList;
 
         // RFC 1905, Section 4.2.3, p14
         int L = req.varBindList.length ;
@@ -761,7 +761,7 @@
      */
     private boolean checkPduType(SnmpPduPacket pdu) {
 
-        boolean result = true ;
+        boolean result;
 
         switch(pdu.type) {
 
@@ -798,8 +798,7 @@
         //
         if (ipacl != null) {
             if (pdu.type == SnmpDefinitions.pduSetRequestPdu) {
-                if (!((InetAddressAcl)ipacl).
-                    checkWritePermission(pdu.address, community)) {
+                if (!ipacl.checkWritePermission(pdu.address, community)) {
                     if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                         SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                            "checkAcl", "sender is " + pdu.address +
@@ -820,7 +819,7 @@
                 }
             }
             else {
-                if (!((InetAddressAcl)ipacl).checkReadPermission(pdu.address, community)) {
+                if (!ipacl.checkReadPermission(pdu.address, community)) {
                     if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                         SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                            "checkAcl", "sender is " + pdu.address +
@@ -854,7 +853,7 @@
         if (response != null) {
             SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
             snmpServer.incSnmpInBadCommunityUses(1) ;
-            if (((InetAddressAcl)ipacl).checkCommunity(community) == false)
+            if (ipacl.checkCommunity(community) == false)
                 snmpServer.incSnmpInBadCommunityNames(1) ;
         }
 
@@ -873,7 +872,7 @@
         result.port = reqPdu.port ;
         result.version = reqPdu.version ;
         result.community = reqPdu.community ;
-        result.type = result.pduGetResponsePdu ;
+        result.type = SnmpPduRequest.pduGetResponsePdu ;
         result.requestId = reqPdu.requestId ;
         result.errorStatus = SnmpDefinitions.snmpRspNoError ;
         result.errorIndex = 0 ;
@@ -904,7 +903,7 @@
     private SnmpMessage newTooBigMessage(SnmpMessage reqMsg)
         throws SnmpTooBigException {
         SnmpMessage result = null ;
-        SnmpPduPacket reqPdu = null ;
+        SnmpPduPacket reqPdu;
 
         try {
             reqPdu = (SnmpPduPacket)pduFactory.decodeSnmpPdu(reqMsg) ;
@@ -941,7 +940,7 @@
 
         // Reduction can be attempted only on bulk response
         //
-        if (req.type != req.pduGetBulkRequestPdu) {
+        if (req.type != SnmpPduPacket.pduGetBulkRequestPdu) {
             if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                 SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                    "reduceResponsePdu", "cannot remove anything");
@@ -961,7 +960,7 @@
         //   * when it is 0 (in fact, acceptedVbCount is not available),
         //     we split the varbindlist by 2.
         //
-        int vbCount = resp.varBindList.length ;
+        int vbCount;
         if (acceptedVbCount >= 3)
             vbCount = Math.min(acceptedVbCount - 1, resp.varBindList.length) ;
         else if (acceptedVbCount == 1)
@@ -998,7 +997,7 @@
     private void splitRequest(SnmpPduRequest req) {
 
         int nbAgents= mibs.size();
-        SnmpMibAgent agent= (SnmpMibAgent) mibs.firstElement();
+        SnmpMibAgent agent = mibs.firstElement();
         if (nbAgents == 1) {
             // Take all the oids contained in the request and
             //
@@ -1010,8 +1009,8 @@
         // to all agents
         //
         if (req.type == pduGetNextRequestPdu) {
-            for(Enumeration e= mibs.elements(); e.hasMoreElements(); ) {
-                SnmpMibAgent ag= (SnmpMibAgent) e.nextElement();
+            for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
+                final SnmpMibAgent ag= e.nextElement();
                 subs.put(ag, new SnmpSubNextRequestHandler(adaptor, ag, req));
             }
             return;
@@ -1047,8 +1046,8 @@
                                   int R) {
         // Send the getBulk to all agents
         //
-        for(Enumeration e= mibs.elements(); e.hasMoreElements(); ) {
-            SnmpMibAgent agent = (SnmpMibAgent) e.nextElement();
+        for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
+            final SnmpMibAgent agent = e.nextElement();
 
             if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                 SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
@@ -1064,7 +1063,6 @@
                                                    maxRepetitions,
                                                    R));
         }
-        return;
     }
 
     private SnmpPduPacket mergeResponses(SnmpPduRequest req) {
@@ -1078,8 +1076,8 @@
         // Go through the list of subrequests and concatenate.
         // Hopefully, by now all the sub-requests should be finished
         //
-        for(Enumeration e= subs.elements(); e.hasMoreElements();) {
-            SnmpSubRequestHandler sub= (SnmpSubRequestHandler) e.nextElement();
+        for(Enumeration<SnmpSubRequestHandler> e= subs.elements(); e.hasMoreElements();) {
+            SnmpSubRequestHandler sub= e.nextElement();
             sub.updateResult(result);
         }
         return newValidResponsePdu(req,result);
@@ -1092,8 +1090,8 @@
         // Go through the list of subrequests and concatenate.
         // Hopefully, by now all the sub-requests should be finished
         //
-        for(Enumeration e= subs.elements(); e.hasMoreElements();) {
-            SnmpSubRequestHandler sub= (SnmpSubRequestHandler) e.nextElement();
+        for(Enumeration<SnmpSubRequestHandler> e= subs.elements(); e.hasMoreElements();) {
+            SnmpSubRequestHandler sub= e.nextElement();
             sub.updateResult(result);
         }
 
@@ -1127,19 +1125,21 @@
         // Go through the list of subrequests and concatenate.
         // Hopefully, by now all the sub-requests should be finished
         //
-        for(Enumeration e= subs.elements(); e.hasMoreElements();) {
-            SnmpSubRequestHandler sub= (SnmpSubRequestHandler) e.nextElement();
+        for(Enumeration<SnmpSubRequestHandler> e= subs.elements(); e.hasMoreElements();) {
+            SnmpSubRequestHandler sub= e.nextElement();
             sub.updateResult(result);
         }
 
         return result;
     }
 
+    @Override
     protected String makeDebugTag() {
         return "SnmpRequestHandler[" + adaptorServer.getProtocol() + ":" +
             adaptorServer.getPort() + "]";
     }
 
+    @Override
     Thread createThread(Runnable r) {
         return null;
     }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java	Wed Nov 28 15:14:47 2012 +0100
@@ -31,7 +31,6 @@
 // java import
 //
 import java.util.Enumeration;
-import java.util.Vector;
 import java.util.logging.Level;
 // jmx imports
 //
@@ -46,9 +45,6 @@
 //
 import static com.sun.jmx.defaults.JmxProperties.SNMP_ADAPTOR_LOGGER;
 import com.sun.jmx.snmp.agent.SnmpMibAgent;
-import com.sun.jmx.snmp.agent.SnmpMibRequest;
-import com.sun.jmx.snmp.ThreadContext;
-import com.sun.jmx.snmp.daemon.SnmpAdaptorServer;
 import com.sun.jmx.snmp.internal.SnmpIncomingRequest;
 import com.sun.jmx.snmp.ThreadContext;
 
@@ -85,6 +81,7 @@
         init(server, req, nonRepeat, maxRepeat, R);
     }
 
+    @Override
     public void run() {
 
         size= varBind.size();
@@ -259,11 +256,12 @@
      * successful. As such the method getErrorIndex or getErrorStatus should be
      * called.
      */
+    @Override
     protected void updateResult(SnmpVarBind[] result) {
         // we can assume that the run method is over ...
         //
 
-        final Enumeration e= varBind.elements();
+        final Enumeration<SnmpVarBind> e= varBind.elements();
         final int max= result.length;
 
         // First go through all the values once ...
@@ -284,7 +282,7 @@
                 continue;
             }
 
-            final SnmpVarBind element= (SnmpVarBind) e.nextElement();
+            final SnmpVarBind element= e.nextElement();
 
             if (element == null) continue;
             if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
@@ -309,7 +307,7 @@
                     return;
                 if (e.hasMoreElements() ==false)
                     return;
-                final SnmpVarBind element= (SnmpVarBind) e.nextElement();
+                final SnmpVarBind element= e.nextElement();
 
                 if (element == null) continue;
                 if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
--- a/jdk/src/share/classes/com/sun/jmx/snmp/defaults/SnmpProperties.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/defaults/SnmpProperties.java	Wed Nov 28 15:14:47 2012 +0100
@@ -60,7 +60,7 @@
         InputStream is = new FileInputStream(file);
         props.load(is);
         is.close();
-        for (final Enumeration e = props.keys(); e.hasMoreElements() ; ) {
+        for (final Enumeration<?> e = props.keys(); e.hasMoreElements() ; ) {
             final String key = (String) e.nextElement();
             System.setProperty(key,props.getProperty(key));
         }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/tasks/ThreadService.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/tasks/ThreadService.java	Wed Nov 28 15:14:47 2012 +0100
@@ -199,7 +199,7 @@
 
                 // re-init
                 this.setPriority(priority);
-                this.interrupted();
+                Thread.interrupted();
                 this.setContextClassLoader(cloader);
             }
         }
--- a/jdk/src/share/classes/sun/management/snmp/AdaptorBootstrap.java	Wed Nov 28 05:18:57 2012 -0800
+++ b/jdk/src/share/classes/sun/management/snmp/AdaptorBootstrap.java	Wed Nov 28 15:14:47 2012 +0100
@@ -127,13 +127,13 @@
             if (log.isDebugOn())
                 log.debug("getTargetList",Agent.getText("jmxremote.AdaptorBootstrap.getTargetList.processing"));
 
-            final Enumeration td = acl.getTrapDestinations();
+            final Enumeration<InetAddress> td = acl.getTrapDestinations();
             for (; td.hasMoreElements() ;) {
-                final InetAddress targetAddr = (InetAddress)td.nextElement();
-                final Enumeration tc =
+                final InetAddress targetAddr = td.nextElement();
+                final Enumeration<String> tc =
                     acl.getTrapCommunities(targetAddr);
                 for (;tc.hasMoreElements() ;) {
-                    final String community = (String)tc.nextElement();
+                    final String community = tc.nextElement();
                     final NotificationTarget target =
                         new NotificationTargetImpl(targetAddr,
                                                    defaultTrapPort,