diff options
author | Thomas Watson | 2008-01-21 16:32:23 +0000 |
---|---|---|
committer | Thomas Watson | 2008-01-21 16:32:23 +0000 |
commit | a1ba0b6c5e702178094ab7df0b69d6f4384b8b92 (patch) | |
tree | ed6f4994c3dc16d7988d77f3c256f5ee2d4f2cce /bundles/org.eclipse.osgi/resolver | |
parent | 7090b0be3103d077986b6c3f8f5cdc38a1f7e431 (diff) | |
download | rt.equinox.framework-a1ba0b6c5e702178094ab7df0b69d6f4384b8b92.tar.gz rt.equinox.framework-a1ba0b6c5e702178094ab7df0b69d6f4384b8b92.tar.xz rt.equinox.framework-a1ba0b6c5e702178094ab7df0b69d6f4384b8b92.zip |
Bug 215901 Bundle-NativeCode resolution of org.osgi.framework.os.name and org.osgi.framework.processor is not case-insensitive
Diffstat (limited to 'bundles/org.eclipse.osgi/resolver')
-rw-r--r-- | bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/NativeCodeSpecificationImpl.java | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/NativeCodeSpecificationImpl.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/NativeCodeSpecificationImpl.java index 3486053e3..e2ac3e023 100644 --- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/NativeCodeSpecificationImpl.java +++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/NativeCodeSpecificationImpl.java @@ -88,25 +88,28 @@ public class NativeCodeSpecificationImpl extends VersionConstraintImpl implement match = true; else { Object platformProcessor = platformProps[i].get(Constants.FRAMEWORK_PROCESSOR); - for (int j = 0; j < processors.length && !match; j++) { - String aliasedProcessor = aliasMapper.aliasProcessor(processors[j]); - if (platformProcessor.equals(aliasedProcessor)) - match = true; - } + Object aliasedPlatformProcessor = platformProcessor == null || !(platformProcessor instanceof String) ? platformProcessor : aliasMapper.aliasProcessor((String) platformProcessor); + if (aliasedPlatformProcessor != null) + for (int j = 0; j < processors.length && !match; j++) { + String aliasedProcessor = aliasMapper.aliasProcessor(processors[j]); + if (aliasedPlatformProcessor.equals(aliasedProcessor)) + match = true; + } } if (!match) return false; match = false; String[] languages = nativeSupplier.getLanguages(); - if (languages.length == 0l) + if (languages.length == 0) match = true; else { Object platformLanguage = platformProps[i].get(Constants.FRAMEWORK_LANGUAGE); - for (int j = 0; j < languages.length && !match; j++) { - if ((platformLanguage instanceof String) ? ((String) platformLanguage).equalsIgnoreCase(languages[j]) : platformLanguage.equals(languages[j])) - match = true; - } + if (platformLanguage != null) + for (int j = 0; j < languages.length && !match; j++) { + if ((platformLanguage instanceof String) ? ((String) platformLanguage).equalsIgnoreCase(languages[j]) : platformLanguage.equals(languages[j])) + match = true; + } } if (!match) return false; |