[ http://issues.apache.org/jira/browse/FELIX-84?page=all ]
Richard S. Hall resolved FELIX-84:
----------------------------------
Resolution: Fixed
John suggested two places to add synchronized blocks to resolve this issue;
these blocks have been committed to the repo. In general, iPOJO code needs to
be evaluated more closely with respect to concurrency issues since it has not
been a focus up until this point.
> Problem updating a Provided Service's registered properties.
> ------------------------------------------------------------
>
> Key: FELIX-84
> URL: http://issues.apache.org/jira/browse/FELIX-84
> Project: Felix
> Type: Bug
> Components: iPOJO
> Versions: 0.8.0
> Reporter: John Conlon
>
> Experiencing intermittent NPEs when Configuration Admin updates the
> properties of a registered provided service and m_serviceRegistration is null.
> Have seen this behavior in two variations, both intermittent.
> 1. When a component specifies a ConfigurableProperty in the metadata and the
> ConfigurationHandler is acting as the ManagedService. Here is the log of
> this condition:
> INFO [Update Consumer]
> org.apache.configuration.impl.UpdateConsumer.updateManagedService(UpdateConsumer.java:245)
> - Invoking updated on [EMAIL PROTECTED], with
> configuration=org.apache.configuration.impl.ConfigurationDictionary [
> event.topics=com/verticon/rfid, service.pid=com.verticon.react2,
> objectclass=[react2Server, apacheServiceConfiguration, top],
> event.filter=(event.topics=*), cn=react2Server ]
> ERROR [Update Consumer]
> org.apache.configuration.impl.UpdateConsumer.updateManagedService(UpdateConsumer.java:253)
> - Failed to update managedService [EMAIL PROTECTED]
> java.lang.NullPointerException
> at
> org.apache.felix.ipojo.handlers.providedService.ProvidedService.update(ProvidedService.java:271)
> at
> org.apache.felix.ipojo.handlers.providedService.Property.set(Property.java:116)
> at
> org.apache.felix.ipojo.handlers.providedService.ProvidedServiceHandler.setterCallback(ProvidedServiceHandler.java:252)
> at
> org.apache.felix.ipojo.ComponentManager.setterCallback(ComponentManager.java:463)
> at
> org.apache.felix.ipojo.handlers.configuration.ConfigurationHandler.updated(ConfigurationHandler.java:184)
> at
> org.apache.configuration.impl.UpdateConsumer.updateManagedService(UpdateConsumer.java:249)
> at
> org.apache.configuration.impl.UpdateConsumer.update(UpdateConsumer.java:195)
> at
> org.apache.configuration.impl.UpdateConsumer.configureManagedService(UpdateConsumer.java:283)
> at
> org.apache.configuration.impl.UpdateConsumer.handleEvent(UpdateConsumer.java:131)
> at
> org.apache.configuration.impl.UpdateConsumer.run(UpdateConsumer.java:97)
> at java.lang.Thread.run(Thread.java:595)
> 2. The second condition is when a component that has specified a
> ManagedService as a ProvidedService and this component attempts to directly
> update a property that was specified as a child property element to the
> ProvidedService in the metadata.
> INFO [Update Consumer]
> org.apache.configuration.impl.UpdateConsumer.updateManagedService(UpdateConsumer.java:245)
> - Invoking updated on managedService=React2EventEmulator, with
> configuration=org.apache.configuration.impl.ConfigurationDictionary [
> service.pid=com.verticon.react2.emulator, periodseconds=30,
> objectclass=[react2Emulator, apacheServiceConfiguration, top],
> delayseconds=6, cn=react2Emulator, eventtopic=com/verticon/rfid/MOVEMENT ]
> ERROR [Update Consumer]
> org.apache.configuration.impl.UpdateConsumer.updateManagedService(UpdateConsumer.java:253)
> - Failed to update managedService React2EventEmulator
> java.lang.NullPointerException
> at
> org.apache.felix.ipojo.handlers.providedService.ProvidedService.update(ProvidedService.java:271)
> at
> org.apache.felix.ipojo.handlers.providedService.Property.set(Property.java:116)
> at
> org.apache.felix.ipojo.handlers.providedService.ProvidedServiceHandler.setterCallback(ProvidedServiceHandler.java:252)
> at
> org.apache.felix.ipojo.ComponentManager.setterCallback(ComponentManager.java:463)
> at com.verticon.react2.emulator.Emulator._seteventTopic(Emulator.java)
> at
> com.verticon.react2.emulator.Emulator.loadTopicProperty(Emulator.java:165)
> at
> com.verticon.react2.emulator.Emulator.loadConfigurationProperties(Emulator.java:153)
> at com.verticon.react2.emulator.Emulator.updated(Emulator.java:90)
> at
> org.apache.configuration.impl.UpdateConsumer.updateManagedService(UpdateConsumer.java:249)
> at
> org.apache.configuration.impl.UpdateConsumer.update(UpdateConsumer.java:195)
> at
> org.apache.configuration.impl.UpdateConsumer.configureManagedService(UpdateConsumer.java:283)
> at
> org.apache.configuration.impl.UpdateConsumer.handleEvent(UpdateConsumer.java:131)
> at
> org.apache.configuration.impl.UpdateConsumer.run(UpdateConsumer.java:97)
> at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira