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) {
