You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by "Tilmann Zäschke (JIRA)" <ji...@apache.org> on 2015/05/11 15:40:00 UTC

[jira] [Commented] (JDO-735) Make PersistenceManager and Query support AutoCloseable (JDK1.7+)

    [ https://issues.apache.org/jira/browse/JDO-735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14537942#comment-14537942 ] 

Tilmann Zäschke commented on JDO-735:
-------------------------------------

Apologies for commenting so late.
I see a small problem with making PersistenceManager auto-closeable:
If I understand the spec (12.6) correctly, PM.close() will throw an Exception if an transaction is active.
Since, in my experience, database exceptions mostly occur during open transactions, the auto-close will fail in most cases.
One problem with this is probably that this will always swallow the actual error, only the failed close()-exception will be reported.

A solution would be to change the spec such that calling close() on an open Transaction simply aborts() the transaction before closing it.
I would prefer that anyway, because it would solve a separate problem that I usually have to do if-pm-is-active-then-abort-before-close in many catch blocks, which feels a bit like unnecessary boilerplate code.

Any thoughts on this? 


I understand that this is a spec change, but I suppose it should be mostly backwards compatible. Also, I guess this should probably go into a separate issue.


> Make PersistenceManager and Query support AutoCloseable (JDK1.7+)
> -----------------------------------------------------------------
>
>                 Key: JDO-735
>                 URL: https://issues.apache.org/jira/browse/JDO-735
>             Project: JDO
>          Issue Type: New Feature
>          Components: api, specification, tck
>            Reporter: Andy Jefferson
>             Fix For: JDO 3.2
>
>
> So then it can be used with JDK1.7+ try-with-resources, as per http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)