Hi out there
I just found out that as of Felix 1.6.1 the Bundle.getHeaders() returns a
Dictionary whose keys are of type java.util.jar.Attribute.Name. The
corresponding code is in org.apache.felix.framework.cache.JarRevision:
Manifest mf = jarFile.getManifest();
// Create a case insensitive map of manifest attributes.
return new StringMap(mf.getMainAttributes(), false);
Somehow I doubt that this is the right behavior but perhaps someone can prove
me wrong :-) This behavior did not disturb my code as long as it was running on
a SUN JVM (java 6) but it caused severe trouble when running on IBM's JVM (java
6). I guess this is because IBM and SUN might have different implementations of
equals(Object o) and hashCode() for the class java.util.jar.Attribute.Name.
However after changing the suspicious code in JarRevision like this:
Manifest mf = jarFile.getManifest();
// Create a case insensitive map of manifest attributes.
final Attributes attributes = mf.getMainAttributes();
final StringMap m = new StringMap(false);
for ( final Object name : attributes.keySet() ) {
final String text = name.toString();
m.put(text, attributes.getValue(text));
}
return m;
the problem disappeared and it also worked on IBM's JVM.
So can anybody please confirm or deny that this is a bug in Felix 1.6.1. If so
I will open a JIRA issue.
Kind regards
Alex
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]