Stefan Bischof created FELIX-5972:
-------------------------------------

             Summary: prevent ArrayIndexOutOfBoundsException while resolving
                 Key: FELIX-5972
                 URL: https://issues.apache.org/jira/browse/FELIX-5972
             Project: Felix
          Issue Type: Bug
          Components: Resolver
            Reporter: Stefan Bischof


***Describe the bug*
 when resolving I got an java.lang.ArrayIndexOutOfBoundsException: -1

it may cause the -runpath Instruction

*To Reproduce*
 push the resolve button at {{test.log/works.bndrun}} -> it resolves
 push the resolve button at {{test.log/fail.bndrun}} -> Exception
 the only diff is that there is one mor required bundle

i tried so centralize all logging instructions
 cnf/ext/logging.bnd

provide an Example
 Repo: {{[https://github.com/stbischof/logging/tree/master]}}

Command:
{code:java}
java -jar biz.aQute.bnd-4.1.0.jar clean
java -jar biz.aQute.bnd-4.1.0.jar _par
java -jar biz.aQute.bnd-4.1.0.jar resolve resolve **/fail.bndrun 
{code}
 

*Expected behavior*
 it should resolve

*Stacktrace*

 
{code:java}
java.lang.ArrayIndexOutOfBoundsException: -1 000: Exception: 
java.lang.ArrayIndexOutOfBoundsException: -1 at 
java.util.ArrayList.elementData(ArrayList.java:422) at 
java.util.ArrayList.set(ArrayList.java:450) at 
org.apache.felix.resolver.util.ShadowList.replace(ShadowList.java:74) at 
org.apache.felix.resolver.Candidates.prepare(Candidates.java:939) at 
org.apache.felix.resolver.ResolverImpl.getInitialCandidates(ResolverImpl.java:547)
 at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:432) at 
org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:421) at 
org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:375) at 
biz.aQute.resolve.BndResolver.resolve(BndResolver.java:32) at 
biz.aQute.resolve.ResolveProcess.resolveRequired(ResolveProcess.java:81) at 
biz.aQute.resolve.ProjectResolver.resolve(ProjectResolver.java:105) at 
biz.aQute.resolve.Bndrun.resolve(Bndrun.java:95) at 
aQute.bnd.main.ResolveCommand._resolve(ResolveCommand.java:275) at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498) at 
aQute.lib.getopt.CommandLine.execute(CommandLine.java:150) at 
aQute.lib.getopt.CommandLine.subCmd(CommandLine.java:624) at 
aQute.bnd.main.bnd._resolve(bnd.java:4237) at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498) at 
aQute.lib.getopt.CommandLine.execute(CommandLine.java:150) at 
aQute.bnd.main.bnd._bnd(bnd.java:444) at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498) at 
aQute.lib.getopt.CommandLine.execute(CommandLine.java:150) at 
aQute.bnd.main.bnd.start(bnd.java:292) at aQute.bnd.main.bnd.main(bnd.java:269) 
{code}
**

 

 

*Environment (please complete the following information):*
 * bnd-Version: {{bndtools 4.2.0.2018.10.19.2218-SNAPSHOT}}
 * Java-Version: {{java -version}}

 
{code:java}
openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-b15) 
OpenJDK 64-Bit Server VM (build 25.181-b15, mixed mode)  

{code}
 * bnd-Part: bnd-lib,bndtools
 * OS: Linux
 * OSGi-Framework: Felix
 * Related Spec: none

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to