Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/ManifestLocalization.java')
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/ManifestLocalization.java21
1 files changed, 10 insertions, 11 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/ManifestLocalization.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/ManifestLocalization.java
index a67ec5309..7fc5223ce 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/ManifestLocalization.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/ManifestLocalization.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2016 IBM Corporation and others.
+ * Copyright (c) 2004, 2017 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -14,8 +14,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.*;
+import java.util.Map.Entry;
import org.eclipse.osgi.container.*;
-import org.eclipse.osgi.framework.util.Headers;
+import org.eclipse.osgi.framework.util.CaseInsensitiveDictionaryMap;
import org.eclipse.osgi.storage.BundleInfo.Generation;
import org.osgi.framework.Constants;
import org.osgi.framework.namespace.HostNamespace;
@@ -61,11 +62,9 @@ public class ManifestLocalization {
return rawHeaders;
}
ResourceBundle localeProperties = getResourceBundle(localeString, isDefaultLocale);
- Enumeration<String> eKeys = this.rawHeaders.keys();
- Headers<String, String> localeHeaders = new Headers<>(this.rawHeaders.size());
- while (eKeys.hasMoreElements()) {
- String key = eKeys.nextElement();
- String value = this.rawHeaders.get(key);
+ CaseInsensitiveDictionaryMap<String, String> localeHeaders = new CaseInsensitiveDictionaryMap<>(this.rawHeaders);
+ for (Entry<String, String> entry : localeHeaders.entrySet()) {
+ String value = entry.getValue();
if (value.startsWith("%") && (value.length() > 1)) { //$NON-NLS-1$
String propertiesKey = value.substring(1);
try {
@@ -73,14 +72,14 @@ public class ManifestLocalization {
} catch (MissingResourceException ex) {
value = propertiesKey;
}
+ entry.setValue(value);
}
- localeHeaders.set(key, value);
}
- localeHeaders.setReadOnly();
+ Dictionary<String, String> result = localeHeaders.asUnmodifiableDictionary();
if (isDefaultLocale) {
- defaultLocaleHeaders = localeHeaders;
+ defaultLocaleHeaders = result;
}
- return (localeHeaders);
+ return result;
}
private String[] buildNLVariants(String nl) {

Back to the top