Benoît Thiébault created FELIX-4534:
---------------------------------------
Summary: Bundles containing native code fails to start on Windows 7
Key: FELIX-4534
URL: https://issues.apache.org/jira/browse/FELIX-4534
Project: Felix
Issue Type: Bug
Components: Framework
Affects Versions: framework-4.4.0, framework-4.2.1, framework-4.2.0
Environment: Windows 7
Reporter: Benoît Thiébault
Windows 7 system is not properly recognized which makes bundles containing
native code fail to start.
The OS name is retrieved using Java system property in org.apache.felix.Felix
class, line 4481. OS name is then "Windows 7", with a space.
It is then normalized using method
org.apache.felix.framework.util.manifestparser.R4LibraryClause.normalizeOSName()
and store in the configMap. OS name becomes "windows7" without the space.
When starting the bundle, method
org.apache.felix.framework.util.manifestparser.R4LibraryClause.match() is
called, retrieves the already normalized OS name ("windows7") in the configMap
and normalizes it again.
This second normalisation fails as "windows7" without the space is not
recognized by method
org.apache.felix.framework.util.manifestparser.R4LibraryClause.normalizeOSName().
In particular, the condition in the if statement line 392 is false when there
is the OS name is "windows7":
if ((value.indexOf(" 7") >= 0) || value.equals("win7"))
Possible solutions are:
- prevent the OS name to be normalized twice (by checking if it is already
normal)
- improve the normalisation to deal with "windows7" OS name
--
This message was sent by Atlassian JIRA
(v6.2#6252)