[ 
https://issues.apache.org/jira/browse/ARIES-851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13280847#comment-13280847
 ] 

Andreas Pieber commented on ARIES-851:
--------------------------------------

I get nagged on by exactly the same problem. I can confirm that both of the 
attached patches fix the problem for me (although I think solution2 is the way 
to go). Can any commiter pls give this problem a shot? Maybe before the 1.0.0 
release? :-)

many thanks in advance and kind regards
                
> BundleTrackerCustomizer in BundleHookBundleTracker is called multiple times 
> for the same event.
> -----------------------------------------------------------------------------------------------
>
>                 Key: ARIES-851
>                 URL: https://issues.apache.org/jira/browse/ARIES-851
>             Project: Aries
>          Issue Type: Bug
>          Components: JPA, Util
>         Environment: Linux-3.0.0, Karaf-3.0.0-SNAPSHOT with Felix, openjdk-6
>            Reporter: Christoph Gritschenberger
>         Attachments: ARIES-851-stacktrace.TXT, 
> BundleHookBundleTracker-solution1.patch, 
> BundleHookBundleTracker-solution2.patch, jpa-test-bundle-src.zip, 
> persistence-feature.xml, test.jpa.bundle-0.1.0-SNAPSHOT.jar
>
>
> Steps to reproduce
> * Compile or get a karaf-3.0.0-SNAPSHOT and unpack it
> * Install openjpa-2.2.0 (using the attached feature-file)
> * Deploy a bundle containing a persistence-unit (attached jar for example)
> get the following Exception 4 times:
> {code}
> ERROR: Bundle org.apache.aries.jpa.container [78] EventDispatcher: Error 
> during dispatch. (java.lang.IllegalStateException: Unable to create 
> persistence units for the bundle test.jpa.test.jpa.bundle/0.1.0.SNAPSHOT as 
> previous persistence units already exist.)
> java.lang.IllegalStateException: Unable to create persistence units for the 
> bundle test.jpa.test.jpa.bundle/0.1.0.SNAPSHOT as previous persistence units 
> already exist.
> {code}
> See attachment for full stacktrace
> In subsequent startups the Exception is still thrown but the stacktrace does 
> not show in the console or the log.
> Also when using equinox the Stacktrace does not appear in either the console 
> or the log ever, but it's still thrown.
> The problem is that the PersistenceBundleManager#addingBundle is called 
> multiple times for the newly installed bundle.
> The PersistenceBundleManager is passed as a BundleTrackerCustomizer to a 
> BundleHookBundleTracker.
> The BundleHookBundleTracker stores it in it's own private attribute and also 
> passes it to it's super-constructor.
> So the customizer is stored in the instance twice.
> It's called by both BundleTracker$Tracked.customizerAdding and 
> BundleHookBundleTracker$Tracked.customizerAdding.
> Both "Tracked" recognize the bundle as untracked and call the 
> addingBundle-method.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to