openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sutter (JIRA)" <>
Subject [jira] Closed: (OPENJPA-437) EntityManagerFactory is not thread-safe
Date Thu, 27 Mar 2008 20:25:25 GMT


Kevin Sutter closed OPENJPA-437.

> EntityManagerFactory is not thread-safe
> ---------------------------------------
>                 Key: OPENJPA-437
>                 URL:
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2, 1.1.0
>            Reporter: Kevin Sutter
>            Assignee: Kevin Sutter
>             Fix For: 1.0.2, 1.1.0
>         Attachments: OPENJPA-437-nosync.patch
> Under certain conditions, we have discovered that the EntityManagerFactory is not thread
safe when creating EntityManagers.  The problem is in the loadPersistentTypes method of the
AbstractBrokerFactory.  There is an unprotected data structure (_pcClassNames) that can various
problems (NullPointerException, IndexOutOfBoundsException, etc) when attempting to add new
elements to the ArrayList.  Other similar datastructures in this part are properly synchronized
(_pcClassLoaders for example), but somehow we missed this one.
> A common scenario where this might be encountered is if your SLSB has an injected PersistenceUnit
(EntityManagerFactory), but is attempting to create the EntityManager during a post-bean creation
method (@PostConstruct).  In this case, the SLSB instances are probably using the same EMF
instance (of course this would depend on your application server implementation).  If you
have this type of environment, then hitting these SLSB's with multiple clients could get you
into this situation.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message