[SM-2149]ClassCastException in OsgiMailcapCommandMap

git-svn-id: https://svn.apache.org/repos/asf/servicemix/smx4/specs/trunk@1302778 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/activation-api-1.1/src/main/java/org/apache/servicemix/specs/activation/Activator.java b/activation-api-1.1/src/main/java/org/apache/servicemix/specs/activation/Activator.java
index 008b67b..ffde31a 100644
--- a/activation-api-1.1/src/main/java/org/apache/servicemix/specs/activation/Activator.java
+++ b/activation-api-1.1/src/main/java/org/apache/servicemix/specs/activation/Activator.java
@@ -26,6 +26,7 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.activation.CommandMap;
+import javax.activation.DataContentHandler;
 
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -54,6 +55,19 @@
         URL url = bundle.getResource("/META-INF/mailcap");
         if (url != null) {
             debugPrintln("found mailcap at " + url);
+
+            try {
+                final Class<?> clazz = bundle
+                        .loadClass("javax.activation.DataContentHandler");
+                if (!clazz.isAssignableFrom(DataContentHandler.class)) {
+                    debugPrintln("incompatible DataContentHandler class in bundle "
+                            + bundle.getBundleId());
+                    return;
+                }
+            } catch (ClassNotFoundException e) {
+                // ignored
+            }
+
             mailcaps.put(bundle.getBundleId(), new MailCap(bundle, url));
             rebuildCommandMap();
         }