[
https://issues.apache.org/jira/browse/DELTASPIKE-848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14348772#comment-14348772
]
Sven Linstaedt commented on DELTASPIKE-848:
-------------------------------------------
IMHO the rule for streams should also apply here: The one who creates it is
responsible for closing it.
If I create an EMF by
{code}
@Inject
@PersistenceUnitName("foo")
Instance<EMF> instance;
EMF emf = instance.get();
// use lifecycle of emf...
instance.destroy(emf);
{code}
emf won't be closed, but is instead leaking. afaik this is a regular use case
for @Dependent scoped beans.
Besides: Having something like the following in
{{EntityManagerFactoryProducer}} does not hurt, if the application has decided
to close the EMF on their own and will prevent EMF leakage for sure.
{code}
void disposeEntityManagerFactory(@Disposes EntityManagerFactory factory) {
if (factory.isOpen()) {
factory.close();
}
}
{code}
> EntityManagerFactory is not closed on disposal
> ----------------------------------------------
>
> Key: DELTASPIKE-848
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-848
> Project: DeltaSpike
> Issue Type: Bug
> Affects Versions: 1.2.1
> Reporter: Sven Linstaedt
>
> {{org.apache.deltaspike.jpa.impl.entitymanager.EntityManagerFactoryProducer}}
> does produces EntityManagerFactory, but it does not implement a disposal
> method, which closes the factory on destruction, causing any underlying
> SesionFactories to leak.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)