[
https://issues.apache.org/jira/browse/FELIX-5754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Karl Pauls reassigned FELIX-5754:
---------------------------------
Assignee: Karl Pauls
> error in default.properties contained in jar
> org.apache.felix.framework-5.6.10.jar
> ----------------------------------------------------------------------------------
>
> Key: FELIX-5754
> URL: https://issues.apache.org/jira/browse/FELIX-5754
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: framework-5.6.10
> Environment: android os version 26
> Reporter: Tom Rutchik
> Assignee: Karl Pauls
> Priority: Critical
> Fix For: framework-5.6.12
>
>
> I'll be describing the issue, explain where the problem occurs and why, and a
> possible fix that I have verified.
> The default.properties file contained in jar:
> org.apache.felix.framework-5.6.10.jar needs the line:
> org.osgi.util..tracker; version=1.5.1 \
> changed to:
> org.osgi.util..tracker; version=1.5.1, \
> (a comma entered after the version number.)
> Without the comma added, the class: org.osgi.framework.Version
> throws an unrecoverable exception when the version is parsed.
> I tracked the issue down and found out that the string value for minor part
> of the version number which should have been the string "1" was instead
> having the value "1 #".
> The Interger.parse("1 #") is what's throwing the exception (since the #
> character is not numeric). If you look deeper at the default.properties file
> you see it contains the following:
> org.osgi.util.tracker; version=1.5.1 \
> ${jre-${java.specification.version}} \
> ${jre-${felix.detect.jpms}} \
> #
> # Java platform package export properties.
> I don't know what the ${jre-$ entries are for, but they seem to have been
> evaluated to the empty string. So that's how the minor version subpart
> string gets to be "1 #" instead of "1"
> I repackage the jar with that one change in place and Felix starts up
> correctly.
> Note: Another possible solution is to eliminate the continuation character
> "\" at the end of the
> version since it appears to be last entry. I just don't understand what the
> motivation for the {jre-$ entries are so I don't want to claim my solution is
> necessarily the right solution for all circumstances, since another possible
> solution would be to eliminate the continuation character "\" at the end of
> the line: "${jre-${felix.detect.jpms}} \" .
> What's makes the issue critical is that the 5.6.10 release will not work on
> Android without this change, and it's a bit tricky and time consuming to
> discover the cause. ( I'm not sure why this isn't an issue for any
> environment(it might be!), but the strongest claim I can make is that it is
> an issue in the android environment.
> And lastly just to be clear, the exception is thrown when the Felix object is
> first created. Here's
> a snippet of what that code looks like:
> String apkFileDir =
> ConsoleActivity.consoleActivity.getFilesDir().toString();
> config.put("osgi.signature.support.verify", "false"); // signed jar
> checking disabled for development
> config.put( .....
> Felix f = new Felix(config);
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)