Repository: servicemix-specs
Updated Branches:
  refs/heads/master 194b271c5 -> 9ebaf3b54


SM-2938 MailcapCommandMap cannot find content_handler for image/jpeg

There may be a command map which doesn't contains desired command. Actually 
Java8 contains following entry which creates a command map without 
content_handler. In this case it also try with wildcard match and even fallback 
entries.
image/jpeg;;            x-java-view=com.sun.activation.viewers.ImageViewer


Project: http://git-wip-us.apache.org/repos/asf/servicemix-specs/repo
Commit: http://git-wip-us.apache.org/repos/asf/servicemix-specs/commit/9ebaf3b5
Tree: http://git-wip-us.apache.org/repos/asf/servicemix-specs/tree/9ebaf3b5
Diff: http://git-wip-us.apache.org/repos/asf/servicemix-specs/diff/9ebaf3b5

Branch: refs/heads/master
Commit: 9ebaf3b54fb610ece0932281c6b21455933834a6
Parents: 194b271
Author: Tomohisa Igarashi <[email protected]>
Authored: Mon Apr 11 16:45:18 2016 +0900
Committer: Tomohisa Igarashi <[email protected]>
Committed: Mon Apr 11 17:17:53 2016 +0900

----------------------------------------------------------------------
 .../src/main/java/javax/activation/MailcapCommandMap.java   | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/servicemix-specs/blob/9ebaf3b5/activation-api-1.1/src/main/java/javax/activation/MailcapCommandMap.java
----------------------------------------------------------------------
diff --git 
a/activation-api-1.1/src/main/java/javax/activation/MailcapCommandMap.java 
b/activation-api-1.1/src/main/java/javax/activation/MailcapCommandMap.java
index ef6fd50..a028635 100644
--- a/activation-api-1.1/src/main/java/javax/activation/MailcapCommandMap.java
+++ b/activation-api-1.1/src/main/java/javax/activation/MailcapCommandMap.java
@@ -426,16 +426,17 @@ public class MailcapCommandMap extends CommandMap {
         if (i != -1) {
             mimeType = mimeType.substring(0, i).trim();
         }
+        cmdName = cmdName.toLowerCase();
 
         // search for an exact match
         Map commands = (Map) preferredCommands.get(mimeType);
-        if (commands == null) {
+        if (commands == null || commands.get(cmdName) == null) {
             // then a wild card match
             commands = (Map) 
preferredCommands.get(getWildcardMimeType(mimeType));
-            if (commands == null) {
+            if (commands == null || commands.get(cmdName) == null) {
                 // then fallback searches, both standard and wild card.
                 commands = (Map) fallbackCommands.get(mimeType);
-                if (commands == null) {
+                if (commands == null || commands.get(cmdName) == null) {
                     commands = (Map) 
fallbackCommands.get(getWildcardMimeType(mimeType));
                 }
                 if (commands == null) {
@@ -443,7 +444,7 @@ public class MailcapCommandMap extends CommandMap {
                 }
             }
         }
-        return (CommandInfo) commands.get(cmdName.toLowerCase());
+        return (CommandInfo) commands.get(cmdName);
     }
 
     private String getWildcardMimeType(String mimeType) {

Reply via email to