[ 
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)

Reply via email to