synchronize with JDK changes
diff --git a/src/share/classes/javax/activation/CommandMap.java b/src/share/classes/javax/activation/CommandMap.java
index 79a2cbc..ab3c846 100644
--- a/src/share/classes/javax/activation/CommandMap.java
+++ b/src/share/classes/javax/activation/CommandMap.java
@@ -1,7 +1,7 @@
 /*
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  *
- * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 1997-2015 Sun Microsystems, Inc. All rights reserved.
  *
  * The contents of this file are subject to the terms of either the GNU
  * General Public License Version 2 only ("GPL") or the Common Development
@@ -34,10 +34,6 @@
  * holder.
  */
 
-/*
- * @(#)CommandMap.java	1.20 07/05/14
- */
-
 package javax.activation;
 
 import java.util.Map;
@@ -57,6 +53,7 @@
     private static Map<ClassLoader,CommandMap> map =
 				new WeakHashMap<ClassLoader,CommandMap>();
 
+
     /**
      * Get the default CommandMap.
      * <p>
@@ -106,10 +103,11 @@
 		// otherwise, we also allow it if this code and the
 		// factory come from the same (non-system) class loader (e.g.,
 		// the JAF classes were loaded with the applet classes).
-		if (CommandMap.class.getClassLoader() == null ||
-		    CommandMap.class.getClassLoader() !=
-			    commandMap.getClass().getClassLoader())
+		ClassLoader cl = CommandMap.class.getClassLoader();
+		if (cl == null || cl.getParent() == null ||
+		    cl != commandMap.getClass().getClassLoader()) {
 		    throw ex;
+		}
 	    }
 	}
 	// remove any per-thread-context-class-loader CommandMap
diff --git a/src/share/classes/javax/activation/DataHandler.java b/src/share/classes/javax/activation/DataHandler.java
index 22b941d..387912d 100644
--- a/src/share/classes/javax/activation/DataHandler.java
+++ b/src/share/classes/javax/activation/DataHandler.java
@@ -1,7 +1,7 @@
 /*
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  *
- * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 1997-2015 Sun Microsystems, Inc. All rights reserved.
  *
  * The contents of this file are subject to the terms of either the GNU
  * General Public License Version 2 only ("GPL") or the Common Development
@@ -34,10 +34,6 @@
  * holder.
  */
 
-/*
- * @(#)DataHandler.java	1.41 07/05/14
- */
-
 package javax.activation;
 
 import java.io.InputStream;
@@ -382,9 +378,9 @@
 	if (transferFlavors == emptyFlavors)
 	    transferFlavors = getDataContentHandler().getTransferDataFlavors();
 	if (transferFlavors == emptyFlavors)
-	    return transferFlavors;
+	    return transferFlavors;	// no need to clone an empty array
 	else
-	    return (DataFlavor[])transferFlavors.clone();
+	    return transferFlavors.clone();
     }
 
     /**
diff --git a/src/share/classes/javax/activation/FileTypeMap.java b/src/share/classes/javax/activation/FileTypeMap.java
index 9b18a28..fb36c08 100644
--- a/src/share/classes/javax/activation/FileTypeMap.java
+++ b/src/share/classes/javax/activation/FileTypeMap.java
@@ -1,7 +1,7 @@
 /*
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  *
- * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 1997-2015 Sun Microsystems, Inc. All rights reserved.
  *
  * The contents of this file are subject to the terms of either the GNU
  * General Public License Version 2 only ("GPL") or the Common Development
@@ -34,10 +34,6 @@
  * holder.
  */
 
-/*
- * @(#)FileTypeMap.java	1.9 07/05/14
- */
-
 package javax.activation;
 
 import java.io.File;
@@ -95,11 +91,11 @@
      * Sets the default FileTypeMap for the system. This instance
      * will be returned to callers of getDefaultFileTypeMap.
      *
-     * @param map The FileTypeMap.
+     * @param fileTypeMap The FileTypeMap.
      * @exception SecurityException if the caller doesn't have permission
      *					to change the default
      */
-    public static synchronized void setDefaultFileTypeMap(FileTypeMap map) {
+    public static synchronized void setDefaultFileTypeMap(FileTypeMap fileTypeMap) {
 	SecurityManager security = System.getSecurityManager();
 	if (security != null) {
 	    try {
@@ -109,15 +105,15 @@
 		// otherwise, we also allow it if this code and the
 		// factory come from the same (non-system) class loader (e.g.,
 		// the JAF classes were loaded with the applet classes).
-		if (FileTypeMap.class.getClassLoader() == null ||
-		    FileTypeMap.class.getClassLoader() !=
-			map.getClass().getClassLoader())
+		ClassLoader cl = FileTypeMap.class.getClassLoader();
+		if (cl == null || cl.getParent() == null ||
+		    cl != fileTypeMap.getClass().getClassLoader())
 		    throw ex;
 	    }
 	}
 	// remove any per-thread-context-class-loader FileTypeMap
 	map.remove(SecuritySupport.getContextClassLoader());
-	defaultMap = map;	
+	defaultMap = fileTypeMap;	
     }
 
     /**