You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Filippo Diotalevi (JIRA)" <ji...@apache.org> on 2009/06/11 14:15:07 UTC

[jira] Updated: (FELIX-1203) NPE in fileinstall if a watched bundle is uninstalled by some other means

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

Filippo Diotalevi updated FELIX-1203:
-------------------------------------

    Attachment: FELIX-1203.txt

The patch displays more meaningful logs instead of the NPE.

A question remains open though: consider the case
1) add a bundle.jar in the /load folder (watched by fileinstall) 
2) uninstall bundle.jar via console 
3) update the bundle.jar file in the /load folder (just:> touch bundle.jar f.i.) 

with the current behavior, fileinstall will try to update the bundle on every iteration, every time displaying the message "Cannot update bundle...."
Is it an acceptable solution?

Some options:
a) leave it as it is. Using fileinstall and another provisioning system is a problem anyway, so it's better to highlight this problem in the logs

b) remove bundle.jar from currentManagedBundles. In this case, fileinstall won't try to update it later, BUT it will install it in the next iteration since it will find the file in the /load folder

c) remove  bundle.jar from currentManagedBundles AND delete the file from /load (or instruct fileinstall to ignore it).

IMHO, a) it's the better solution, since b) and c) can really confuse the user. Wdyt?

> NPE in fileinstall if a watched bundle is uninstalled by some other means
> -------------------------------------------------------------------------
>
>                 Key: FELIX-1203
>                 URL: https://issues.apache.org/jira/browse/FELIX-1203
>             Project: Felix
>          Issue Type: Bug
>          Components: File Install
>    Affects Versions:  fileinstall-1.0.0
>         Environment: generic
>            Reporter: Sahoo
>             Fix For: fileinstall-1.2.0
>
>         Attachments: FELIX-1203.txt
>
>
> test1.jar is part of watched dir /tmp/autodeploy-bundles/. I accidentally uninstalled test1.jar bundle using the Shell command. Next time, when I actually removed the file from the directory, fileinstall failed with the following NPE:
> Jun 7, 2009 11:23:52 PM  
> INFO: Failed to uninstall bundle: /tmp/autodeploy-bundles/test1.jar: java.lang.NullPointerException
> Jun 7, 2009 11:23:52 PM  
> INFO: java.lang.NullPointerException
> Jun 7, 2009 11:23:52 PM  
> INFO:   at org.apache.felix.fileinstall.DirectoryWatcher.uninstall(DirectoryWatcher.java:717)
> Jun 7, 2009 11:23:52 PM  
> INFO:   at org.apache.felix.fileinstall.DirectoryWatcher.uninstall(DirectoryWatcher.java:611)
> Jun 7, 2009 11:23:52 PM  
> INFO:   at org.apache.felix.fileinstall.DirectoryWatcher.doInstalled(DirectoryWatcher.java:350)
> Jun 7, 2009 11:23:52 PM  
> INFO:   at org.apache.felix.fileinstall.DirectoryWatcher.run(DirectoryWatcher.java:122)
> I think it is OK to get the NPE, as user is expected to uninstall the bundle by removing the file unlike what I did in this case. But I am not sure. So, I am filing this bug to share my experience. The fix is pretty simple; we need to log the fact that the bundle has been uninstalled by some other means and add a null check in the code. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.