[
https://issues.apache.org/jira/browse/FELIX-3712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13841138#comment-13841138
]
Guillaume Nodet commented on FELIX-3712:
----------------------------------------
Raised FELIX-4346 for improving the logic, though I'm not even convinced yet
it's a good idea.
> FileInstall throws Interrupted exception when refreshed
> -------------------------------------------------------
>
> Key: FELIX-3712
> URL: https://issues.apache.org/jira/browse/FELIX-3712
> Project: Felix
> Issue Type: Bug
> Components: File Install
> Affects Versions: fileinstall-3.2.4, fileinstall-3.2.6
> Reporter: Per-Erik Svensson
> Assignee: Guillaume Nodet
> Fix For: fileinstall-3.2.8
>
>
> FileInstall will throw exception when refreshing. It is possible there are
> easier ways to reproduce this but here is one way:
> 1) Uninstall gogo command (if available) from the osgi container.
> 2) Install fileinstall
> 3) Put gogo command in the directory watched by fileinstall
> Result: Fileinstall throws
> In main loop, we have serious trouble: java.lang.RuntimeException:
> java.lang.InterruptedException
> java.lang.RuntimeException: java.lang.InterruptedException
> at
> org.apache.felix.fileinstall.internal.FileInstall.refresh(FileInstall.java:332)
> at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.refresh(DirectoryWatcher.java:677)
> at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:494)
> at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:291)
> Caused by: java.lang.InterruptedException
> at java.lang.Object.wait(Native Method)
> at
> org.apache.felix.fileinstall.internal.FileInstall.refresh(FileInstall.java:330)
> ... 3 more
> Possible reason: Due to FELIX-3414, the refresh() method in DirectoryWatcher
> was changed from calling
> packageAdmin#refreshPackages() directly, to using the FileInstall#refresh()
> helper method. The later wraps interrupted excpetions in a runtime exception
> which is never caught in the directory watcher's main loop. Thus, the
> directory watcher will re-throw the exception, which it previously did not
> (since the interrupted excpetion would get caught).
--
This message was sent by Atlassian JIRA
(v6.1#6144)