This class manages
JpaPersistenceContext objects, and the underlying persistence context (
EntityManager)
instances for a persistent
KieSession and other infrastructure classes that use persistence in KIE projects.
(For reference in the following documentation: the
EntityManager is the class used to represent a persistence context)
There are 2 issues to take into account when looking at or modifying the code here:
- One of the features made available here is the ability for the user to supply their own (Command Scoped) persistence
context for use by the
KieSession
- However, significant race-conditions arise when a Command Scoped persistence context is used in one persistent
KieSession by multiple threads. In other words, when multiple threads call operations on a Singleton persistent
KieSession.
This class uses
ThreadLocal instances for two things:
- The internal Command Scoped
EntityManager instance.