A Semaphore has been added to the Journal for this purpose and two methods have been exposed to acquire and release that Semaphore. The Semaphore is provisioned with one initial permit and attempts to enforce a mutex constraint. The BigdataSail was modified to acquire this permit when obtaining an unisolated connection and to release the permit when the connection is closed.
Several unit tests were updated to verify correct behavior of getUnisolatedConnection().
Several openrdf unit tests which were silently being ignored due to an incompatible semantics for transaction isolation were modified to reflect the snapshot isolation of bigdata read/write transactions (versus the read-committed isolation of openrdf transactions).
The contributed unit test TestRollbacks was committed. See https://sourceforge.net/apps/trac/bigdata/ticket/278#comment:8.
These changes are currently against the QUADS_QUERY_BRANCH and need to be ported to the trunk before we can close this issue.
Committed revision r4449.