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