felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Walid Joseph Gedeon (JIRA)" <j...@apache.org>
Subject [jira] Updated: (FELIX-819) revision.location missing on update
Date Tue, 18 Nov 2008 15:07:44 GMT

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

Walid Joseph Gedeon updated FELIX-819:
--------------------------------------

    Attachment: test-bundles.zip

I've managed to reproduce a similar effect in a tiny test environment (attached as "test-bundles.zip").
Steps to reproduce:
#1- run
#2- install host
#3- install fragment
#4- start host
#5- shutdown
#6- run
#7- uninstall fragment
#8- shutdown -> error message

I've tried to see what happens, everything deletes fine except for the bundle jar. Could it
be still locked by the BundleArchive (or the class loader?) at the moment when we're trying
to delete it?
Anyway, still looking.

Can someone please try the example to make sure it's not something that's specific to some
messed-up situation in my environment? Thanks :-)

The logs are below:

#1-run

Listening for transport dt_socket at address: 8787

Welcome to Felix.
=================

->
-> ps
START LEVEL 1
   ID   State         Level  Name
[   0] [Active     ] [    0] System Bundle (1.5.0.SNAPSHOT)
[   1] [Active     ] [    1] Apache Felix Shell Service (1.0.2)
[   2] [Active     ] [    1] Apache Felix Shell TUI (1.0.2)
[   3] [Active     ] [    1] Apache Felix Bundle Repository (1.2.1)
[   4] [Active     ] [    1] Java XML Binding API (2.1.7)
[   5] [Active     ] [    1] Java Activation API (1.1.1)
[   6] [Active     ] [    1] Java XML Stream API (StAX) (1.0.1)
[   8] [Active     ] [    1] Jaxen XPath Engine (1.1.1)
[   9] [Active     ] [    1] JDOM DOM Processor (1.0.0)
[  10] [Active     ] [    1] Apache ANT (1.7.0)
[  11] [Active     ] [    1] Apache Commons Lang (2.4.0)
[  12] [Active     ] [    1] Apache Commons Collections (3.2.0)
[  13] [Active     ] [    1] Apache Velocity Engine (1.5.0)
->
->

#2- install host

-> install file:///D|/projects/drawingboard/host/target/test.host-0.0.1-SNAPSHOT.jar
Bundle ID: 100

#3- install fragment

-> install file:///D|/projects/drawingboard/fragment/target/test.fragment-0.0.1-SNAPSHOT.jar
Bundle ID: 101

#4- start host

-> start 100
bundle://100.0:2/fragment/loadme.txt
vvvvvvvv
###
###
^^^^^^^^

#5- shutdown

-> shutdown
->

#6- run

C:\Programs\Development\felix-1.4.0>run

C:\Programs\Development\felix-1.4.0>java -server -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
-jar bin/org.apache.felix.main-1.4.0.jar
Listening for transport dt_socket at address: 8787

Welcome to Felix.
=================

-> bundle://100.0:2/fragment/loadme.txt
vvvvvvvv
###
###
^^^^^^^^

#7- uninstall fragment

-> uninstall 101

#8- shutdown -> error message

-> shutdown
-> ERROR: org.apache.felix.framework.cache.BundleArchive: Unable to delete archive directory
- .\felix-cache\bundle101

> revision.location missing on update
> -----------------------------------
>
>                 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
>         Attachments: org.apache.felix.framework (BundleArchive).patch, 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.


Mime
View raw message