Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
fileinstall-3.2.4, fileinstall-3.2.6
-
None
Description
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).
Attachments
Issue Links
- is related to
-
FELIX-4328 Provide a scoping mechanism to limit bundles to be refreshed
- Closed
- relates to
-
FELIX-4346 Consider improving the logic to only refresh bundles for optional imports that are not satisfied yet
- Closed