You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "Christoph Gritschenberger (JIRA)" <ji...@apache.org> on 2012/05/22 11:16:40 UTC
[jira] [Updated] (ARIES-851) BundleTrackerCustomizer in
BundleHookBundleTracker is called multiple times for the same event.
[ https://issues.apache.org/jira/browse/ARIES-851?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christoph Gritschenberger updated ARIES-851:
--------------------------------------------
Summary: BundleTrackerCustomizer in BundleHookBundleTracker is called multiple times for the same event. (was: Multiple IllegalStateException when deploying a new PersistenceUnit)
> 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