We have decided to move the project to dormant as we are convinced that the main advertised feature transactional file access can not be implemented reliably. We are convinced that no such implementation can be possible on top of an ordinary file system. Although there are other useful parts (as multi level locking including deadlock detection) the transactional file system is the main reason people use this library for. As it simply can not be made fully transactional, it does not work as advertised.

The Transaction Component

Commons Transaction aims at providing lightweight, standardized, well tested and efficient implementations of utility classes commonly used in transactional Java programming. Initially there are implementations for multi level locks, transactional collections and transactional file access. There may be additional implementations when the common need for them becomes obvious. However, the complete component shall remain compatible to JDK1.2 and should have minimal dependencies.

The optimal - but maybe impudent - long term goal would be to create the transactional counterpart of Doug Lea's fabulous concurrent package which recently made it to Java 5.0.

These are the initial parts in detail:

  • memory package: Contains a wrapper to make any map implementing interface java.util.Map transactional. Depending on the type of the map that is wrapped this can either work as a transactional cache or some sort of volatile memory store.
  • locking package: Interfaces and implementations for locks that can have more than one owner at different compatible levels.
  • file package: Implementation of transaction file access. Using a pessimistic locking schema this implementation features serializable transactions.
  • util package: Contains a collection of utility classes used by the transaction package itself. Of more general interest could be a rendezvous barrier and a file utility class.


See the releases page for information on obtaining releases.


The JavaDoc API documents are available online.