jdk/src/share/classes/javax/management/remote/JMXConnectorFactory.java
changeset 1156 bbc2d15aaf7a
parent 715 f16baef3a20e
child 1510 e747d3193ef2
--- a/jdk/src/share/classes/javax/management/remote/JMXConnectorFactory.java	Wed Sep 03 14:31:17 2008 +0200
+++ b/jdk/src/share/classes/javax/management/remote/JMXConnectorFactory.java	Thu Sep 04 14:46:36 2008 +0200
@@ -268,6 +268,14 @@
         return conn;
     }
 
+    private static <K,V> Map<K,V> newHashMap() {
+        return new HashMap<K,V>();
+    }
+
+    private static <K> Map<K,Object> newHashMap(Map<K,?> map) {
+        return new HashMap<K,Object>(map);
+    }
+
     /**
      * <p>Creates a connector client for the connector server at the
      * given address.  The resultant client is not connected until its
@@ -300,16 +308,18 @@
     public static JMXConnector newJMXConnector(JMXServiceURL serviceURL,
                                                Map<String,?> environment)
             throws IOException {
-        Map<String, Object> envcopy;
+
+        final Map<String,Object> envcopy;
         if (environment == null)
-            envcopy = new HashMap<String, Object>();
+            envcopy = newHashMap();
         else {
             EnvHelp.checkAttributes(environment);
-            envcopy = new HashMap<String, Object>(environment);
+            envcopy = newHashMap(environment);
         }
 
         final ClassLoader loader = resolveClassLoader(envcopy);
-        final Class<JMXConnectorProvider> targetInterface = JMXConnectorProvider.class;
+        final Class<JMXConnectorProvider> targetInterface =
+                JMXConnectorProvider.class;
         final String protocol = serviceURL.getProtocol();
         final String providerClassName = "ClientProvider";
 
@@ -351,9 +361,10 @@
             }
         }
 
-        envcopy = Collections.unmodifiableMap(envcopy);
+        final Map<String,Object> fixedenv =
+                Collections.unmodifiableMap(envcopy);
 
-        return provider.newJMXConnector(serviceURL, envcopy);
+        return provider.newJMXConnector(serviceURL, fixedenv);
     }
 
     private static String resolvePkgs(Map env) throws JMXProviderException {
@@ -365,8 +376,8 @@
 
         if (pkgsObject == null)
             pkgsObject =
-                AccessController.doPrivileged(new PrivilegedAction<Object>() {
-                    public Object run() {
+                AccessController.doPrivileged(new PrivilegedAction<String>() {
+                    public String run() {
                         return System.getProperty(PROTOCOL_PROVIDER_PACKAGES);
                     }
                 });
@@ -423,8 +434,7 @@
     static <T> Iterator<T> getProviderIterator(final Class<T> providerClass,
                                                final ClassLoader loader) {
        ServiceLoader<T> serviceLoader =
-                ServiceLoader.load(providerClass,
-                loader);
+                ServiceLoader.load(providerClass, loader);
        return serviceLoader.iterator();
     }
 
@@ -528,8 +538,8 @@
         }
 
         if (loader == null)
-            loader =
-                AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+            loader = AccessController.doPrivileged(
+                    new PrivilegedAction<ClassLoader>() {
                         public ClassLoader run() {
                             return
                                 Thread.currentThread().getContextClassLoader();