[ 
https://issues.apache.org/jira/browse/FELIX-3820?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-3820.
--------------------------------------

       Resolution: Fixed
    Fix Version/s: configadmin-1.6.2

Thanks for the patch.

I have applied a slightly modified version (using a local variable to prevent 
repeated checks) in Rev. 747165 and added integration tests. In addition  I 
extended the guard for the permission checks.
                
> Possible NPE in ConfigAdmin after shutting down when accessed by bad behaving 
> bundles
> -------------------------------------------------------------------------------------
>
>                 Key: FELIX-3820
>                 URL: https://issues.apache.org/jira/browse/FELIX-3820
>             Project: Felix
>          Issue Type: Bug
>          Components: Configuration Admin
>    Affects Versions: configadmin-1.6.0
>            Reporter: Guillaume Nodet
>            Assignee: Felix Meschberger
>            Priority: Minor
>             Fix For: configadmin-1.6.2
>
>         Attachments: FELIX-3820.patch
>
>
> When a bundle accesses the ConfigAdmin service while or after it has been 
> stopped, NPE can occur because the internal 
> ConfigurationAdminImpl#configurationManager field has been nulled.
> While this is a minor issue, it would be better to throw a nicer exception 
> indicating the COnfigAdmin service has been stopped.
> This is mostly for bad behaving bundles that do not react to the service 
> being unregistered though, so it's really a minor issue
> {code}
>         at 
> org.apache.felix.cm.impl.ConfigurationAdminImpl.listConfigurations(ConfigurationAdminImpl.java:166)
>         at 
> org.apache.felix.fileinstall.internal.ConfigInstaller.findExistingConfiguration(ConfigInstaller.java:346)
>         at 
> org.apache.felix.fileinstall.internal.ConfigInstaller.getConfiguration(ConfigInstaller.java:320)
>         at 
> org.apache.felix.fileinstall.internal.ConfigInstaller.setConfig(ConfigInstaller.java:245)
>         at 
> org.apache.felix.fileinstall.internal.ConfigInstaller.install(ConfigInstaller.java:84)
>         at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:929)
>         at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:857)
>         at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:483)
>         at 
> org.apache.felix.fileinstall.internal.DirectoryWatcher.start(DirectoryWatcher.java:224)
>         at 
> org.apache.felix.fileinstall.internal.FileInstall.updated(FileInstall.java:252)
>         at 
> org.apache.felix.fileinstall.internal.FileInstall.start(FileInstall.java:139)
>         at 
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>         at org.apache.felix.framework.Felix.doActivateBundle(Felix.java:2259)
>         at org.apache.felix.framework.Felix$7.call(Felix.java:2197)
>         at org.apache.felix.framework.Felix$6.call(Felix.java:2141)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>         at java.lang.Thread.run(Thread.java:722)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to