[ 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