You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Per-Erik Svensson (JIRA)" <ji...@apache.org> on 2012/10/16 13:25:02 UTC

[jira] [Updated] (FELIX-3712) FileInstall throws Interrupted exception when refreshed

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

Per-Erik Svensson updated FELIX-3712:
-------------------------------------

    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).

  was:
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-3424, 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).

    
> 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
>
> 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 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