Hallo there,

I have an iPOJO (1.11.2) component using the @ServiceController annotation to 
control the service publishing. Most of the time this works perfectly fine, but 
occasionally I get an ArrayIndexOutOfBoundsException.

java.lang.ArrayIndexOutOfBoundsException: 4
               at 
org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler.__M_onSet(ProvidedServiceHandler.java:416)[83:org.apache.felix.ipojo:1.11.2]
               at 
org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler.onSet(ProvidedServiceHandler.java)[83:org.apache.felix.ipojo:1.11.2]
               at 
org.apache.felix.ipojo.InstanceManager.onSet(InstanceManager.java:1401)[83:org.apache.felix.ipojo:1.11.2]
               [..] (My own code following, where the service controller 
boolean is manipulated)

Unfortunately I cannot share the consumer code nor reproduce the problem. I 
looked into iPOJOs code to see what's going on [1], and there we have:

for (int j = 0; j < svc.getProperties().length; j++) {
Property prop = svc.getProperties()[j];
               [...]
}

Which looks like a proper race condition to me, if svc.getProperties() changes 
its value in the meantime because of missing synchronizations. I don't see any 
synchronizations there, but I also don't know if they would be appropriate in 
the first place.

Has anyone seen this failure? Any insights would be helpful.

Cheers,
Benjamin


[1] 
http://grepcode.com/file/repo1.maven.org/maven2/org.apache.felix/org.apache.felix.ipojo/1.11.2/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java#416

Reply via email to