[
https://issues.apache.org/jira/browse/JENA-1090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15369660#comment-15369660
]
ASF GitHub Bot commented on JENA-1090:
--------------------------------------
Github user afs commented on the issue:
https://github.com/apache/jena/pull/153
Semaphore hand out permits so 0 means no permit.
There is a `semaStart.release()` in `run()` and the corresponding `acquire`
in the lambda in `create` which has comments. Renaming the local `semaStart`
would help.
The `AtomicReference` can be combined in `AtomicReference<Throwable>`.
`ThreadTxn` came about for testing purposes - `Txn` is the main
contribution.
> Add transaction handling convenience code
> -----------------------------------------
>
> Key: JENA-1090
> URL: https://issues.apache.org/jira/browse/JENA-1090
> Project: Apache Jena
> Issue Type: Improvement
> Components: ARQ
> Reporter: Andy Seaborne
>
> The code
> [Txn|https://github.com/afs/jena-rdfconnection/blob/master/src/main/java/rdfconnection/Txn.java]
> provides a convenient way to write common patterns of transaction usage
> including
> {noformat}
> Txn.executeWrite(conn, () ->{
> ... write transaction code ...
> }) ;
> {noformat}
> which provides the pattern:
> {noformat}
> txn.begin(ReadWrite.WRITE) ;
> try {
> ... write transaction code ...
> txn.commit() ;
> }
> finally { txn.end() ; }
> {noformat}
> {{Txn}} also checks for being in a transaction already.
> There are forms to return a value from the code inside the transaction block
> as well.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)