[
https://issues.apache.org/jira/browse/FELIX-4534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benoît Thiébault updated FELIX-4534:
------------------------------------
Description:
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 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
was:
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
> 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.2.0, framework-4.2.1, framework-4.4.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 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)