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

John Ross reassigned ARIES-996:
-------------------------------

    Assignee: John Ross
    
> JPA does not work for bundles that are constituents of subsystems.
> ------------------------------------------------------------------
>
>                 Key: ARIES-996
>                 URL: https://issues.apache.org/jira/browse/ARIES-996
>             Project: Aries
>          Issue Type: Bug
>          Components: JPA
>            Reporter: John Ross
>            Assignee: John Ross
>         Attachments: aries996.patch
>
>
> The org.apache.aries.jpa.container.context.impl.GlobalPersistenceManager 
> class creates and manages multiple PersistenceContextManagers across multiple 
> nested frameworks. More generally, "multiple nested frameworks" can be 
> replaced with the term "isolation units". There is one 
> PersistenceContextManager per isolation unit. Currently, the class uses a 
> system bundle as the map key, which is fine for "multiple nested frameworks" 
> since each nested framework contains its own system bundle along with a 
> composite bundle. At least two problems arise when used with Subsystems, 
> however, because there are isolation units (i.e. subsystems) existing within 
> a single framework. 
> The first problem is that the system bundle might be hidden from the client 
> bundle by find hooks. This results in an NPE on line 104 of 
> GlobalPersistenceManager.registerContext.
> The second problem is that even if the first is gotten around by getting the 
> system bundle by location instead of by ID, duplicate transaction exceptions 
> occur since there is only one system bundle.
> One solution would be to use a bundle tracker that tracks subsystem region 
> context bundles. This is easily done since all region context bundles have 
> the same symbolic name prefix per the spec. 
> GlobalPersistenceManager.registerContext would first iterate over any tracked 
> region context bundles. If a region context bundle is visible to the client 
> bundle, then the bundle context of the region context bundle is used. If 
> there are no region context bundles, or none are visible to the client 
> bundle, then the system bundle context is used as before.
> A more general issue not addressed by this bug is how JPA should function 
> within a framework isolated by any generic mechanism using hooks. It's not 
> clear how the bundle context to use would be identified.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to