You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Kim Haase (JIRA)" <ji...@apache.org> on 2012/10/11 18:57:03 UTC

[jira] [Updated] (DERBY-5910) Document use of Connection.close() with try-with-resources

     [ https://issues.apache.org/jira/browse/DERBY-5910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kim Haase updated DERBY-5910:
-----------------------------

    Attachment: DERBY-5910.zip
                DERBY-5910.stat
                DERBY-5910.diff

Attaching DERBY-5910.diff, DERBY-5910.stat, and DERBY-5910.zip, with these changes:

M       src/devguide/cdevconcepts839085.dita
M       src/ref/rrefjdbc27734.dita

I am sure some fixes are needed, especially to the Developer's Guide topic. There's probably some duplication, and I'm not sure quite how to distinguish between what to do with and without try-with-resources. Also, adding whether or not auto-commit is on or off adds yet another variant to the mix, though I'm not sure it actually makes a difference. Should the auto-commit info be added to the reference topic?

BTW, the font differences are to be somewhat consistent with the surrounding topics in the respective manuals.
                
> Document use of Connection.close() with try-with-resources
> ----------------------------------------------------------
>
>                 Key: DERBY-5910
>                 URL: https://issues.apache.org/jira/browse/DERBY-5910
>             Project: Derby
>          Issue Type: Improvement
>          Components: Documentation
>    Affects Versions: 10.9.1.0
>            Reporter: Kim Haase
>            Assignee: Kim Haase
>         Attachments: DERBY-5910.diff, DERBY-5910.stat, DERBY-5910.zip
>
>
> The Java SE 7 try-with-resources feature can cause problems with AutoCloseable objects like java.sql.Connection. You must be careful when writing portable code which declares Connections in the initializers of try-with-resources blocks, because Derby raises an exception if you try to close a Connection with uncommitted work in-flight. 
> Changing Derby's Connection.close() to always commit in-flight work (and not raise an exception) would create backward compatibility issues, but we do not know yet how serious these issues would be, owing to a lack of data.
> Rather than change Derby's behavior now, we should document how Derby's Connection.close() behaves and describe the portability issues involved in declaring Derby Connections in try-with-resources initializers. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira