[ 
https://issues.apache.org/jira/browse/FELIX-1386?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743162#action_12743162
 ] 

Filippo Diotalevi commented on FELIX-1386:
------------------------------------------

Just wanted to give you an update (and maybe have some suggestions)

It turned out it is not trivial to fix this issue. As Richard commented, after 
a bundle updates itself, it's almost impossible to do anything else. Pretty 
much every call tho the BundleContext will raise an IllegalStateException. Even 
trying to get the Bundle state (I was hoping to be able to see it STOPPING) 
will raise the exception.

What it means is that it is very easy to fix the particular issue (avoid 
retrieving the log service after the update), but after that, there are a lot 
of other operations that FileInstall tries to do (install other bundles, 
refreshPackages just to name the first two).

At this point I think the simplest solution is to raise a specific exception 
after FileInstall updates itself, to be sure we are blocking the flow. We can 
then catch the exception, and terminate the FI gracefully. Not really a nice 
solution, but it wouldn't involve a massive refactory.

Thoughts?

> Updating fileinstall bundle in watched directory causes IllegalsStateException
> ------------------------------------------------------------------------------
>
>                 Key: FELIX-1386
>                 URL: https://issues.apache.org/jira/browse/FELIX-1386
>             Project: Felix
>          Issue Type: Bug
>          Components: File Install
>    Affects Versions: fileinstall-1.2.0
>         Environment: generic
>            Reporter: Sahoo
>            Assignee: Filippo Diotalevi
>             Fix For: fileinstall-1.4.0
>
>
> In my environment, fileinstall is installed via autostart properties, but it 
> is located in a directory watched by fileinstall. When I updated fileinstall 
> bundle, I get the following exception:
> Jul 20, 2009 11:52:04 AM  
> SEVERE: Exception in thread "{felix.fileinstall.poll=5000, 
> felix.fileinstall.bundles.new.start=false, 
> felix.fileinstall.dir=/space/ss141213/WS/gf/v3.trunk.new/publish/glassfishv3/glassfish/modules/,
>  felix.fileinstall.debug=1}" 
> Jul 20, 2009 11:52:20 AM  
> SEVERE: java.lang.IllegalStateException: Invalid BundleContext.
> Jul 20, 2009 11:52:20 AM  
> SEVERE:         at 
> org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:393)
> Jul 20, 2009 11:52:20 AM  
> SEVERE:         at 
> org.apache.felix.framework.BundleContextImpl.getServiceReference(BundleContextImpl.java:257)
> Jul 20, 2009 11:52:20 AM  
> SEVERE:         at 
> org.apache.felix.fileinstall.DirectoryWatcher.getLogService(DirectoryWatcher.java:449)
> Jul 20, 2009 11:52:20 AM  
> SEVERE:         at 
> org.apache.felix.fileinstall.DirectoryWatcher.log(DirectoryWatcher.java:416)
> Jul 20, 2009 11:52:20 AM  
> SEVERE:         at 
> org.apache.felix.fileinstall.DirectoryWatcher.run(DirectoryWatcher.java:133)
> Jul 20, 2009 11:52:04 AM  

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

Reply via email to