You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Richard S. Hall (JIRA)" <ji...@apache.org> on 2008/11/20 23:20:46 UTC

[jira] Resolved: (FELIX-819) unable to rename / delete bundle cache location on update or uninstall

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

Richard S. Hall resolved FELIX-819.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: felix-1.4.1
         Assignee: Richard S. Hall

I have committed a fix for this. It appears the issue was how we remove uninstalled bundles during shutdown. The uninstalled fragment was getting removed, but the host bundle still had its JAR file open so it could not be successfully removed. I modified the shutdown routine to close all bundles first, then to remove uninstalled bundles to make sure all references to the bundle JAR files are closed.

Walid, if this resolves the issue for you, please close it. Thanks for reporting it!

> unable to rename / delete bundle cache location on update or uninstall
> ----------------------------------------------------------------------
>
>                 Key: FELIX-819
>                 URL: https://issues.apache.org/jira/browse/FELIX-819
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.4.1
>         Environment: Windows (XP Pro)
>            Reporter: Walid Joseph Gedeon
>            Assignee: Richard S. Hall
>             Fix For: felix-1.4.1
>
>         Attachments: test-bundles.zip
>
>
> Hello all,
> It looks like the revision.location is missing from the bundle cache after the shutdown purge. Steps:
> - install bundle
> - update bundle
> - shutdown
> The next start shows a:
> ERROR: org.apache.felix.framework.cache.BundleCache: Error creating archive. (java.io.FileNotFoundException: .\felixcache\bundle24\version2.0\revision.location (The system cannot find the file specified))
> Looking in the directory, the file is not there.
> Stepping through the code shows that the BundleArchive.purge() attempts to rename the last bundle revision to a fresh one... except that the File.rename is not platform independent (it fails on windows quite often).
> When BundleCache.getSecureAction().renameFile(revisionDir, currentDir) returns false (rename failed), createRevisionFromLocation follows and does not include a new revision.location file.
> Maybe a call to setRevisionLocation() is to be made after createRevisionFromLocation (BundleArchive:866)? I'll try that out...

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