[libbtm-java] 03/12: Imported Upstream version 2.1.4

Markus Koschany apo at moszumanska.debian.org
Fri Aug 26 00:13:24 UTC 2016


This is an automated email from the git hooks/post-receive script.

apo pushed a commit to branch master
in repository libbtm-java.

commit 0cdc697de6e299a9c082a8aefd11a79d6879d581
Author: Markus Koschany <apo at debian.org>
Date:   Thu Aug 25 22:24:39 2016 +0200

    Imported Upstream version 2.1.4
---
 build.properties                                   |   2 +-
 doc/api/allclasses-frame.html                      |  24 +-
 doc/api/allclasses-noframe.html                    |  24 +-
 doc/api/bitronix/tm/BitronixTransaction.html       |  18 +-
 doc/api/bitronix/tm/BitronixTransactionMBean.html  |  10 +-
 .../bitronix/tm/BitronixTransactionManager.html    |  10 +-
 .../BitronixTransactionManagerObjectFactory.html   |  14 +-
 ...BitronixTransactionSynchronizationRegistry.html |  10 +-
 ...actionSynchronizationRegistryObjectFactory.html |  14 +-
 .../tm/BitronixUserTransactionObjectFactory.html   |  10 +-
 doc/api/bitronix/tm/BitronixXid.html               |  10 +-
 doc/api/bitronix/tm/Configuration.html             | 139 ++++++-
 .../bitronix/tm/TransactionManagerServices.html    |  38 +-
 doc/api/bitronix/tm/Version.html                   |  10 +-
 .../bitronix/tm/class-use/BitronixTransaction.html |  16 +-
 .../tm/class-use/BitronixTransactionMBean.html     |  10 +-
 .../tm/class-use/BitronixTransactionManager.html   |  10 +-
 .../BitronixTransactionManagerObjectFactory.html   |  10 +-
 ...BitronixTransactionSynchronizationRegistry.html |  10 +-
 ...actionSynchronizationRegistryObjectFactory.html |  10 +-
 .../BitronixUserTransactionObjectFactory.html      |  10 +-
 doc/api/bitronix/tm/class-use/BitronixXid.html     |  40 ++-
 doc/api/bitronix/tm/class-use/Configuration.html   |  27 +-
 .../tm/class-use/TransactionManagerServices.html   |  10 +-
 doc/api/bitronix/tm/class-use/Version.html         |  10 +-
 doc/api/bitronix/tm/gui/Console.html               |  10 +-
 .../bitronix/tm/gui/DuplicatedGtridTableModel.html |  10 +-
 .../tm/gui/PendingTransactionTableModel.html       |  10 +-
 .../bitronix/tm/gui/RawTransactionTableModel.html  |  10 +-
 doc/api/bitronix/tm/gui/ResourcesPanel.html        |  10 +-
 doc/api/bitronix/tm/gui/ResourcesTreeModel.html    |  10 +-
 doc/api/bitronix/tm/gui/TransactionLogDialog.html  |  10 +-
 .../bitronix/tm/gui/TransactionLogHeaderPanel.html |  10 +-
 .../tm/gui/TransactionTableCellRenderer.html       |  10 +-
 doc/api/bitronix/tm/gui/TransactionTableModel.html |  10 +-
 .../tm/gui/TransactionTableMouseListener.html      |  10 +-
 doc/api/bitronix/tm/gui/class-use/Console.html     |  10 +-
 .../gui/class-use/DuplicatedGtridTableModel.html   |  10 +-
 .../class-use/PendingTransactionTableModel.html    |  10 +-
 .../tm/gui/class-use/RawTransactionTableModel.html |  10 +-
 .../bitronix/tm/gui/class-use/ResourcesPanel.html  |  10 +-
 .../tm/gui/class-use/ResourcesTreeModel.html       |  10 +-
 .../tm/gui/class-use/TransactionLogDialog.html     |  10 +-
 .../gui/class-use/TransactionLogHeaderPanel.html   |  10 +-
 .../class-use/TransactionTableCellRenderer.html    |  10 +-
 .../tm/gui/class-use/TransactionTableModel.html    |  10 +-
 .../class-use/TransactionTableMouseListener.html   |  10 +-
 doc/api/bitronix/tm/gui/package-frame.html         |   6 +-
 doc/api/bitronix/tm/gui/package-summary.html       |  10 +-
 doc/api/bitronix/tm/gui/package-tree.html          |  10 +-
 doc/api/bitronix/tm/gui/package-use.html           |  10 +-
 .../internal/BitronixHeuristicCommitException.html |  10 +-
 .../internal/BitronixHeuristicMixedException.html  |  10 +-
 .../BitronixHeuristicRollbackException.html        |  10 +-
 .../tm/internal/BitronixMultiSystemException.html  |  10 +-
 .../tm/internal/BitronixRollbackException.html     |  10 +-
 .../internal/BitronixRollbackSystemException.html  |  10 +-
 .../tm/internal/BitronixRuntimeException.html      |  10 +-
 .../tm/internal/BitronixSystemException.html       |  10 +-
 .../bitronix/tm/internal/BitronixXAException.html  |  10 +-
 doc/api/bitronix/tm/internal/ThreadContext.html    |  32 +-
 .../internal/TransactionStatusChangeListener.html  |  14 +-
 .../tm/internal/XAResourceHolderState.html         |  14 +-
 .../bitronix/tm/internal/XAResourceManager.html    |  42 +--
 .../BitronixHeuristicCommitException.html          |  10 +-
 .../class-use/BitronixHeuristicMixedException.html |  10 +-
 .../BitronixHeuristicRollbackException.html        |  10 +-
 .../class-use/BitronixMultiSystemException.html    |  10 +-
 .../class-use/BitronixRollbackException.html       |  50 ++-
 .../class-use/BitronixRollbackSystemException.html |  10 +-
 .../class-use/BitronixRuntimeException.html        |  10 +-
 .../class-use/BitronixSystemException.html         |  18 +-
 .../tm/internal/class-use/BitronixXAException.html |  10 +-
 .../tm/internal/class-use/ThreadContext.html       |  10 +-
 .../class-use/TransactionStatusChangeListener.html |  10 +-
 .../class-use/TransactionTimeoutException.html     | 145 --------
 .../internal/class-use/XAResourceHolderState.html  | 198 +++++++++-
 .../tm/internal/class-use/XAResourceManager.html   |  10 +-
 doc/api/bitronix/tm/internal/package-frame.html    |  10 +-
 doc/api/bitronix/tm/internal/package-summary.html  |  14 +-
 doc/api/bitronix/tm/internal/package-tree.html     |  12 +-
 doc/api/bitronix/tm/internal/package-use.html      |  36 +-
 doc/api/bitronix/tm/jndi/BitronixContext.html      |  40 +--
 .../tm/jndi/BitronixInitialContextFactory.html     |  10 +-
 .../tm/jndi/class-use/BitronixContext.html         |  10 +-
 .../class-use/BitronixInitialContextFactory.html   |  10 +-
 doc/api/bitronix/tm/jndi/package-frame.html        |   6 +-
 doc/api/bitronix/tm/jndi/package-summary.html      |  10 +-
 doc/api/bitronix/tm/jndi/package-tree.html         |  10 +-
 doc/api/bitronix/tm/jndi/package-use.html          |  10 +-
 .../journal/CorruptedTransactionLogException.html  |  10 +-
 .../tm/journal/DiskForceBatcherThread.html         |  17 +-
 .../bitronix/tm/journal/DiskForceWaitQueue.html    |  10 +-
 doc/api/bitronix/tm/journal/DiskJournal.html       |  20 +-
 doc/api/bitronix/tm/journal/Journal.html           |  20 +-
 doc/api/bitronix/tm/journal/NullJournal.html       |  20 +-
 .../tm/journal/TransactionLogAppender.html         |  10 +-
 .../bitronix/tm/journal/TransactionLogCursor.html  |  10 +-
 .../bitronix/tm/journal/TransactionLogHeader.html  |  18 +-
 .../bitronix/tm/journal/TransactionLogRecord.html  |  41 +--
 .../CorruptedTransactionLogException.html          |  10 +-
 .../journal/class-use/DiskForceBatcherThread.html  |  10 +-
 .../tm/journal/class-use/DiskForceWaitQueue.html   |  10 +-
 .../bitronix/tm/journal/class-use/DiskJournal.html |  10 +-
 doc/api/bitronix/tm/journal/class-use/Journal.html |  10 +-
 .../bitronix/tm/journal/class-use/NullJournal.html |  10 +-
 .../journal/class-use/TransactionLogAppender.html  |  10 +-
 .../tm/journal/class-use/TransactionLogCursor.html |  10 +-
 .../tm/journal/class-use/TransactionLogHeader.html |  10 +-
 .../tm/journal/class-use/TransactionLogRecord.html |  42 ++-
 doc/api/bitronix/tm/journal/package-frame.html     |   6 +-
 doc/api/bitronix/tm/journal/package-summary.html   |  10 +-
 doc/api/bitronix/tm/journal/package-tree.html      |  10 +-
 doc/api/bitronix/tm/journal/package-use.html       |  10 +-
 doc/api/bitronix/tm/package-frame.html             |   6 +-
 doc/api/bitronix/tm/package-summary.html           |  10 +-
 doc/api/bitronix/tm/package-tree.html              |  10 +-
 doc/api/bitronix/tm/package-use.html               |  30 +-
 .../bitronix/tm/recovery/DanglingTransaction.html  |  12 +-
 .../bitronix/tm/recovery/IncrementalRecoverer.html |  10 +-
 doc/api/bitronix/tm/recovery/Recoverer.html        |  10 +-
 doc/api/bitronix/tm/recovery/RecovererMBean.html   |  10 +-
 .../bitronix/tm/recovery/RecoveryException.html    |  10 +-
 doc/api/bitronix/tm/recovery/RecoveryHelper.html   |  16 +-
 .../tm/recovery/class-use/DanglingTransaction.html |  10 +-
 .../recovery/class-use/IncrementalRecoverer.html   |  10 +-
 .../bitronix/tm/recovery/class-use/Recoverer.html  |  10 +-
 .../tm/recovery/class-use/RecovererMBean.html      |  10 +-
 .../tm/recovery/class-use/RecoveryException.html   |  10 +-
 .../tm/recovery/class-use/RecoveryHelper.html      |  10 +-
 doc/api/bitronix/tm/recovery/package-frame.html    |   6 +-
 doc/api/bitronix/tm/recovery/package-summary.html  |  10 +-
 doc/api/bitronix/tm/recovery/package-tree.html     |  10 +-
 doc/api/bitronix/tm/recovery/package-use.html      |  10 +-
 .../resource/ResourceConfigurationException.html   |  10 +-
 doc/api/bitronix/tm/resource/ResourceLoader.html   |  14 +-
 .../tm/resource/ResourceObjectFactory.html         |  14 +-
 .../bitronix/tm/resource/ResourceRegistrar.html    |  14 +-
 .../class-use/ResourceConfigurationException.html  |  10 +-
 .../tm/resource/class-use/ResourceLoader.html      |  10 +-
 .../resource/class-use/ResourceObjectFactory.html  |  10 +-
 .../tm/resource/class-use/ResourceRegistrar.html   |  10 +-
 .../resource/common/AbstractXAResourceHolder.html  |  18 +-
 .../resource/common/AbstractXAStatefulHolder.html  |  10 +-
 .../common/DeferredReleaseSynchronization.html     |  10 +-
 .../resource/common/RecoveryXAResourceHolder.html  |  14 +-
 .../bitronix/tm/resource/common/ResourceBean.html  |  10 +-
 .../tm/resource/common/StateChangeListener.html    |  10 +-
 .../resource/common/TransactionContextHelper.html  |  10 +-
 doc/api/bitronix/tm/resource/common/XAPool.html    |  32 +-
 .../tm/resource/common/XAResourceHolder.html       |  14 +-
 .../tm/resource/common/XAResourceProducer.html     |  10 +-
 .../tm/resource/common/XAStatefulHolder.html       |  14 +-
 .../common/class-use/AbstractXAResourceHolder.html |  12 +-
 .../common/class-use/AbstractXAStatefulHolder.html |  12 +-
 .../class-use/DeferredReleaseSynchronization.html  |  10 +-
 .../common/class-use/RecoveryXAResourceHolder.html |  10 +-
 .../tm/resource/common/class-use/ResourceBean.html |  10 +-
 .../common/class-use/StateChangeListener.html      |  10 +-
 .../common/class-use/TransactionContextHelper.html |  10 +-
 .../tm/resource/common/class-use/XAPool.html       |  10 +-
 .../common/class-use/XAResourceHolder.html         |  94 ++++-
 .../common/class-use/XAResourceProducer.html       |  26 +-
 .../common/class-use/XAStatefulHolder.html         |  12 +-
 .../bitronix/tm/resource/common/package-frame.html |   6 +-
 .../tm/resource/common/package-summary.html        |  10 +-
 .../bitronix/tm/resource/common/package-tree.html  |  10 +-
 .../bitronix/tm/resource/common/package-use.html   |  10 +-
 .../resource/ehcache/EhCacheXAResourceHolder.html  |  16 +-
 .../ehcache/EhCacheXAResourceProducer.html         |  34 +-
 .../ehcache/class-use/EhCacheXAResourceHolder.html |  10 +-
 .../class-use/EhCacheXAResourceProducer.html       |  10 +-
 .../tm/resource/ehcache/package-frame.html         |   6 +-
 .../tm/resource/ehcache/package-summary.html       |  12 +-
 .../bitronix/tm/resource/ehcache/package-tree.html |  10 +-
 .../bitronix/tm/resource/ehcache/package-use.html  |  10 +-
 .../tm/resource/jdbc/BaseProxyHandlerClass.html    |  12 +-
 .../tm/resource/jdbc/ConnectionCustomizer.html     |  10 +-
 .../resource/jdbc/JdbcCallableStatementHandle.html |  29 +-
 .../tm/resource/jdbc/JdbcConnectionHandle.html     |  29 +-
 .../tm/resource/jdbc/JdbcPooledConnection.html     |  14 +-
 .../resource/jdbc/JdbcPooledConnectionMBean.html   |  10 +-
 .../resource/jdbc/JdbcPreparedStatementHandle.html |  33 +-
 ...atementHandle.html => JdbcResultSetHandle.html} |  95 +++--
 .../tm/resource/jdbc/JdbcStatementHandle.html      | 123 ++++++-
 .../jdbc/JdbcUncachedPreparedStatementHandle.html  | 141 +++++++-
 .../tm/resource/jdbc/LruEvictionListener.html      |  10 +-
 .../tm/resource/jdbc/LruStatementCache.html        |  14 +-
 .../tm/resource/jdbc/PoolingDataSource.html        |  29 +-
 .../tm/resource/jdbc/PoolingDataSourceMBean.html   |  10 +-
 .../jdbc/class-use/BaseProxyHandlerClass.html      |  33 +-
 .../jdbc/class-use/ConnectionCustomizer.html       |  10 +-
 .../class-use/JdbcCallableStatementHandle.html     |  10 +-
 .../jdbc/class-use/JdbcConnectionHandle.html       |  10 +-
 .../jdbc/class-use/JdbcPooledConnection.html       |  10 +-
 .../jdbc/class-use/JdbcPooledConnectionMBean.html  |  10 +-
 .../class-use/JdbcPreparedStatementHandle.html     |  10 +-
 ...atementHandle.html => JdbcResultSetHandle.html} |  26 +-
 .../jdbc/class-use/JdbcStatementHandle.html        |  10 +-
 .../JdbcUncachedPreparedStatementHandle.html       |  10 +-
 .../jdbc/class-use/LruEvictionListener.html        |  10 +-
 .../resource/jdbc/class-use/LruStatementCache.html |  10 +-
 .../resource/jdbc/class-use/PoolingDataSource.html |  10 +-
 .../jdbc/class-use/PoolingDataSourceMBean.html     |  10 +-
 .../tm/resource/jdbc/lrc/LrcConnectionHandle.html  |  10 +-
 .../tm/resource/jdbc/lrc/LrcXAConnection.html      |  10 +-
 .../tm/resource/jdbc/lrc/LrcXADataSource.html      |  10 +-
 .../tm/resource/jdbc/lrc/LrcXAResource.html        |  10 +-
 .../jdbc/lrc/class-use/LrcConnectionHandle.html    |  10 +-
 .../jdbc/lrc/class-use/LrcXAConnection.html        |  10 +-
 .../jdbc/lrc/class-use/LrcXADataSource.html        |  10 +-
 .../resource/jdbc/lrc/class-use/LrcXAResource.html |  10 +-
 .../tm/resource/jdbc/lrc/package-frame.html        |   6 +-
 .../tm/resource/jdbc/lrc/package-summary.html      |  10 +-
 .../tm/resource/jdbc/lrc/package-tree.html         |  10 +-
 .../bitronix/tm/resource/jdbc/lrc/package-use.html |  10 +-
 .../bitronix/tm/resource/jdbc/package-frame.html   |   8 +-
 .../bitronix/tm/resource/jdbc/package-summary.html |  16 +-
 .../bitronix/tm/resource/jdbc/package-tree.html    |  12 +-
 doc/api/bitronix/tm/resource/jdbc/package-use.html |  10 +-
 .../tm/resource/jms/DualSessionWrapper.html        |  14 +-
 .../tm/resource/jms/JmsConnectionHandle.html       |  10 +-
 .../tm/resource/jms/JmsPooledConnection.html       |  18 +-
 .../tm/resource/jms/JmsPooledConnectionMBean.html  |  14 +-
 .../tm/resource/jms/JndiXAConnectionFactory.html   |  10 +-
 .../tm/resource/jms/MessageConsumerWrapper.html    |  12 +-
 .../resource/jms/MessageProducerConsumerKey.html   |  10 +-
 .../tm/resource/jms/MessageProducerWrapper.html    |  12 +-
 .../tm/resource/jms/PoolingConnectionFactory.html  |  10 +-
 .../jms/PoolingConnectionFactoryMBean.html         |  10 +-
 .../tm/resource/jms/TopicSubscriberWrapper.html    |  10 +-
 .../resource/jms/class-use/DualSessionWrapper.html |  10 +-
 .../jms/class-use/JmsConnectionHandle.html         |  10 +-
 .../jms/class-use/JmsPooledConnection.html         |  10 +-
 .../jms/class-use/JmsPooledConnectionMBean.html    |  10 +-
 .../jms/class-use/JndiXAConnectionFactory.html     |  10 +-
 .../jms/class-use/MessageConsumerWrapper.html      |  10 +-
 .../jms/class-use/MessageProducerConsumerKey.html  |  10 +-
 .../jms/class-use/MessageProducerWrapper.html      |  10 +-
 .../jms/class-use/PoolingConnectionFactory.html    |  10 +-
 .../class-use/PoolingConnectionFactoryMBean.html   |  10 +-
 .../jms/class-use/TopicSubscriberWrapper.html      |  10 +-
 .../tm/resource/jms/lrc/LrcXAConnection.html       |  10 +-
 .../resource/jms/lrc/LrcXAConnectionFactory.html   |  10 +-
 .../tm/resource/jms/lrc/LrcXAResource.html         |  10 +-
 .../bitronix/tm/resource/jms/lrc/LrcXASession.html |  10 +-
 .../jms/lrc/class-use/LrcXAConnection.html         |  10 +-
 .../jms/lrc/class-use/LrcXAConnectionFactory.html  |  10 +-
 .../resource/jms/lrc/class-use/LrcXAResource.html  |  10 +-
 .../resource/jms/lrc/class-use/LrcXASession.html   |  10 +-
 .../tm/resource/jms/lrc/package-frame.html         |   6 +-
 .../tm/resource/jms/lrc/package-summary.html       |  10 +-
 .../bitronix/tm/resource/jms/lrc/package-tree.html |  10 +-
 .../bitronix/tm/resource/jms/lrc/package-use.html  |  10 +-
 .../bitronix/tm/resource/jms/package-frame.html    |   6 +-
 .../bitronix/tm/resource/jms/package-summary.html  |  10 +-
 doc/api/bitronix/tm/resource/jms/package-tree.html |  10 +-
 doc/api/bitronix/tm/resource/jms/package-use.html  |  10 +-
 doc/api/bitronix/tm/resource/package-frame.html    |   6 +-
 doc/api/bitronix/tm/resource/package-summary.html  |  10 +-
 doc/api/bitronix/tm/resource/package-tree.html     |  10 +-
 doc/api/bitronix/tm/resource/package-use.html      |  10 +-
 doc/api/bitronix/tm/timer/PoolShrinkingTask.html   |  15 +-
 doc/api/bitronix/tm/timer/RecoveryTask.html        |  15 +-
 doc/api/bitronix/tm/timer/Task.html                |  58 +--
 doc/api/bitronix/tm/timer/TaskException.html       |  10 +-
 doc/api/bitronix/tm/timer/TaskScheduler.html       |  10 +-
 .../bitronix/tm/timer/TransactionTimeoutTask.html  |  15 +-
 .../tm/timer/class-use/PoolShrinkingTask.html      |  10 +-
 .../bitronix/tm/timer/class-use/RecoveryTask.html  |  10 +-
 doc/api/bitronix/tm/timer/class-use/Task.html      |  26 +-
 .../bitronix/tm/timer/class-use/TaskException.html |  10 +-
 .../bitronix/tm/timer/class-use/TaskScheduler.html |  10 +-
 .../tm/timer/class-use/TransactionTimeoutTask.html |  10 +-
 doc/api/bitronix/tm/timer/package-frame.html       |   6 +-
 doc/api/bitronix/tm/timer/package-summary.html     |  10 +-
 doc/api/bitronix/tm/timer/package-tree.html        |  13 +-
 doc/api/bitronix/tm/timer/package-use.html         |  10 +-
 doc/api/bitronix/tm/twopc/AbstractPhaseEngine.html |  30 +-
 doc/api/bitronix/tm/twopc/Committer.html           |  22 +-
 doc/api/bitronix/tm/twopc/PhaseException.html      |  26 +-
 doc/api/bitronix/tm/twopc/Preparer.html            |  20 +-
 doc/api/bitronix/tm/twopc/Rollbacker.html          |  21 +-
 .../tm/twopc/class-use/AbstractPhaseEngine.html    |  10 +-
 doc/api/bitronix/tm/twopc/class-use/Committer.html |  10 +-
 .../tm/twopc/class-use/PhaseException.html         |  10 +-
 doc/api/bitronix/tm/twopc/class-use/Preparer.html  |  10 +-
 .../bitronix/tm/twopc/class-use/Rollbacker.html    |  10 +-
 ...SimpleAsyncExecutor.html => AsyncExecutor.html} |  81 ++---
 .../twopc/executor/BackportConcurrentExecutor.html | 247 -------------
 .../tm/twopc/executor/ConcurrentExecutor.html      | 398 ---------------------
 doc/api/bitronix/tm/twopc/executor/Executor.html   |  42 +--
 doc/api/bitronix/tm/twopc/executor/Job.html        |  18 +-
 .../bitronix/tm/twopc/executor/SyncExecutor.html   |  41 +--
 ...SimpleAsyncExecutor.html => AsyncExecutor.html} |  26 +-
 .../class-use/BackportConcurrentExecutor.html      | 145 --------
 .../executor/class-use/ConcurrentExecutor.html     | 183 ----------
 .../tm/twopc/executor/class-use/Executor.html      |  31 +-
 .../bitronix/tm/twopc/executor/class-use/Job.html  |  20 +-
 .../tm/twopc/executor/class-use/SyncExecutor.html  |  10 +-
 .../bitronix/tm/twopc/executor/package-frame.html  |  12 +-
 .../tm/twopc/executor/package-summary.html         |  23 +-
 .../bitronix/tm/twopc/executor/package-tree.html   |  15 +-
 .../bitronix/tm/twopc/executor/package-use.html    |  16 +-
 doc/api/bitronix/tm/twopc/package-frame.html       |   6 +-
 doc/api/bitronix/tm/twopc/package-summary.html     |  10 +-
 doc/api/bitronix/tm/twopc/package-tree.html        |  10 +-
 doc/api/bitronix/tm/twopc/package-use.html         |  10 +-
 doc/api/bitronix/tm/utils/ClassLoaderUtils.html    |  10 +-
 doc/api/bitronix/tm/utils/CollectionUtils.html     |  14 +-
 doc/api/bitronix/tm/utils/CryptoEngine.html        |  10 +-
 doc/api/bitronix/tm/utils/Decoder.html             |  18 +-
 .../DefaultExceptionAnalyzer.html}                 | 105 ++----
 doc/api/bitronix/tm/utils/Encoder.html             |  18 +-
 .../utils/{Service.html => ExceptionAnalyzer.html} |  69 ++--
 .../ExceptionUtils.html}                           | 103 ++----
 .../bitronix/tm/utils/InitializationException.html |  14 +-
 doc/api/bitronix/tm/utils/ManagementRegistrar.html |  59 +--
 .../MonotonicClock.html}                           |  68 ++--
 doc/api/bitronix/tm/utils/PropertyException.html   |  14 +-
 doc/api/bitronix/tm/utils/PropertyUtils.html       |  10 +-
 doc/api/bitronix/tm/utils/Scheduler.html           | 164 ++++-----
 doc/api/bitronix/tm/utils/Service.html             |  18 +-
 .../StackTrace.html}                               |  69 ++--
 doc/api/bitronix/tm/utils/Uid.html                 |  14 +-
 doc/api/bitronix/tm/utils/UidGenerator.html        |  33 +-
 .../tm/utils/class-use/ClassLoaderUtils.html       |  10 +-
 .../tm/utils/class-use/CollectionUtils.html        |  10 +-
 .../bitronix/tm/utils/class-use/CryptoEngine.html  |  10 +-
 doc/api/bitronix/tm/utils/class-use/Decoder.html   |  10 +-
 ...{Decoder.html => DefaultExceptionAnalyzer.html} |  26 +-
 doc/api/bitronix/tm/utils/class-use/Encoder.html   |  10 +-
 .../class-use/ExceptionAnalyzer.html}              |  58 ++-
 .../{Encoder.html => ExceptionUtils.html}          |  26 +-
 .../utils/class-use/InitializationException.html   |  10 +-
 .../tm/utils/class-use/ManagementRegistrar.html    |  10 +-
 .../class-use/MonotonicClock.html}                 |  26 +-
 .../tm/utils/class-use/PropertyException.html      |  10 +-
 .../bitronix/tm/utils/class-use/PropertyUtils.html |  10 +-
 doc/api/bitronix/tm/utils/class-use/Scheduler.html |  12 +-
 doc/api/bitronix/tm/utils/class-use/Service.html   |  59 ++-
 .../class-use/StackTrace.html}                     |  26 +-
 doc/api/bitronix/tm/utils/class-use/Uid.html       |  80 ++++-
 .../bitronix/tm/utils/class-use/UidGenerator.html  |  10 +-
 doc/api/bitronix/tm/utils/package-frame.html       |  16 +-
 doc/api/bitronix/tm/utils/package-summary.html     |  32 +-
 doc/api/bitronix/tm/utils/package-tree.html        |  20 +-
 doc/api/bitronix/tm/utils/package-use.html         |  28 +-
 doc/api/constant-values.html                       |  40 +--
 doc/api/deprecated-list.html                       |  10 +-
 doc/api/help-doc.html                              |  10 +-
 doc/api/index-all.html                             | 288 ++++++++-------
 doc/api/index.html                                 |  40 ++-
 doc/api/overview-frame.html                        |   6 +-
 doc/api/overview-summary.html                      |  12 +-
 doc/api/overview-tree.html                         |  34 +-
 doc/api/serialized-form.html                       |  43 ++-
 release-notes-2.1.2.txt => release-notes-2.1.4.txt |  13 +-
 src/bitronix/tm/BitronixTransaction.java           | 214 +++++++----
 src/bitronix/tm/BitronixTransactionManager.java    | 121 ++++---
 .../BitronixTransactionManagerObjectFactory.java   |   2 +-
 ...BitronixTransactionSynchronizationRegistry.java |  41 +--
 ...actionSynchronizationRegistryObjectFactory.java |   2 +-
 src/bitronix/tm/BitronixXid.java                   |  20 +-
 src/bitronix/tm/Configuration.java                 |  97 +++--
 src/bitronix/tm/TransactionManagerServices.java    | 186 ++++++----
 src/bitronix/tm/Version.java                       |   2 +-
 src/bitronix/tm/gui/TransactionLogHeaderPanel.java |   2 +-
 .../tm/internal/BitronixMultiSystemException.java  |   4 +-
 src/bitronix/tm/internal/ThreadContext.java        |  17 +-
 .../tm/internal/XAResourceHolderState.java         |   7 +-
 src/bitronix/tm/internal/XAResourceManager.java    |  81 ++---
 src/bitronix/tm/jndi/BitronixContext.java          |  14 +-
 .../tm/journal/DiskForceBatcherThread.java         |  22 +-
 src/bitronix/tm/journal/DiskForceWaitQueue.java    |   4 +-
 src/bitronix/tm/journal/DiskJournal.java           |  60 ++--
 src/bitronix/tm/journal/Journal.java               |   4 +-
 src/bitronix/tm/journal/NullJournal.java           |   6 +-
 .../tm/journal/TransactionLogAppender.java         |  74 ++--
 src/bitronix/tm/journal/TransactionLogCursor.java  |   6 +-
 src/bitronix/tm/journal/TransactionLogHeader.java  | 111 +++---
 src/bitronix/tm/journal/TransactionLogRecord.java  |  87 ++---
 src/bitronix/tm/recovery/DanglingTransaction.java  |   6 +-
 src/bitronix/tm/recovery/IncrementalRecoverer.java |  12 +-
 src/bitronix/tm/recovery/Recoverer.java            | 157 +++-----
 src/bitronix/tm/recovery/RecoveryHelper.java       |  49 ++-
 src/bitronix/tm/resource/ResourceLoader.java       |  78 ++--
 .../tm/resource/ResourceObjectFactory.java         |   6 +-
 src/bitronix/tm/resource/ResourceRegistrar.java    |  80 +++--
 .../resource/common/AbstractXAResourceHolder.java  |  40 +--
 .../resource/common/AbstractXAStatefulHolder.java  |  26 +-
 .../common/DeferredReleaseSynchronization.java     |   9 +-
 .../resource/common/RecoveryXAResourceHolder.java  |  11 +-
 src/bitronix/tm/resource/common/ResourceBean.java  |  39 +-
 .../resource/common/TransactionContextHelper.java  |  43 +--
 src/bitronix/tm/resource/common/XAPool.java        | 140 ++++----
 .../tm/resource/common/XAResourceHolder.java       |   2 +-
 .../tm/resource/common/XAStatefulHolder.java       |   2 +-
 .../resource/ehcache/EhCacheXAResourceHolder.java  |  10 +-
 .../ehcache/EhCacheXAResourceProducer.java         | 135 ++++---
 .../tm/resource/jdbc/BaseProxyHandlerClass.java    |  36 +-
 .../resource/jdbc/JdbcCallableStatementHandle.java |  23 +-
 .../tm/resource/jdbc/JdbcConnectionHandle.java     |  52 ++-
 .../tm/resource/jdbc/JdbcPooledConnection.java     |  70 ++--
 .../resource/jdbc/JdbcPreparedStatementHandle.java |  21 +-
 ...atementHandle.java => JdbcResultSetHandle.java} |  54 +--
 .../tm/resource/jdbc/JdbcStatementHandle.java      |  48 ++-
 .../jdbc/JdbcUncachedPreparedStatementHandle.java  |  51 ++-
 .../tm/resource/jdbc/LruStatementCache.java        | 101 +++---
 .../tm/resource/jdbc/PoolingDataSource.java        |  91 ++---
 .../tm/resource/jdbc/lrc/LrcConnectionHandle.java  |  15 +-
 .../tm/resource/jdbc/lrc/LrcXAConnection.java      |  32 +-
 .../tm/resource/jdbc/lrc/LrcXADataSource.java      |  22 +-
 .../tm/resource/jdbc/lrc/LrcXAResource.java        |  15 +-
 .../tm/resource/jms/DualSessionWrapper.java        |  59 ++-
 .../tm/resource/jms/JmsConnectionHandle.java       |  20 +-
 .../tm/resource/jms/JmsPooledConnection.java       |  64 ++--
 .../tm/resource/jms/JmsPooledConnectionMBean.java  |   2 +-
 .../tm/resource/jms/JndiXAConnectionFactory.java   |  24 +-
 .../tm/resource/jms/MessageConsumerWrapper.java    |   6 +-
 .../resource/jms/MessageProducerConsumerKey.java   |  13 +-
 .../tm/resource/jms/MessageProducerWrapper.java    |   6 +-
 .../tm/resource/jms/PoolingConnectionFactory.java  |  34 +-
 .../tm/resource/jms/TopicSubscriberWrapper.java    |   4 +-
 .../tm/resource/jms/lrc/LrcXAConnection.java       |  14 +-
 .../resource/jms/lrc/LrcXAConnectionFactory.java   |  10 +-
 .../tm/resource/jms/lrc/LrcXAResource.java         |  17 +-
 src/bitronix/tm/resource/jms/lrc/LrcXASession.java |  20 +-
 src/bitronix/tm/timer/PoolShrinkingTask.java       |   2 +-
 src/bitronix/tm/timer/RecoveryTask.java            |   2 +-
 src/bitronix/tm/timer/Task.java                    |  14 +-
 src/bitronix/tm/timer/TaskScheduler.java           | 144 +++++---
 src/bitronix/tm/timer/TransactionTimeoutTask.java  |   2 +-
 src/bitronix/tm/twopc/AbstractPhaseEngine.java     |  96 +++--
 src/bitronix/tm/twopc/Committer.java               |  66 ++--
 src/bitronix/tm/twopc/PhaseException.java          |  25 +-
 src/bitronix/tm/twopc/Preparer.java                |  25 +-
 src/bitronix/tm/twopc/Rollbacker.java              |  51 +--
 ...SimpleAsyncExecutor.java => AsyncExecutor.java} |  42 ++-
 .../tm/twopc/executor/ConcurrentExecutor.java      | 148 --------
 src/bitronix/tm/twopc/executor/Executor.java       |   8 -
 src/bitronix/tm/twopc/executor/Job.java            |  13 +-
 src/bitronix/tm/twopc/executor/SyncExecutor.java   |   4 -
 src/bitronix/tm/utils/CollectionUtils.java         |   6 +-
 src/bitronix/tm/utils/CryptoEngine.java            |  32 +-
 src/bitronix/tm/utils/Decoder.java                 |   8 +-
 .../DefaultExceptionAnalyzer.java}                 |  34 +-
 .../bitronix/tm/utils/ExceptionAnalyzer.java       |  21 +-
 .../bitronix/tm/utils/ExceptionUtils.java          |  28 +-
 src/bitronix/tm/utils/ManagementRegistrar.java     |  65 +---
 .../MonotonicClock.java}                           |  33 +-
 src/bitronix/tm/utils/Scheduler.java               |  83 ++---
 .../StackTrace.java}                               |  15 +-
 src/bitronix/tm/utils/Uid.java                     |   6 +-
 src/bitronix/tm/utils/UidGenerator.java            |  17 +-
 test/bitronix/tm/ConfigurationTest.java            |  11 +-
 test/bitronix/tm/ExceptionAnalyzerTest.java        |  59 +++
 test/bitronix/tm/JtaTest.java                      |  36 +-
 test/bitronix/tm/journal/DiskJournalTest.java      |  20 +-
 test/bitronix/tm/mock/AbstractMockJdbcTest.java    |  11 +-
 test/bitronix/tm/mock/AbstractMockJmsTest.java     |   9 +-
 test/bitronix/tm/mock/DelistmentTest.java          |   7 +-
 test/bitronix/tm/mock/JdbcPoolTest.java            |  20 +-
 test/bitronix/tm/mock/resource/MockJournal.java    |  10 +-
 .../tm/mock/resource/jdbc/MockitoXADataSource.java |  10 +-
 test/bitronix/tm/recovery/RecovererTest.java       |  10 +-
 test/bitronix/tm/resource/common/XAPoolHelper.java |  14 +
 test/bitronix/tm/timer/TaskSchedulerTest.java      |  59 ++-
 test/bitronix/tm/twopc/OnePcFailureTest.java       | 178 +++++++++
 test/bitronix/tm/twopc/Phase1FailureTest.java      |   7 +-
 test/bitronix/tm/twopc/Phase2FailureTest.java      |   9 +-
 test/bitronix/tm/utils/CryptoEngineTest.java       |  13 +-
 .../tm/utils/DefaultExceptionAnalyzerTest.java     |  20 ++
 test/bitronix/tm/utils/SchedulerTest.java          |  54 +--
 test/log4j.xml                                     |  34 --
 test/logback.xml                                   |  44 +++
 test/oracle/jdbc/xa/OracleXAException.java         |  22 ++
 477 files changed, 6329 insertions(+), 5966 deletions(-)

diff --git a/build.properties b/build.properties
index 6cc5d3f..747d397 100644
--- a/build.properties
+++ b/build.properties
@@ -1,4 +1,4 @@
 #
 # The BTM version.
 #
-btm.version=2.1.2
+btm.version=2.1.4
diff --git a/doc/api/allclasses-frame.html b/doc/api/allclasses-frame.html
index 290f309..f58bc69 100644
--- a/doc/api/allclasses-frame.html
+++ b/doc/api/allclasses-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
+All Classes (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
@@ -28,7 +28,7 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/resource/common/AbstractXAStatefulHolder.html" title="class in bitronix.tm.resource.common" target="classFrame">AbstractXAStatefulHolder</A>
 <BR>
-<A HREF="bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">BackportConcurrentExecutor</A>
+<A HREF="bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">AsyncExecutor</A>
 <BR>
 <A HREF="bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">BaseProxyHandlerClass</A>
 <BR>
@@ -76,8 +76,6 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/twopc/Committer.html" title="class in bitronix.tm.twopc" target="classFrame">Committer</A>
 <BR>
-<A HREF="bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">ConcurrentExecutor</A>
-<BR>
 <A HREF="bitronix/tm/Configuration.html" title="class in bitronix.tm" target="classFrame">Configuration</A>
 <BR>
 <A HREF="bitronix/tm/resource/jdbc/ConnectionCustomizer.html" title="interface in bitronix.tm.resource.jdbc" target="classFrame"><I>ConnectionCustomizer</I></A>
@@ -92,6 +90,8 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils" target="classFrame">Decoder</A>
 <BR>
+<A HREF="bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils" target="classFrame">DefaultExceptionAnalyzer</A>
+<BR>
 <A HREF="bitronix/tm/resource/common/DeferredReleaseSynchronization.html" title="class in bitronix.tm.resource.common" target="classFrame">DeferredReleaseSynchronization</A>
 <BR>
 <A HREF="bitronix/tm/journal/DiskForceBatcherThread.html" title="class in bitronix.tm.journal" target="classFrame">DiskForceBatcherThread</A>
@@ -110,6 +110,10 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils" target="classFrame">Encoder</A>
 <BR>
+<A HREF="bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils" target="classFrame"><I>ExceptionAnalyzer</I></A>
+<BR>
+<A HREF="bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils" target="classFrame">ExceptionUtils</A>
+<BR>
 <A HREF="bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor" target="classFrame"><I>Executor</I></A>
 <BR>
 <A HREF="bitronix/tm/recovery/IncrementalRecoverer.html" title="class in bitronix.tm.recovery" target="classFrame">IncrementalRecoverer</A>
@@ -126,6 +130,8 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">JdbcPreparedStatementHandle</A>
 <BR>
+<A HREF="bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">JdbcResultSetHandle</A>
+<BR>
 <A HREF="bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">JdbcStatementHandle</A>
 <BR>
 <A HREF="bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">JdbcUncachedPreparedStatementHandle</A>
@@ -170,6 +176,8 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/resource/jms/MessageProducerWrapper.html" title="class in bitronix.tm.resource.jms" target="classFrame">MessageProducerWrapper</A>
 <BR>
+<A HREF="bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils" target="classFrame">MonotonicClock</A>
+<BR>
 <A HREF="bitronix/tm/journal/NullJournal.html" title="class in bitronix.tm.journal" target="classFrame">NullJournal</A>
 <BR>
 <A HREF="bitronix/tm/gui/PendingTransactionTableModel.html" title="class in bitronix.tm.gui" target="classFrame">PendingTransactionTableModel</A>
@@ -226,7 +234,7 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils" target="classFrame"><I>Service</I></A>
 <BR>
-<A HREF="bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">SimpleAsyncExecutor</A>
+<A HREF="bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils" target="classFrame">StackTrace</A>
 <BR>
 <A HREF="bitronix/tm/resource/common/StateChangeListener.html" title="interface in bitronix.tm.resource.common" target="classFrame"><I>StateChangeListener</I></A>
 <BR>
@@ -266,8 +274,6 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/gui/TransactionTableMouseListener.html" title="class in bitronix.tm.gui" target="classFrame">TransactionTableMouseListener</A>
 <BR>
-<A HREF="bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal" target="classFrame">TransactionTimeoutException</A>
-<BR>
 <A HREF="bitronix/tm/timer/TransactionTimeoutTask.html" title="class in bitronix.tm.timer" target="classFrame">TransactionTimeoutTask</A>
 <BR>
 <A HREF="bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils" target="classFrame">Uid</A>
diff --git a/doc/api/allclasses-noframe.html b/doc/api/allclasses-noframe.html
index 2672393..fbaa23b 100644
--- a/doc/api/allclasses-noframe.html
+++ b/doc/api/allclasses-noframe.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
+All Classes (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
@@ -28,7 +28,7 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/resource/common/AbstractXAStatefulHolder.html" title="class in bitronix.tm.resource.common">AbstractXAStatefulHolder</A>
 <BR>
-<A HREF="bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A>
+<A HREF="bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A>
 <BR>
 <A HREF="bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">BaseProxyHandlerClass</A>
 <BR>
@@ -76,8 +76,6 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/twopc/Committer.html" title="class in bitronix.tm.twopc">Committer</A>
 <BR>
-<A HREF="bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>
-<BR>
 <A HREF="bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
 <BR>
 <A HREF="bitronix/tm/resource/jdbc/ConnectionCustomizer.html" title="interface in bitronix.tm.resource.jdbc"><I>ConnectionCustomizer</I></A>
@@ -92,6 +90,8 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils">Decoder</A>
 <BR>
+<A HREF="bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils">DefaultExceptionAnalyzer</A>
+<BR>
 <A HREF="bitronix/tm/resource/common/DeferredReleaseSynchronization.html" title="class in bitronix.tm.resource.common">DeferredReleaseSynchronization</A>
 <BR>
 <A HREF="bitronix/tm/journal/DiskForceBatcherThread.html" title="class in bitronix.tm.journal">DiskForceBatcherThread</A>
@@ -110,6 +110,10 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils">Encoder</A>
 <BR>
+<A HREF="bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><I>ExceptionAnalyzer</I></A>
+<BR>
+<A HREF="bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils">ExceptionUtils</A>
+<BR>
 <A HREF="bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><I>Executor</I></A>
 <BR>
 <A HREF="bitronix/tm/recovery/IncrementalRecoverer.html" title="class in bitronix.tm.recovery">IncrementalRecoverer</A>
@@ -126,6 +130,8 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle</A>
 <BR>
+<A HREF="bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A>
+<BR>
 <A HREF="bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
 <BR>
 <A HREF="bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcUncachedPreparedStatementHandle</A>
@@ -170,6 +176,8 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/resource/jms/MessageProducerWrapper.html" title="class in bitronix.tm.resource.jms">MessageProducerWrapper</A>
 <BR>
+<A HREF="bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils">MonotonicClock</A>
+<BR>
 <A HREF="bitronix/tm/journal/NullJournal.html" title="class in bitronix.tm.journal">NullJournal</A>
 <BR>
 <A HREF="bitronix/tm/gui/PendingTransactionTableModel.html" title="class in bitronix.tm.gui">PendingTransactionTableModel</A>
@@ -226,7 +234,7 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils"><I>Service</I></A>
 <BR>
-<A HREF="bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A>
+<A HREF="bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils">StackTrace</A>
 <BR>
 <A HREF="bitronix/tm/resource/common/StateChangeListener.html" title="interface in bitronix.tm.resource.common"><I>StateChangeListener</I></A>
 <BR>
@@ -266,8 +274,6 @@ All Classes (Bitronix Transaction Manager :: Core 2.1.2 API)
 <BR>
 <A HREF="bitronix/tm/gui/TransactionTableMouseListener.html" title="class in bitronix.tm.gui">TransactionTableMouseListener</A>
 <BR>
-<A HREF="bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal">TransactionTimeoutException</A>
-<BR>
 <A HREF="bitronix/tm/timer/TransactionTimeoutTask.html" title="class in bitronix.tm.timer">TransactionTimeoutTask</A>
 <BR>
 <A HREF="bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>
diff --git a/doc/api/bitronix/tm/BitronixTransaction.html b/doc/api/bitronix/tm/BitronixTransaction.html
index 91c2394..7adc22f 100644
--- a/doc/api/bitronix/tm/BitronixTransaction.html
+++ b/doc/api/bitronix/tm/BitronixTransaction.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -232,7 +232,7 @@ Implementation of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transac
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A></CODE></FONT></TD>
+<CODE> <A HREF="../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/Synchronization.html?is-external=true" title="class or interface in javax.transaction">Synchronization</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../bitronix/tm/BitronixTransaction.html#getSynchronizationScheduler()">getSynchronizationScheduler</A></B>()</CODE>
 
 <BR>
@@ -298,7 +298,7 @@ Implementation of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transac
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../bitronix/tm/BitronixTransaction.html#setStatus(int, java.util.Set)">setStatus</A></B>(int status,
-          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
            </TD>
@@ -449,7 +449,7 @@ public void <B>registerSynchronization</B>(<A HREF="http://java.sun.com/j2se/1.5
 <A NAME="getSynchronizationScheduler()"><!-- --></A><H3>
 getSynchronizationScheduler</H3>
 <PRE>
-public <A HREF="../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A> <B>getSynchronizationScheduler</B>()</PRE>
+public <A HREF="../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/Synchronization.html?is-external=true" title="class or interface in javax.transaction">Synchronization</A>> <B>getSynchronizationScheduler</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -608,7 +608,7 @@ public void <B>setStatus</B>(int status)
 setStatus</H3>
 <PRE>
 public void <B>setStatus</B>(int status,
-                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)
+                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)
                throws <A HREF="../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal">BitronixSystemException</A></PRE>
 <DL>
 <DD><DL>
@@ -807,6 +807,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/BitronixTransactionMBean.html b/doc/api/bitronix/tm/BitronixTransactionMBean.html
index fe1cfce..1430a02 100644
--- a/doc/api/bitronix/tm/BitronixTransactionMBean.html
+++ b/doc/api/bitronix/tm/BitronixTransactionMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -289,6 +289,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/BitronixTransactionManager.html b/doc/api/bitronix/tm/BitronixTransactionManager.html
index 8de51cb..9d0a23a 100644
--- a/doc/api/bitronix/tm/BitronixTransactionManager.html
+++ b/doc/api/bitronix/tm/BitronixTransactionManager.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -674,6 +674,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/BitronixTransactionManagerObjectFactory.html b/doc/api/bitronix/tm/BitronixTransactionManagerObjectFactory.html
index c19a13c..5453e92 100644
--- a/doc/api/bitronix/tm/BitronixTransactionManagerObjectFactory.html
+++ b/doc/api/bitronix/tm/BitronixTransactionManagerObjectFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -150,7 +150,7 @@ Class BitronixTransactionManagerObjectFactory</H2>
 <TD><CODE><B><A HREF="../../bitronix/tm/BitronixTransactionManagerObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)">getObjectInstance</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj,
                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> name,
                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A> nameCtx,
-                  <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A> environment)</CODE>
+                  <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A><?,?> environment)</CODE>
 
 <BR>
           Since there can be only one transaction manager per VM instance, this method always returns a reference
@@ -202,7 +202,7 @@ getObjectInstance</H3>
 public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getObjectInstance</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj,
                                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> name,
                                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A> nameCtx,
-                                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A> environment)
+                                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A><?,?> environment)
                          throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
 <DL>
 <DD>Since there can be only one transaction manager per VM instance, this method always returns a reference
@@ -279,6 +279,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/BitronixTransactionSynchronizationRegistry.html b/doc/api/bitronix/tm/BitronixTransactionSynchronizationRegistry.html
index 564b361..65a07ec 100644
--- a/doc/api/bitronix/tm/BitronixTransactionSynchronizationRegistry.html
+++ b/doc/api/bitronix/tm/BitronixTransactionSynchronizationRegistry.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -421,6 +421,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.html b/doc/api/bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.html
index 5ebd193..0920ca9 100644
--- a/doc/api/bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.html
+++ b/doc/api/bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Ma
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -147,7 +147,7 @@ Class BitronixTransactionSynchronizationRegistryObjectFactory</H2>
 <TD><CODE><B><A HREF="../../bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)">getObjectInstance</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj,
                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> name,
                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A> nameCtx,
-                  <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A> environment)</CODE>
+                  <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A><?,?> environment)</CODE>
 
 <BR>
           Since there can be only one synchronization registry per VM instance, this method always returns a reference
@@ -199,7 +199,7 @@ getObjectInstance</H3>
 public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getObjectInstance</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj,
                                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> name,
                                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A> nameCtx,
-                                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A> environment)
+                                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A><?,?> environment)
                          throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
 <DL>
 <DD>Since there can be only one synchronization registry per VM instance, this method always returns a reference
@@ -276,6 +276,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/BitronixUserTransactionObjectFactory.html b/doc/api/bitronix/tm/BitronixUserTransactionObjectFactory.html
index c1c52fa..ed4ad84 100644
--- a/doc/api/bitronix/tm/BitronixUserTransactionObjectFactory.html
+++ b/doc/api/bitronix/tm/BitronixUserTransactionObjectFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -242,6 +242,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/BitronixXid.html b/doc/api/bitronix/tm/BitronixXid.html
index fb3dfb8..e31504b 100644
--- a/doc/api/bitronix/tm/BitronixXid.html
+++ b/doc/api/bitronix/tm/BitronixXid.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixXid (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixXid (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixXid (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixXid (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixXid (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -512,6 +512,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/Configuration.html b/doc/api/bitronix/tm/Configuration.html
index c693438..a4fc26d 100644
--- a/doc/api/bitronix/tm/Configuration.html
+++ b/doc/api/bitronix/tm/Configuration.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Configuration (Bitronix Transaction Manager :: Core 2.1.2 API)
+Configuration (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Configuration (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Configuration (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Configuration (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -185,6 +185,14 @@ Configuration repository of the transaction manager. You can set configurable va
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#getExceptionAnalyzer()">getExceptionAnalyzer</A></B>()</CODE>
+
+<BR>
+          Get the exception analyzer implementation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#getGracefulShutdownInterval()">getGracefulShutdownInterval</A></B>()</CODE>
 
@@ -263,7 +271,8 @@ Configuration repository of the transaction manager. You can set configurable va
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#isAllowMultipleLrc()">isAllowMultipleLrc</A></B>()</CODE>
 
 <BR>
-          Should the transaction manager allow enlistment of multiple LRC resources in a single transaction?</TD>
+          Should the transaction manager allow enlistment of multiple LRC resources in a single transaction?
+ This is highly unsafe but could be useful for testing.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -271,7 +280,9 @@ Configuration repository of the transaction manager. You can set configurable va
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#isAsynchronous2Pc()">isAsynchronous2Pc</A></B>()</CODE>
 
 <BR>
-          Should two phase commit be executed asynchronously?</TD>
+          Should two phase commit be executed asynchronously? Asynchronous two phase commit can improve performance when
+ there are many resources enlisted in transactions but is more CPU intensive due to the dynamic thread spawning
+ requirements.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -279,7 +290,17 @@ Configuration repository of the transaction manager. You can set configurable va
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#isCurrentNodeOnlyRecovery()">isCurrentNodeOnlyRecovery</A></B>()</CODE>
 
 <BR>
-          Should the recovery process <b>not</b> recover XIDs generated with another JVM unique ID?</TD>
+          Should the recovery process <b>not</b> recover XIDs generated with another JVM unique ID? Setting this property to true
+ is useful in clustered environments where multiple instances of BTM are running on different nodes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#isDebugZeroResourceTransaction()">isDebugZeroResourceTransaction</A></B>()</CODE>
+
+<BR>
+          Should creation and commit call stacks of transactions executed without a single enlisted tracked and logged
+ or not?</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -295,7 +316,8 @@ Configuration repository of the transaction manager. You can set configurable va
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#isFilterLogStatus()">isFilterLogStatus</A></B>()</CODE>
 
 <BR>
-          Should only mandatory logs be written?</TD>
+          Should only mandatory logs be written? Enabling this parameter lowers space usage of the fragments but makes
+ debugging more complex.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -303,7 +325,7 @@ Configuration repository of the transaction manager. You can set configurable va
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#isForceBatchingEnabled()">isForceBatchingEnabled</A></B>()</CODE>
 
 <BR>
-          Are disk forces batched?</TD>
+          Are disk forces batched? Disabling batching can seriously lower the transaction manager's throughput.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -311,7 +333,8 @@ Configuration repository of the transaction manager. You can set configurable va
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#isForcedWriteEnabled()">isForcedWriteEnabled</A></B>()</CODE>
 
 <BR>
-          Are logs forced to disk?</TD>
+          Are logs forced to disk?  Do not set to false in production since without disk force, integrity is not
+ guaranteed.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -327,7 +350,8 @@ Configuration repository of the transaction manager. You can set configurable va
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#isWarnAboutZeroResourceTransaction()">isWarnAboutZeroResourceTransaction</A></B>()</CODE>
 
 <BR>
-          Should transactions executed without a single enlisted resource result in a warning or not?</TD>
+          Should transactions executed without a single enlisted resource result in a warning or not? Most of the time
+ transactions executed with no enlisted resource reflect a bug or a mis-configuration somewhere.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -372,6 +396,15 @@ Configuration repository of the transaction manager. You can set configurable va
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#setDebugZeroResourceTransaction(boolean)">setDebugZeroResourceTransaction</A></B>(boolean debugZeroResourceTransaction)</CODE>
+
+<BR>
+          Set if creation and commit call stacks of transactions executed without a single enlisted resource should be
+ tracked and logged.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#setDefaultTransactionTimeout(int)">setDefaultTransactionTimeout</A></B>(int defaultTransactionTimeout)</CODE>
 
 <BR>
@@ -388,6 +421,14 @@ Configuration repository of the transaction manager. You can set configurable va
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#setExceptionAnalyzer(java.lang.String)">setExceptionAnalyzer</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> exceptionAnalyzer)</CODE>
+
+<BR>
+          Set the exception analyzer implementation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../bitronix/tm/Configuration.html#setFilterLogStatus(boolean)">setFilterLogStatus</A></B>(boolean filterLogStatus)</CODE>
 
 <BR>
@@ -921,6 +962,46 @@ public <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.t
 </DL>
 <HR>
 
+<A NAME="isDebugZeroResourceTransaction()"><!-- --></A><H3>
+isDebugZeroResourceTransaction</H3>
+<PRE>
+public boolean <B>isDebugZeroResourceTransaction</B>()</PRE>
+<DL>
+<DD>Should creation and commit call stacks of transactions executed without a single enlisted tracked and logged
+ or not?
+ <p>Property name:<br/><b>bitronix.tm.2pc.debugZeroResourceTransactions -</b> <i>(defaults to false)</i></p>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if creation and commit call stacks of transactions executed without a single enlisted resource
+         should be tracked and logged.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDebugZeroResourceTransaction(boolean)"><!-- --></A><H3>
+setDebugZeroResourceTransaction</H3>
+<PRE>
+public <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A> <B>setDebugZeroResourceTransaction</B>(boolean debugZeroResourceTransaction)</PRE>
+<DL>
+<DD>Set if creation and commit call stacks of transactions executed without a single enlisted resource should be
+ tracked and logged.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>debugZeroResourceTransaction</CODE> - true if the creation and commit call stacks of transaction executed without
+        a single enlisted resource should be tracked and logged.
+<DT><B>Returns:</B><DD>this.<DT><B>See Also:</B><DD><A HREF="../../bitronix/tm/Configuration.html#isDebugZeroResourceTransaction()"><CODE>isDebugZeroResourceTransaction()</CODE></A>, 
+<A HREF="../../bitronix/tm/Configuration.html#isWarnAboutZeroResourceTransaction()"><CODE>isWarnAboutZeroResourceTransaction()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="getDefaultTransactionTimeout()"><!-- --></A><H3>
 getDefaultTransactionTimeout</H3>
 <PRE>
@@ -1211,6 +1292,40 @@ public <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.t
 </DL>
 <HR>
 
+<A NAME="getExceptionAnalyzer()"><!-- --></A><H3>
+getExceptionAnalyzer</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getExceptionAnalyzer</B>()</PRE>
+<DL>
+<DD>Get the exception analyzer implementation. Can be <code>null</code> for the default one or a class name.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the exception analyzer name.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setExceptionAnalyzer(java.lang.String)"><!-- --></A><H3>
+setExceptionAnalyzer</H3>
+<PRE>
+public <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A> <B>setExceptionAnalyzer</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> exceptionAnalyzer)</PRE>
+<DL>
+<DD>Set the exception analyzer implementation. Can be <code>null</code> for the default one or a class name.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>exceptionAnalyzer</CODE> - the exception analyzer name.
+<DT><B>Returns:</B><DD>this.<DT><B>See Also:</B><DD><A HREF="../../bitronix/tm/Configuration.html#getExceptionAnalyzer()"><CODE>getExceptionAnalyzer()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="isCurrentNodeOnlyRecovery()"><!-- --></A><H3>
 isCurrentNodeOnlyRecovery</H3>
 <PRE>
@@ -1426,6 +1541,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/TransactionManagerServices.html b/doc/api/bitronix/tm/TransactionManagerServices.html
index 9280e09..8bb9fcb 100644
--- a/doc/api/bitronix/tm/TransactionManagerServices.html
+++ b/doc/api/bitronix/tm/TransactionManagerServices.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -103,9 +103,9 @@ Class TransactionManagerServices</H2>
 
 <P>
 Container for all BTM services.
- <p>The different services available are: <A HREF="../../bitronix/tm/BitronixTransactionManager.html" title="class in bitronix.tm"><CODE>BitronixTransactionManager</CODE></A>, <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.tm"><CODE>Configuration</CODE></A>, <A HREF="../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal"><CODE>Journal</CODE></A>,
- <A HREF="../../bitronix/tm/timer/TaskScheduler.html" title="class in bitronix.tm.timer"><CODE>TaskScheduler</CODE></A>, <A HREF="../../bitronix/tm/resource/ResourceLoader.html" title="class in bitronix.tm.resource"><CODE>ResourceLoader</CODE></A>, <A HREF="../../bitronix/tm/recovery/Recoverer.html" title="class in bitronix.tm.recovery"><CODE>Recoverer</CODE></A> and <A HREF="../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><CODE>Executor</C [...]
- of the TM so they must be globally reachable.</p>
+ <p>The different services available are: <A HREF="../../bitronix/tm/BitronixTransactionManager.html" title="class in bitronix.tm"><CODE>BitronixTransactionManager</CODE></A>, <A HREF="../../bitronix/tm/BitronixTransactionSynchronizationRegistry.html" title="class in bitronix.tm"><CODE>BitronixTransactionSynchronizationRegistry</CODE></A>
+ <A HREF="../../bitronix/tm/Configuration.html" title="class in bitronix.tm"><CODE>Configuration</CODE></A>, <A HREF="../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal"><CODE>Journal</CODE></A>, <A HREF="../../bitronix/tm/timer/TaskScheduler.html" title="class in bitronix.tm.timer"><CODE>TaskScheduler</CODE></A>, <A HREF="../../bitronix/tm/resource/ResourceLoader.html" title="class in bitronix.tm.resource"><CODE>ResourceLoader</CODE></A>, <A HREF="../../bitr [...]
+ They are used in all places of the TM so they must be globally reachable.</p>
 <P>
 
 <P>
@@ -159,6 +159,14 @@ Container for all BTM services.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../bitronix/tm/TransactionManagerServices.html#getExceptionAnalyzer()">getExceptionAnalyzer</A></B>()</CODE>
+
+<BR>
+          Create the exception analyzer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static <A HREF="../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../bitronix/tm/TransactionManagerServices.html#getExecutor()">getExecutor</A></B>()</CODE>
 
@@ -381,6 +389,20 @@ public static <A HREF="../../bitronix/tm/twopc/executor/Executor.html" title="in
 </DL>
 <HR>
 
+<A NAME="getExceptionAnalyzer()"><!-- --></A><H3>
+getExceptionAnalyzer</H3>
+<PRE>
+public static <A HREF="../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A> <B>getExceptionAnalyzer</B>()</PRE>
+<DL>
+<DD>Create the exception analyzer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the exception analyzer.</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="isTransactionManagerRunning()"><!-- --></A><H3>
 isTransactionManagerRunning</H3>
 <PRE>
@@ -481,6 +503,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/Version.html b/doc/api/bitronix/tm/Version.html
index 199efb2..efc1d07 100644
--- a/doc/api/bitronix/tm/Version.html
+++ b/doc/api/bitronix/tm/Version.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Version (Bitronix Transaction Manager :: Core 2.1.2 API)
+Version (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Version (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Version (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Version (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -248,6 +248,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/BitronixTransaction.html b/doc/api/bitronix/tm/class-use/BitronixTransaction.html
index 3b970d6..7773e19 100644
--- a/doc/api/bitronix/tm/class-use/BitronixTransaction.html
+++ b/doc/api/bitronix/tm/class-use/BitronixTransaction.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.BitronixTransaction (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.BitronixTransaction (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -277,14 +277,14 @@ Uses of <A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B>Committer.</B><B><A HREF="../../../bitronix/tm/twopc/Committer.html#commit(bitronix.tm.BitronixTransaction, java.util.List)">commit</A></B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
-       <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)</CODE>
+       <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
 
 <BR>
           Execute phase 2 commit.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B>Preparer.</B><B><A HREF="../../../bitronix/tm/twopc/Preparer.html#prepare(bitronix.tm.BitronixTransaction)">prepare</A></B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction)</CODE>
 
 <BR>
@@ -294,7 +294,7 @@ Uses of <A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B>Rollbacker.</B><B><A HREF="../../../bitronix/tm/twopc/Rollbacker.html#rollback(bitronix.tm.BitronixTransaction, java.util.List)">rollback</A></B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
-         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)</CODE>
+         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
 
 <BR>
           Rollback the current XA transaction.</TD>
@@ -356,6 +356,6 @@ Uses of <A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/BitronixTransactionMBean.html b/doc/api/bitronix/tm/class-use/BitronixTransactionMBean.html
index 5df0981..8af882e 100644
--- a/doc/api/bitronix/tm/class-use/BitronixTransactionMBean.html
+++ b/doc/api/bitronix/tm/class-use/BitronixTransactionMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.BitronixTransactionMBean (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.BitronixTransactionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../bitronix/tm/BitronixTransactionMBean.html" title="inte
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/BitronixTransactionManager.html b/doc/api/bitronix/tm/class-use/BitronixTransactionManager.html
index 0b59f07..67e8670 100644
--- a/doc/api/bitronix/tm/class-use/BitronixTransactionManager.html
+++ b/doc/api/bitronix/tm/class-use/BitronixTransactionManager.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.BitronixTransactionManager (Bitronix Transaction Manag
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.BitronixTransactionManager (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../bitronix/tm/BitronixTransactionManager.html" title="cl
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/BitronixTransactionManagerObjectFactory.html b/doc/api/bitronix/tm/class-use/BitronixTransactionManagerObjectFactory.html
index 11a0e00..0e28672 100644
--- a/doc/api/bitronix/tm/class-use/BitronixTransactionManagerObjectFactory.html
+++ b/doc/api/bitronix/tm/class-use/BitronixTransactionManagerObjectFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.BitronixTransactionManagerObjectFactory (Bitronix Tran
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.BitronixTransactionManagerObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../bitronix/tm/BitronixTransactionManagerObjectFactory.ht
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/BitronixTransactionSynchronizationRegistry.html b/doc/api/bitronix/tm/class-use/BitronixTransactionSynchronizationRegistry.html
index 9f1aae2..da48c92 100644
--- a/doc/api/bitronix/tm/class-use/BitronixTransactionSynchronizationRegistry.html
+++ b/doc/api/bitronix/tm/class-use/BitronixTransactionSynchronizationRegistry.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistry (Bitronix T
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistry (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../bitronix/tm/BitronixTransactionSynchronizationRegistry
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/BitronixTransactionSynchronizationRegistryObjectFactory.html b/doc/api/bitronix/tm/class-use/BitronixTransactionSynchronizationRegistryObjectFactory.html
index b1a1e33..f86d187 100644
--- a/doc/api/bitronix/tm/class-use/BitronixTransactionSynchronizationRegistryObjectFactory.html
+++ b/doc/api/bitronix/tm/class-use/BitronixTransactionSynchronizationRegistryObjectFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistryObjectFactor
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.BitronixTransactionSynchronizationRegistryObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.BitronixTransactionSynchronizationRegistryObjectFactory
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/BitronixUserTransactionObjectFactory.html b/doc/api/bitronix/tm/class-use/BitronixUserTransactionObjectFactory.html
index 00afe5b..efa41b0 100644
--- a/doc/api/bitronix/tm/class-use/BitronixUserTransactionObjectFactory.html
+++ b/doc/api/bitronix/tm/class-use/BitronixUserTransactionObjectFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.BitronixUserTransactionObjectFactory (Bitronix Transac
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.BitronixUserTransactionObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.BitronixUserTransactionObjectFactory
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/BitronixXid.html b/doc/api/bitronix/tm/class-use/BitronixXid.html
index 3da153c..c9afbdf 100644
--- a/doc/api/bitronix/tm/class-use/BitronixXid.html
+++ b/doc/api/bitronix/tm/class-use/BitronixXid.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.BitronixXid (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.BitronixXid (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.BitronixXid (Bitronix Transaction Manager :: Core 2.1.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.BitronixXid (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.BitronixXid (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -96,6 +96,11 @@ Packages that use <A HREF="../../../bitronix/tm/BitronixXid.html" title="class i
         Internal implementation details. </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#bitronix.tm.recovery"><B>bitronix.tm.recovery</B></A></TD>
+<TD>
+        Recovery logic. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><A HREF="#bitronix.tm.resource.common"><B>bitronix.tm.resource.common</B></A></TD>
 <TD>
         Resource management code common across all resource types. </TD>
@@ -149,6 +154,31 @@ Uses of <A HREF="../../../bitronix/tm/BitronixXid.html" title="class in bitronix
 </TABLE>
  
 <P>
+<A NAME="bitronix.tm.recovery"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../bitronix/tm/BitronixXid.html" title="class in bitronix.tm">BitronixXid</A> in <A HREF="../../../bitronix/tm/recovery/package-summary.html">bitronix.tm.recovery</A></FONT></TH>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../bitronix/tm/recovery/package-summary.html">bitronix.tm.recovery</A> that return types with arguments of type <A HREF="../../../bitronix/tm/BitronixXid.html" title="class in bitronix.tm">BitronixXid</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="../../../bitronix/tm/BitronixXid.html" title="class in bitronix.tm">BitronixXid</A>></CODE></FONT></TD>
+<TD><CODE><B>RecoveryHelper.</B><B><A HREF="../../../bitronix/tm/recovery/RecoveryHelper.html#recover(bitronix.tm.internal.XAResourceHolderState)">recover</A></B>(<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A> xaResourceHolderState)</CODE>
+
+<BR>
+          Run the recovery process on the target resource.</TD>
+</TR>
+</TABLE>
+ 
+<P>
 <A NAME="bitronix.tm.resource.common"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
@@ -279,6 +309,6 @@ Uses of <A HREF="../../../bitronix/tm/BitronixXid.html" title="class in bitronix
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/Configuration.html b/doc/api/bitronix/tm/class-use/Configuration.html
index e23f83e..c41f4f9 100644
--- a/doc/api/bitronix/tm/class-use/Configuration.html
+++ b/doc/api/bitronix/tm/class-use/Configuration.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.Configuration (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.Configuration (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.Configuration (Bitronix Transaction Manager :: Core 2.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.Configuration (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.Configuration (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -163,6 +163,15 @@ Uses of <A HREF="../../../bitronix/tm/Configuration.html" title="class in bitron
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="../../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A></CODE></FONT></TD>
+<TD><CODE><B>Configuration.</B><B><A HREF="../../../bitronix/tm/Configuration.html#setDebugZeroResourceTransaction(boolean)">setDebugZeroResourceTransaction</A></B>(boolean debugZeroResourceTransaction)</CODE>
+
+<BR>
+          Set if creation and commit call stacks of transactions executed without a single enlisted resource should be
+ tracked and logged.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A></CODE></FONT></TD>
 <TD><CODE><B>Configuration.</B><B><A HREF="../../../bitronix/tm/Configuration.html#setDefaultTransactionTimeout(int)">setDefaultTransactionTimeout</A></B>(int defaultTransactionTimeout)</CODE>
 
 <BR>
@@ -179,6 +188,14 @@ Uses of <A HREF="../../../bitronix/tm/Configuration.html" title="class in bitron
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="../../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A></CODE></FONT></TD>
+<TD><CODE><B>Configuration.</B><B><A HREF="../../../bitronix/tm/Configuration.html#setExceptionAnalyzer(java.lang.String)">setExceptionAnalyzer</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> exceptionAnalyzer)</CODE>
+
+<BR>
+          Set the exception analyzer implementation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A></CODE></FONT></TD>
 <TD><CODE><B>Configuration.</B><B><A HREF="../../../bitronix/tm/Configuration.html#setFilterLogStatus(boolean)">setFilterLogStatus</A></B>(boolean filterLogStatus)</CODE>
 
 <BR>
@@ -348,6 +365,6 @@ Uses of <A HREF="../../../bitronix/tm/Configuration.html" title="class in bitron
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/TransactionManagerServices.html b/doc/api/bitronix/tm/class-use/TransactionManagerServices.html
index 0890caf..44754de 100644
--- a/doc/api/bitronix/tm/class-use/TransactionManagerServices.html
+++ b/doc/api/bitronix/tm/class-use/TransactionManagerServices.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.TransactionManagerServices (Bitronix Transaction Manag
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.TransactionManagerServices (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.TransactionManagerServices
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/class-use/Version.html b/doc/api/bitronix/tm/class-use/Version.html
index 109ab90..96205c1 100644
--- a/doc/api/bitronix/tm/class-use/Version.html
+++ b/doc/api/bitronix/tm/class-use/Version.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.Version (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.Version (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.Version (Bitronix Transaction Manager :: Core 2.1.2 AP
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.Version (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.Version (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.Version
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/Console.html b/doc/api/bitronix/tm/gui/Console.html
index 5674d58..a34764d 100644
--- a/doc/api/bitronix/tm/gui/Console.html
+++ b/doc/api/bitronix/tm/gui/Console.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:01 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:11 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Console (Bitronix Transaction Manager :: Core 2.1.2 API)
+Console (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Console (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Console (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Console (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -490,6 +490,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/DuplicatedGtridTableModel.html b/doc/api/bitronix/tm/gui/DuplicatedGtridTableModel.html
index 16816e9..86592be 100644
--- a/doc/api/bitronix/tm/gui/DuplicatedGtridTableModel.html
+++ b/doc/api/bitronix/tm/gui/DuplicatedGtridTableModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:02 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -333,6 +333,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/PendingTransactionTableModel.html b/doc/api/bitronix/tm/gui/PendingTransactionTableModel.html
index 4c38c02..30142e7 100644
--- a/doc/api/bitronix/tm/gui/PendingTransactionTableModel.html
+++ b/doc/api/bitronix/tm/gui/PendingTransactionTableModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:02 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -507,6 +507,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/RawTransactionTableModel.html b/doc/api/bitronix/tm/gui/RawTransactionTableModel.html
index ea986d8..f2ee8d2 100644
--- a/doc/api/bitronix/tm/gui/RawTransactionTableModel.html
+++ b/doc/api/bitronix/tm/gui/RawTransactionTableModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:02 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -537,6 +537,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/ResourcesPanel.html b/doc/api/bitronix/tm/gui/ResourcesPanel.html
index 7aad2d8..2a237eb 100644
--- a/doc/api/bitronix/tm/gui/ResourcesPanel.html
+++ b/doc/api/bitronix/tm/gui/ResourcesPanel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:02 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.2 API)
+ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -352,6 +352,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/ResourcesTreeModel.html b/doc/api/bitronix/tm/gui/ResourcesTreeModel.html
index 195b1e3..347b639 100644
--- a/doc/api/bitronix/tm/gui/ResourcesTreeModel.html
+++ b/doc/api/bitronix/tm/gui/ResourcesTreeModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:02 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -418,6 +418,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/TransactionLogDialog.html b/doc/api/bitronix/tm/gui/TransactionLogDialog.html
index 9be1895..9124cf5 100644
--- a/doc/api/bitronix/tm/gui/TransactionLogDialog.html
+++ b/doc/api/bitronix/tm/gui/TransactionLogDialog.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:02 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -396,6 +396,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/TransactionLogHeaderPanel.html b/doc/api/bitronix/tm/gui/TransactionLogHeaderPanel.html
index 692b9fe..3ad5a56 100644
--- a/doc/api/bitronix/tm/gui/TransactionLogHeaderPanel.html
+++ b/doc/api/bitronix/tm/gui/TransactionLogHeaderPanel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -465,6 +465,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/TransactionTableCellRenderer.html b/doc/api/bitronix/tm/gui/TransactionTableCellRenderer.html
index f367a31..d54ed96 100644
--- a/doc/api/bitronix/tm/gui/TransactionTableCellRenderer.html
+++ b/doc/api/bitronix/tm/gui/TransactionTableCellRenderer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -444,6 +444,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/TransactionTableModel.html b/doc/api/bitronix/tm/gui/TransactionTableModel.html
index 0ea6405..3236158 100644
--- a/doc/api/bitronix/tm/gui/TransactionTableModel.html
+++ b/doc/api/bitronix/tm/gui/TransactionTableModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -357,6 +357,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/TransactionTableMouseListener.html b/doc/api/bitronix/tm/gui/TransactionTableMouseListener.html
index b063fd9..8726e50 100644
--- a/doc/api/bitronix/tm/gui/TransactionTableMouseListener.html
+++ b/doc/api/bitronix/tm/gui/TransactionTableMouseListener.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -274,6 +274,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/Console.html b/doc/api/bitronix/tm/gui/class-use/Console.html
index acbd26f..7f54df5 100644
--- a/doc/api/bitronix/tm/gui/class-use/Console.html
+++ b/doc/api/bitronix/tm/gui/class-use/Console.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.Console (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.Console (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.Console (Bitronix Transaction Manager :: Core 2.1.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.Console (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.Console (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.Console
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/DuplicatedGtridTableModel.html b/doc/api/bitronix/tm/gui/class-use/DuplicatedGtridTableModel.html
index beb7b02..41f07ff 100644
--- a/doc/api/bitronix/tm/gui/class-use/DuplicatedGtridTableModel.html
+++ b/doc/api/bitronix/tm/gui/class-use/DuplicatedGtridTableModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.DuplicatedGtridTableModel (Bitronix Transaction Ma
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.DuplicatedGtridTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.DuplicatedGtridTableModel
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/PendingTransactionTableModel.html b/doc/api/bitronix/tm/gui/class-use/PendingTransactionTableModel.html
index c9c3851..4c85394 100644
--- a/doc/api/bitronix/tm/gui/class-use/PendingTransactionTableModel.html
+++ b/doc/api/bitronix/tm/gui/class-use/PendingTransactionTableModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.PendingTransactionTableModel (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.PendingTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.PendingTransactionTableModel
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/RawTransactionTableModel.html b/doc/api/bitronix/tm/gui/class-use/RawTransactionTableModel.html
index 67425af..3bac94a 100644
--- a/doc/api/bitronix/tm/gui/class-use/RawTransactionTableModel.html
+++ b/doc/api/bitronix/tm/gui/class-use/RawTransactionTableModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.RawTransactionTableModel (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.RawTransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.RawTransactionTableModel
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/ResourcesPanel.html b/doc/api/bitronix/tm/gui/class-use/ResourcesPanel.html
index c915e15..456a19f 100644
--- a/doc/api/bitronix/tm/gui/class-use/ResourcesPanel.html
+++ b/doc/api/bitronix/tm/gui/class-use/ResourcesPanel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.ResourcesPanel (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.ResourcesPanel
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/ResourcesTreeModel.html b/doc/api/bitronix/tm/gui/class-use/ResourcesTreeModel.html
index 92e8920..c2af4d9 100644
--- a/doc/api/bitronix/tm/gui/class-use/ResourcesTreeModel.html
+++ b/doc/api/bitronix/tm/gui/class-use/ResourcesTreeModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.ResourcesTreeModel (Bitronix Transaction Manager :
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.ResourcesTreeModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.ResourcesTreeModel
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/TransactionLogDialog.html b/doc/api/bitronix/tm/gui/class-use/TransactionLogDialog.html
index 3c829c2..31ff434 100644
--- a/doc/api/bitronix/tm/gui/class-use/TransactionLogDialog.html
+++ b/doc/api/bitronix/tm/gui/class-use/TransactionLogDialog.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.TransactionLogDialog (Bitronix Transaction Manager
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.TransactionLogDialog (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.TransactionLogDialog
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/TransactionLogHeaderPanel.html b/doc/api/bitronix/tm/gui/class-use/TransactionLogHeaderPanel.html
index 261f2e6..c451693 100644
--- a/doc/api/bitronix/tm/gui/class-use/TransactionLogHeaderPanel.html
+++ b/doc/api/bitronix/tm/gui/class-use/TransactionLogHeaderPanel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.TransactionLogHeaderPanel (Bitronix Transaction Ma
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.TransactionLogHeaderPanel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.TransactionLogHeaderPanel
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/TransactionTableCellRenderer.html b/doc/api/bitronix/tm/gui/class-use/TransactionTableCellRenderer.html
index 94e78e5..43fc300 100644
--- a/doc/api/bitronix/tm/gui/class-use/TransactionTableCellRenderer.html
+++ b/doc/api/bitronix/tm/gui/class-use/TransactionTableCellRenderer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.TransactionTableCellRenderer (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.TransactionTableCellRenderer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.TransactionTableCellRenderer
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/TransactionTableModel.html b/doc/api/bitronix/tm/gui/class-use/TransactionTableModel.html
index c40e83d..987ad22 100644
--- a/doc/api/bitronix/tm/gui/class-use/TransactionTableModel.html
+++ b/doc/api/bitronix/tm/gui/class-use/TransactionTableModel.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.TransactionTableModel (Bitronix Transaction Manage
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.TransactionTableModel (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -185,6 +185,6 @@ Uses of <A HREF="../../../../bitronix/tm/gui/TransactionTableModel.html" title="
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/TransactionTableMouseListener.html b/doc/api/bitronix/tm/gui/class-use/TransactionTableMouseListener.html
index 9986dc2..3f89128 100644
--- a/doc/api/bitronix/tm/gui/class-use/TransactionTableMouseListener.html
+++ b/doc/api/bitronix/tm/gui/class-use/TransactionTableMouseListener.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.gui.TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.TransactionTableMouseListener (Bitronix Transactio
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.gui.TransactionTableMouseListener (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.TransactionTableMouseListener
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/package-frame.html b/doc/api/bitronix/tm/gui/package-frame.html
index 7944a7f..e38031c 100644
--- a/doc/api/bitronix/tm/gui/package-frame.html
+++ b/doc/api/bitronix/tm/gui/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/gui/package-summary.html b/doc/api/bitronix/tm/gui/package-summary.html
index a9e2ef9..c59832c 100644
--- a/doc/api/bitronix/tm/gui/package-summary.html
+++ b/doc/api/bitronix/tm/gui/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -211,6 +211,6 @@ Package bitronix.tm.gui Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/package-tree.html b/doc/api/bitronix/tm/gui/package-tree.html
index adeebf3..10d7e3a 100644
--- a/doc/api/bitronix/tm/gui/package-tree.html
+++ b/doc/api/bitronix/tm/gui/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.gui Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.gui Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.gui Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.gui Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.gui Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -193,6 +193,6 @@ Class Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/package-use.html b/doc/api/bitronix/tm/gui/package-use.html
index a3a4f0f..165be63 100644
--- a/doc/api/bitronix/tm/gui/package-use.html
+++ b/doc/api/bitronix/tm/gui/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.gui (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -167,6 +167,6 @@ Classes in <A HREF="../../../bitronix/tm/gui/package-summary.html">bitronix.tm.g
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixHeuristicCommitException.html b/doc/api/bitronix/tm/internal/BitronixHeuristicCommitException.html
index 1a73b48..5f9771a 100644
--- a/doc/api/bitronix/tm/internal/BitronixHeuristicCommitException.html
+++ b/doc/api/bitronix/tm/internal/BitronixHeuristicCommitException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.2 API
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -259,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixHeuristicMixedException.html b/doc/api/bitronix/tm/internal/BitronixHeuristicMixedException.html
index 3aa4e81..52b0bf0 100644
--- a/doc/api/bitronix/tm/internal/BitronixHeuristicMixedException.html
+++ b/doc/api/bitronix/tm/internal/BitronixHeuristicMixedException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -259,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixHeuristicRollbackException.html b/doc/api/bitronix/tm/internal/BitronixHeuristicRollbackException.html
index ddc5955..5f98593 100644
--- a/doc/api/bitronix/tm/internal/BitronixHeuristicRollbackException.html
+++ b/doc/api/bitronix/tm/internal/BitronixHeuristicRollbackException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.2 A
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -259,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixMultiSystemException.html b/doc/api/bitronix/tm/internal/BitronixMultiSystemException.html
index c1a6121..b7568f0 100644
--- a/doc/api/bitronix/tm/internal/BitronixMultiSystemException.html
+++ b/doc/api/bitronix/tm/internal/BitronixMultiSystemException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -362,6 +362,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixRollbackException.html b/doc/api/bitronix/tm/internal/BitronixRollbackException.html
index 36cd26a..44b4328 100644
--- a/doc/api/bitronix/tm/internal/BitronixRollbackException.html
+++ b/doc/api/bitronix/tm/internal/BitronixRollbackException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -259,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixRollbackSystemException.html b/doc/api/bitronix/tm/internal/BitronixRollbackSystemException.html
index 3e32bfc..5fdd6ba 100644
--- a/doc/api/bitronix/tm/internal/BitronixRollbackSystemException.html
+++ b/doc/api/bitronix/tm/internal/BitronixRollbackSystemException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -265,6 +265,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixRuntimeException.html b/doc/api/bitronix/tm/internal/BitronixRuntimeException.html
index 6a1c02f..fd4d13a 100644
--- a/doc/api/bitronix/tm/internal/BitronixRuntimeException.html
+++ b/doc/api/bitronix/tm/internal/BitronixRuntimeException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -259,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixSystemException.html b/doc/api/bitronix/tm/internal/BitronixSystemException.html
index 1e8a6e9..fa6e519 100644
--- a/doc/api/bitronix/tm/internal/BitronixSystemException.html
+++ b/doc/api/bitronix/tm/internal/BitronixSystemException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -294,6 +294,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/BitronixXAException.html b/doc/api/bitronix/tm/internal/BitronixXAException.html
index ae8f72d..1e7aac5 100644
--- a/doc/api/bitronix/tm/internal/BitronixXAException.html
+++ b/doc/api/bitronix/tm/internal/BitronixXAException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixXAException (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixXAException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixXAException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixXAException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixXAException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -309,6 +309,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/ThreadContext.html b/doc/api/bitronix/tm/internal/ThreadContext.html
index 773a7d9..5e129ac 100644
--- a/doc/api/bitronix/tm/internal/ThreadContext.html
+++ b/doc/api/bitronix/tm/internal/ThreadContext.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ThreadContext (Bitronix Transaction Manager :: Core 2.1.2 API)
+ThreadContext (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ThreadContext (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ThreadContext (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ThreadContext (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -141,6 +141,14 @@ Transactional context of a thread. It contains both the active transaction (if a
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/internal/ThreadContext.html#getResources()">getResources</A></B>()</CODE>
+
+<BR>
+          Get this context's resources, in the JTA 1.1 TransactionSynchronizationRegistry sense.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/internal/ThreadContext.html#getTimeout()">getTimeout</A></B>()</CODE>
 
@@ -274,6 +282,20 @@ public void <B>setTimeout</B>(int timeout)</PRE>
 </DL>
 <HR>
 
+<A NAME="getResources()"><!-- --></A><H3>
+getResources</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>,<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>> <B>getResources</B>()</PRE>
+<DL>
+<DD>Get this context's resources, in the JTA 1.1 TransactionSynchronizationRegistry sense.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this context's resources.</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="toString()"><!-- --></A><H3>
 toString</H3>
 <PRE>
@@ -350,6 +372,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/TransactionStatusChangeListener.html b/doc/api/bitronix/tm/internal/TransactionStatusChangeListener.html
index 5be90f5..9f8a83b 100644
--- a/doc/api/bitronix/tm/internal/TransactionStatusChangeListener.html
+++ b/doc/api/bitronix/tm/internal/TransactionStatusChangeListener.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -57,7 +57,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../bitronix/tm/internal/ThreadContext.html" title="class in bitronix.tm.internal"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/internal/TransactionStatusChangeListener.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="TransactionStatusChangeListener.html" target="_top"><B>NO FRAMES</B></A>   
@@ -185,7 +185,7 @@ void <B>statusChanged</B>(int oldStatus,
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../bitronix/tm/internal/ThreadContext.html" title="class in bitronix.tm.internal"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/internal/TransactionStatusChangeListener.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="TransactionStatusChangeListener.html" target="_top"><B>NO FRAMES</B></A>   
@@ -214,6 +214,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/XAResourceHolderState.html b/doc/api/bitronix/tm/internal/XAResourceHolderState.html
index e1ff110..1c22c9d 100644
--- a/doc/api/bitronix/tm/internal/XAResourceHolderState.html
+++ b/doc/api/bitronix/tm/internal/XAResourceHolderState.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.2 API)
+XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -56,7 +56,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/internal/TransactionStatusChangeListener.html" title="interface in bitronix.tm.internal"><B>PREV CLASS</B></A> 
  <A HREF="../../../bitronix/tm/internal/XAResourceManager.html" title="class in bitronix.tm.internal"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/internal/XAResourceHolderState.html" target="_top"><B>FRAMES</B></A>   
@@ -610,7 +610,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/internal/TransactionStatusChangeListener.html" title="interface in bitronix.tm.internal"><B>PREV CLASS</B></A> 
  <A HREF="../../../bitronix/tm/internal/XAResourceManager.html" title="class in bitronix.tm.internal"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/internal/XAResourceHolderState.html" target="_top"><B>FRAMES</B></A>   
@@ -640,6 +640,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/XAResourceManager.html b/doc/api/bitronix/tm/internal/XAResourceManager.html
index aaad464..65ea879 100644
--- a/doc/api/bitronix/tm/internal/XAResourceManager.html
+++ b/doc/api/bitronix/tm/internal/XAResourceManager.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-XAResourceManager (Bitronix Transaction Manager :: Core 2.1.2 API)
+XAResourceManager (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ XAResourceManager (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="XAResourceManager (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="XAResourceManager (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -150,7 +150,7 @@ Every <A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bi
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/internal/XAResourceManager.html#collectUniqueNames()">collectUniqueNames</A></B>()</CODE>
 
 <BR>
@@ -183,7 +183,7 @@ Every <A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bi
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/internal/XAResourceManager.html#getAllResources()">getAllResources</A></B>()</CODE>
 
 <BR>
@@ -199,7 +199,7 @@ Every <A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bi
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/internal/XAResourceManager.html#getNaturalOrderPositions()">getNaturalOrderPositions</A></B>()</CODE>
 
 <BR>
@@ -207,15 +207,15 @@ Every <A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bi
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/internal/XAResourceManager.html#getNaturalOrderResourcesForPosition(java.lang.Object)">getNaturalOrderResourcesForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> positionKey)</CODE>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/internal/XAResourceManager.html#getNaturalOrderResourcesForPosition(java.lang.Integer)">getNaturalOrderResourcesForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/internal/XAResourceManager.html#getReverseOrderPositions()">getReverseOrderPositions</A></B>()</CODE>
 
 <BR>
@@ -223,8 +223,8 @@ Every <A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bi
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/internal/XAResourceManager.html#getReverseOrderResourcesForPosition(java.lang.Object)">getReverseOrderResourcesForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> positionKey)</CODE>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/internal/XAResourceManager.html#getReverseOrderResourcesForPosition(java.lang.Integer)">getReverseOrderResourcesForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</CODE>
 
 <BR>
            </TD>
@@ -419,7 +419,7 @@ public void <B>clearXAResourceHolderStates</B>()</PRE>
 <A NAME="collectUniqueNames()"><!-- --></A><H3>
 collectUniqueNames</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> <B>collectUniqueNames</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> <B>collectUniqueNames</B>()</PRE>
 <DL>
 <DD>Get a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><CODE>Set</CODE></A> of unique names of all the enlisted <A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><CODE>XAResourceHolderState</CODE></A>s.
 <P>
@@ -433,7 +433,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-ex
 <A NAME="getNaturalOrderPositions()"><!-- --></A><H3>
 getNaturalOrderPositions</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A> <B>getNaturalOrderPositions</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>> <B>getNaturalOrderPositions</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -444,7 +444,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html
 <A NAME="getReverseOrderPositions()"><!-- --></A><H3>
 getReverseOrderPositions</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A> <B>getReverseOrderPositions</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>> <B>getReverseOrderPositions</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -452,10 +452,10 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html
 </DL>
 <HR>
 
-<A NAME="getNaturalOrderResourcesForPosition(java.lang.Object)"><!-- --></A><H3>
+<A NAME="getNaturalOrderResourcesForPosition(java.lang.Integer)"><!-- --></A><H3>
 getNaturalOrderResourcesForPosition</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getNaturalOrderResourcesForPosition</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> positionKey)</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> <B>getNaturalOrderResourcesForPosition</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -463,10 +463,10 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-e
 </DL>
 <HR>
 
-<A NAME="getReverseOrderResourcesForPosition(java.lang.Object)"><!-- --></A><H3>
+<A NAME="getReverseOrderResourcesForPosition(java.lang.Integer)"><!-- --></A><H3>
 getReverseOrderResourcesForPosition</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getReverseOrderResourcesForPosition</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> positionKey)</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> <B>getReverseOrderResourcesForPosition</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -477,7 +477,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-e
 <A NAME="getAllResources()"><!-- --></A><H3>
 getAllResources</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getAllResources</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> <B>getAllResources</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -589,6 +589,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicCommitException.html b/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicCommitException.html
index f3e6a3c..3f283f6 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicCommitException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicCommitException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixHeuristicCommitException (Bitronix Tr
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixHeuristicCommitException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.internal.BitronixHeuristicCommitException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicMixedException.html b/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicMixedException.html
index babda85..faa52d7 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicMixedException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicMixedException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixHeuristicMixedException (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixHeuristicMixedException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.internal.BitronixHeuristicMixedException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicRollbackException.html b/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicRollbackException.html
index 8e363ba..43e437b 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicRollbackException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixHeuristicRollbackException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixHeuristicRollbackException (Bitronix
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixHeuristicRollbackException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.internal.BitronixHeuristicRollbackException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixMultiSystemException.html b/doc/api/bitronix/tm/internal/class-use/BitronixMultiSystemException.html
index 9a821ba..52fccf2 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixMultiSystemException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixMultiSystemException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixMultiSystemException (Bitronix Transa
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixMultiSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.internal.BitronixMultiSystemException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixRollbackException.html b/doc/api/bitronix/tm/internal/class-use/BitronixRollbackException.html
index 81e49bd..277fe29 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixRollbackException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixRollbackException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixRollbackException (Bitronix Transacti
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixRollbackException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -84,7 +84,45 @@ function windowTitle()
 <H2>
 <B>Uses of Class<br>bitronix.tm.internal.BitronixRollbackException</B></H2>
 </CENTER>
-No usage of bitronix.tm.internal.BitronixRollbackException
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../bitronix/tm/internal/BitronixRollbackException.html" title="class in bitronix.tm.internal">BitronixRollbackException</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#bitronix.tm.twopc"><B>bitronix.tm.twopc</B></A></TD>
+<TD>
+        Two-phase commit logic. </TD>
+</TR>
+</TABLE>
+ 
+<P>
+<A NAME="bitronix.tm.twopc"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../bitronix/tm/internal/BitronixRollbackException.html" title="class in bitronix.tm.internal">BitronixRollbackException</A> in <A HREF="../../../../bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A></FONT></TH>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A> that throw <A HREF="../../../../bitronix/tm/internal/BitronixRollbackException.html" title="class in bitronix.tm.internal">BitronixRollbackException</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B>Committer.</B><B><A HREF="../../../../bitronix/tm/twopc/Committer.html#commit(bitronix.tm.BitronixTransaction, java.util.List)">commit</A></B>(<A HREF="../../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
+       <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
+
+<BR>
+          Execute phase 2 commit.</TD>
+</TR>
+</TABLE>
+ 
 <P>
 <HR>
 
@@ -140,6 +178,6 @@ No usage of bitronix.tm.internal.BitronixRollbackException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixRollbackSystemException.html b/doc/api/bitronix/tm/internal/class-use/BitronixRollbackSystemException.html
index 1d39924..a27b5d2 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixRollbackSystemException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixRollbackSystemException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixRollbackSystemException (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixRollbackSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.internal.BitronixRollbackSystemException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixRuntimeException.html b/doc/api/bitronix/tm/internal/class-use/BitronixRuntimeException.html
index b0e8ed4..ce92613 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixRuntimeException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixRuntimeException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixRuntimeException (Bitronix Transactio
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixRuntimeException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.internal.BitronixRuntimeException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixSystemException.html b/doc/api/bitronix/tm/internal/class-use/BitronixSystemException.html
index d3c92bb..e9ab785 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixSystemException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixSystemException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixSystemException (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixSystemException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -139,7 +139,7 @@ Uses of <A HREF="../../../../bitronix/tm/internal/BitronixSystemException.html"
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B>BitronixTransaction.</B><B><A HREF="../../../../bitronix/tm/BitronixTransaction.html#setStatus(int, java.util.Set)">setStatus</A></B>(int status,
-          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
            </TD>
@@ -273,14 +273,14 @@ Uses of <A HREF="../../../../bitronix/tm/internal/BitronixSystemException.html"
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B>Committer.</B><B><A HREF="../../../../bitronix/tm/twopc/Committer.html#commit(bitronix.tm.BitronixTransaction, java.util.List)">commit</A></B>(<A HREF="../../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
-       <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)</CODE>
+       <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
 
 <BR>
           Execute phase 2 commit.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B>Preparer.</B><B><A HREF="../../../../bitronix/tm/twopc/Preparer.html#prepare(bitronix.tm.BitronixTransaction)">prepare</A></B>(<A HREF="../../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction)</CODE>
 
 <BR>
@@ -290,7 +290,7 @@ Uses of <A HREF="../../../../bitronix/tm/internal/BitronixSystemException.html"
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B>Rollbacker.</B><B><A HREF="../../../../bitronix/tm/twopc/Rollbacker.html#rollback(bitronix.tm.BitronixTransaction, java.util.List)">rollback</A></B>(<A HREF="../../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
-         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)</CODE>
+         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
 
 <BR>
           Rollback the current XA transaction.</TD>
@@ -352,6 +352,6 @@ Uses of <A HREF="../../../../bitronix/tm/internal/BitronixSystemException.html"
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/BitronixXAException.html b/doc/api/bitronix/tm/internal/class-use/BitronixXAException.html
index 80c0745..5959e4b 100644
--- a/doc/api/bitronix/tm/internal/class-use/BitronixXAException.html
+++ b/doc/api/bitronix/tm/internal/class-use/BitronixXAException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.BitronixXAException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.BitronixXAException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.BitronixXAException (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.BitronixXAException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.BitronixXAException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.internal.BitronixXAException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/ThreadContext.html b/doc/api/bitronix/tm/internal/class-use/ThreadContext.html
index 27a294a..66b9bb8 100644
--- a/doc/api/bitronix/tm/internal/class-use/ThreadContext.html
+++ b/doc/api/bitronix/tm/internal/class-use/ThreadContext.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.ThreadContext (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.ThreadContext (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.ThreadContext (Bitronix Transaction Manager :
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.ThreadContext (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.ThreadContext (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.internal.ThreadContext
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/TransactionStatusChangeListener.html b/doc/api/bitronix/tm/internal/class-use/TransactionStatusChangeListener.html
index b7be62d..ccc2027 100644
--- a/doc/api/bitronix/tm/internal/class-use/TransactionStatusChangeListener.html
+++ b/doc/api/bitronix/tm/internal/class-use/TransactionStatusChangeListener.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.internal.TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.internal.TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.internal.TransactionStatusChangeListener (Bitronix
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.internal.TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.internal.TransactionStatusChangeListener (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../bitronix/tm/internal/TransactionStatusChangeListene
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/TransactionTimeoutException.html b/doc/api/bitronix/tm/internal/class-use/TransactionTimeoutException.html
deleted file mode 100644
index 2086ca5..0000000
--- a/doc/api/bitronix/tm/internal/class-use/TransactionTimeoutException.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>
-Uses of Class bitronix.tm.internal.TransactionTimeoutException (Bitronix Transaction Manager :: Core 2.1.2 API)
-</TITLE>
-
-<META NAME="date" CONTENT="2011-10-30">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.TransactionTimeoutException (Bitronix Transaction Manager :: Core 2.1.2 API)";
-    }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/internal//class-useTransactionTimeoutException.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="TransactionTimeoutException.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>bitronix.tm.internal.TransactionTimeoutException</B></H2>
-</CENTER>
-No usage of bitronix.tm.internal.TransactionTimeoutException
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/internal//class-useTransactionTimeoutException.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="TransactionTimeoutException.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
-</BODY>
-</HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/XAResourceHolderState.html b/doc/api/bitronix/tm/internal/class-use/XAResourceHolderState.html
index 79ce532..2e8a1a7 100644
--- a/doc/api/bitronix/tm/internal/class-use/XAResourceHolderState.html
+++ b/doc/api/bitronix/tm/internal/class-use/XAResourceHolderState.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.XAResourceHolderState (Bitronix Transaction M
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.XAResourceHolderState (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -130,6 +130,11 @@ Packages that use <A HREF="../../../../bitronix/tm/internal/XAResourceHolderStat
 <TD>
         Two-phase commit commands executors. </TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#bitronix.tm.utils"><B>bitronix.tm.utils</B></A></TD>
+<TD>
+        Misc utility classes. </TD>
+</TR>
 </TABLE>
  
 <P>
@@ -161,6 +166,38 @@ Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" ti
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/internal/package-summary.html">bitronix.tm.internal</A> that return types with arguments of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>XAResourceManager.</B><B><A HREF="../../../../bitronix/tm/internal/XAResourceManager.html#getAllResources()">getAllResources</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>XAResourceManager.</B><B><A HREF="../../../../bitronix/tm/internal/XAResourceManager.html#getNaturalOrderResourcesForPosition(java.lang.Integer)">getNaturalOrderResourcesForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>XAResourceManager.</B><B><A HREF="../../../../bitronix/tm/internal/XAResourceManager.html#getReverseOrderResourcesForPosition(java.lang.Integer)">getReverseOrderResourcesForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/internal/package-summary.html">bitronix.tm.internal</A> with parameters of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -222,7 +259,7 @@ Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" ti
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A></CODE></FONT></TD>
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="../../../../bitronix/tm/BitronixXid.html" title="class in bitronix.tm">BitronixXid</A>></CODE></FONT></TD>
 <TD><CODE><B>RecoveryHelper.</B><B><A HREF="../../../../bitronix/tm/recovery/RecoveryHelper.html#recover(bitronix.tm.internal.XAResourceHolderState)">recover</A></B>(<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A> xaResourceHolderState)</CODE>
 
 <BR>
@@ -268,6 +305,30 @@ Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" ti
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/resource/common/package-summary.html">bitronix.tm.resource.common</A> that return types with arguments of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>XAResourceHolder.</B><B><A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">getXAResourceHolderStatesForGtrid</A></B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</CODE>
+
+<BR>
+          Get all the <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><CODE>XAResourceHolderState</CODE></A>s of this wrapped resource for a specific GTRID.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>AbstractXAResourceHolder.</B><B><A HREF="../../../../bitronix/tm/resource/common/AbstractXAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">getXAResourceHolderStatesForGtrid</A></B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/resource/common/package-summary.html">bitronix.tm.resource.common</A> with parameters of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -378,6 +439,39 @@ Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" ti
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A> that return types with arguments of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>AbstractPhaseEngine.</B><B><A HREF="../../../../bitronix/tm/twopc/AbstractPhaseEngine.html#collectNotInterestedResources(java.util.List, java.util.List)">collectNotInterestedResources</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> allRe [...]
+                              <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>PhaseException.</B><B><A HREF="../../../../bitronix/tm/twopc/PhaseException.html#getResourceStates()">getResourceStates</A></B>()</CODE>
+
+<BR>
+          Get the list of resource which threw an exception during a phase execution.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>Preparer.</B><B><A HREF="../../../../bitronix/tm/twopc/Preparer.html#prepare(bitronix.tm.BitronixTransaction)">prepare</A></B>(<A HREF="../../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction)</CODE>
+
+<BR>
+          Execute phase 1 prepare.</TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A> with parameters of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -447,6 +541,73 @@ Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" ti
 </TABLE>
  
 <P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A> with type arguments of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>AbstractPhaseEngine.</B><B><A HREF="../../../../bitronix/tm/twopc/AbstractPhaseEngine.html#collectNotInterestedResources(java.util.List, java.util.List)">collectNotInterestedResources</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> allRe [...]
+                              <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>AbstractPhaseEngine.</B><B><A HREF="../../../../bitronix/tm/twopc/AbstractPhaseEngine.html#collectNotInterestedResources(java.util.List, java.util.List)">collectNotInterestedResources</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> allRe [...]
+                              <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>></CODE></FONT></TD>
+<TD><CODE><B>AbstractPhaseEngine.</B><B><A HREF="../../../../bitronix/tm/twopc/AbstractPhaseEngine.html#collectResourcesUniqueNames(java.util.List)">collectResourcesUniqueNames</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> resources)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B>Committer.</B><B><A HREF="../../../../bitronix/tm/twopc/Committer.html#commit(bitronix.tm.BitronixTransaction, java.util.List)">commit</A></B>(<A HREF="../../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
+       <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
+
+<BR>
+          Execute phase 2 commit.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B>Rollbacker.</B><B><A HREF="../../../../bitronix/tm/twopc/Rollbacker.html#rollback(bitronix.tm.BitronixTransaction, java.util.List)">rollback</A></B>(<A HREF="../../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
+         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
+
+<BR>
+          Rollback the current XA transaction.</TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructor parameters in <A HREF="../../../../bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A> with type arguments of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/PhaseException.html#PhaseException(java.util.List, java.util.List)">PhaseException</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>> exceptions,
+               <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> resourceStates)</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
 <A NAME="bitronix.tm.twopc.executor"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
@@ -486,6 +647,31 @@ Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" ti
 </TABLE>
  
 <P>
+<A NAME="bitronix.tm.utils"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A> in <A HREF="../../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A></FONT></TH>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A> with type arguments of type <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B>Decoder.</B><B><A HREF="../../../../bitronix/tm/utils/Decoder.html#collectResourcesNames(java.util.Collection)">collectResourcesNames</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> resources)</CODE>
+
+<BR>
+          Create a String representation of a list of <A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s.</TD>
+</TR>
+</TABLE>
+ 
+<P>
 <HR>
 
 
@@ -540,6 +726,6 @@ Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" ti
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/class-use/XAResourceManager.html b/doc/api/bitronix/tm/internal/class-use/XAResourceManager.html
index 66130d9..b5133c8 100644
--- a/doc/api/bitronix/tm/internal/class-use/XAResourceManager.html
+++ b/doc/api/bitronix/tm/internal/class-use/XAResourceManager.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.internal.XAResourceManager (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.internal.XAResourceManager (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.internal.XAResourceManager (Bitronix Transaction Manag
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.internal.XAResourceManager (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.internal.XAResourceManager (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -208,6 +208,6 @@ Uses of <A HREF="../../../../bitronix/tm/internal/XAResourceManager.html" title=
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/package-frame.html b/doc/api/bitronix/tm/internal/package-frame.html
index e3d4d68..1742627 100644
--- a/doc/api/bitronix/tm/internal/package-frame.html
+++ b/doc/api/bitronix/tm/internal/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -66,9 +66,7 @@ Exceptions</FONT> 
 <BR>
 <A HREF="BitronixSystemException.html" title="class in bitronix.tm.internal" target="classFrame">BitronixSystemException</A>
 <BR>
-<A HREF="BitronixXAException.html" title="class in bitronix.tm.internal" target="classFrame">BitronixXAException</A>
-<BR>
-<A HREF="TransactionTimeoutException.html" title="class in bitronix.tm.internal" target="classFrame">TransactionTimeoutException</A></FONT></TD>
+<A HREF="BitronixXAException.html" title="class in bitronix.tm.internal" target="classFrame">BitronixXAException</A></FONT></TD>
 </TR>
 </TABLE>
 
diff --git a/doc/api/bitronix/tm/internal/package-summary.html b/doc/api/bitronix/tm/internal/package-summary.html
index 9f5333d..1fa783a 100644
--- a/doc/api/bitronix/tm/internal/package-summary.html
+++ b/doc/api/bitronix/tm/internal/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -169,10 +169,6 @@ Package bitronix.tm.internal
 <TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/internal/BitronixXAException.html" title="class in bitronix.tm.internal">BitronixXAException</A></B></TD>
 <TD>Subclass of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa"><CODE>XAException</CODE></A> supporting nested <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A>s.</TD>
 </TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal">TransactionTimeoutException</A></B></TD>
-<TD>Thrown when a transaction times out.</TD>
-</TR>
 </TABLE>
  
 
@@ -244,6 +240,6 @@ Package bitronix.tm.internal Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/package-tree.html b/doc/api/bitronix/tm/internal/package-tree.html
index 57c679a..cf9332e 100644
--- a/doc/api/bitronix/tm/internal/package-tree.html
+++ b/doc/api/bitronix/tm/internal/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.internal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.internal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.internal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.internal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.internal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -110,7 +110,7 @@ Class Hierarchy
 <LI TYPE="circle">bitronix.tm.internal.<A HREF="../../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal"><B>BitronixSystemException</B></A><UL>
 <LI TYPE="circle">bitronix.tm.internal.<A HREF="../../../bitronix/tm/internal/BitronixMultiSystemException.html" title="class in bitronix.tm.internal"><B>BitronixMultiSystemException</B></A><LI TYPE="circle">bitronix.tm.internal.<A HREF="../../../bitronix/tm/internal/BitronixRollbackSystemException.html" title="class in bitronix.tm.internal"><B>BitronixRollbackSystemException</B></A></UL>
 </UL>
-<LI TYPE="circle">bitronix.tm.internal.<A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><B>TransactionTimeoutException</B></A><LI TYPE="circle">javax.transaction.xa.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa"><B>XAException</B></A><UL>
+<LI TYPE="circle">javax.transaction.xa.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa"><B>XAException</B></A><UL>
 <LI TYPE="circle">bitronix.tm.internal.<A HREF="../../../bitronix/tm/internal/BitronixXAException.html" title="class in bitronix.tm.internal"><B>BitronixXAException</B></A></UL>
 </UL>
 </UL>
@@ -175,6 +175,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/package-use.html b/doc/api/bitronix/tm/internal/package-use.html
index b926460..7292861 100644
--- a/doc/api/bitronix/tm/internal/package-use.html
+++ b/doc/api/bitronix/tm/internal/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.internal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -135,6 +135,11 @@ Packages that use <A HREF="../../../bitronix/tm/internal/package-summary.html">b
 <TD>
         Two-phase commit commands executors. </TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#bitronix.tm.utils"><B>bitronix.tm.utils</B></A></TD>
+<TD>
+        Misc utility classes. </TD>
+</TR>
 </TABLE>
  
 <P>
@@ -275,6 +280,12 @@ Classes in <A HREF="../../../bitronix/tm/internal/package-summary.html">bitronix
 Classes in <A HREF="../../../bitronix/tm/internal/package-summary.html">bitronix.tm.internal</A> used by <A HREF="../../../bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../bitronix/tm/internal/class-use/BitronixRollbackException.html#bitronix.tm.twopc"><B>BitronixRollbackException</B></A></B>
+
+<BR>
+          Subclass of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/RollbackException.html?is-external=true" title="class or interface in javax.transaction"><CODE>RollbackException</CODE></A> supporting nested <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><B><A HREF="../../../bitronix/tm/internal/class-use/BitronixSystemException.html#bitronix.tm.twopc"><B>BitronixSystemException</B></A></B>
 
 <BR>
@@ -311,6 +322,21 @@ Classes in <A HREF="../../../bitronix/tm/internal/package-summary.html">bitronix
 </TABLE>
  
 <P>
+<A NAME="bitronix.tm.utils"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../bitronix/tm/internal/package-summary.html">bitronix.tm.internal</A> used by <A HREF="../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../bitronix/tm/internal/class-use/XAResourceHolderState.html#bitronix.tm.utils"><B>XAResourceHolderState</B></A></B>
+
+<BR>
+          <A HREF="../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A> state container.</TD>
+</TR>
+</TABLE>
+ 
+<P>
 <HR>
 
 
@@ -365,6 +391,6 @@ Classes in <A HREF="../../../bitronix/tm/internal/package-summary.html">bitronix
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/jndi/BitronixContext.html b/doc/api/bitronix/tm/jndi/BitronixContext.html
index 0ca4102..b914776 100644
--- a/doc/api/bitronix/tm/jndi/BitronixContext.html
+++ b/doc/api/bitronix/tm/jndi/BitronixContext.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixContext (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixContext (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixContext (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixContext (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixContext (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -249,7 +249,7 @@ Implementation of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A><?,?></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/jndi/BitronixContext.html#getEnvironment()">getEnvironment</A></B>()</CODE>
 
 <BR>
@@ -281,7 +281,7 @@ Implementation of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NameClassPair.html?is-external=true" title="class or interface in javax.naming">NameClassPair</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/jndi/BitronixContext.html#list(javax.naming.Name)">list</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> name)</CODE>
 
 <BR>
@@ -289,7 +289,7 @@ Implementation of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NameClassPair.html?is-external=true" title="class or interface in javax.naming">NameClassPair</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/jndi/BitronixContext.html#list(java.lang.String)">list</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> s)</CODE>
 
 <BR>
@@ -297,7 +297,7 @@ Implementation of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Binding.html?is-external=true" title="class or interface in javax.naming">Binding</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/jndi/BitronixContext.html#listBindings(javax.naming.Name)">listBindings</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> name)</CODE>
 
 <BR>
@@ -305,7 +305,7 @@ Implementation of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Binding.html?is-external=true" title="class or interface in javax.naming">Binding</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/jndi/BitronixContext.html#listBindings(java.lang.String)">listBindings</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> s)</CODE>
 
 <BR>
@@ -661,8 +661,8 @@ public void <B>rename</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/
 <A NAME="list(javax.naming.Name)"><!-- --></A><H3>
 list</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A> <B>list</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> name)
-                       throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NameClassPair.html?is-external=true" title="class or interface in javax.naming">NameClassPair</A>> <B>list</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name< [...]
+                                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
 <DL>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true#list(javax.naming.Name)" title="class or interface in javax.naming">list</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A></CODE></DL>
@@ -678,8 +678,8 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnume
 <A NAME="list(java.lang.String)"><!-- --></A><H3>
 list</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A> <B>list</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> s)
-                       throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NameClassPair.html?is-external=true" title="class or interface in javax.naming">NameClassPair</A>> <B>list</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A [...]
+                                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
 <DL>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true#list(java.lang.String)" title="class or interface in javax.naming">list</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A></CODE></DL>
@@ -695,8 +695,8 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnume
 <A NAME="listBindings(javax.naming.Name)"><!-- --></A><H3>
 listBindings</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A> <B>listBindings</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> name)
-                               throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Binding.html?is-external=true" title="class or interface in javax.naming">Binding</A>> <B>listBindings</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A>& [...]
+                                        throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
 <DL>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true#listBindings(javax.naming.Name)" title="class or interface in javax.naming">listBindings</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A></CODE></DL>
@@ -712,8 +712,8 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnume
 <A NAME="listBindings(java.lang.String)"><!-- --></A><H3>
 listBindings</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A> <B>listBindings</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> s)
-                               throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingEnumeration.html?is-external=true" title="class or interface in javax.naming">NamingEnumeration</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Binding.html?is-external=true" title="class or interface in javax.naming">Binding</A>> <B>listBindings</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> s)
+                                        throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
 <DL>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true#listBindings(java.lang.String)" title="class or interface in javax.naming">listBindings</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A></CODE></DL>
@@ -936,8 +936,8 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is
 <A NAME="getEnvironment()"><!-- --></A><H3>
 getEnvironment</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A> <B>getEnvironment</B>()
-                         throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A><?,?> <B>getEnvironment</B>()
+                              throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></PRE>
 <DL>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true#getEnvironment()" title="class or interface in javax.naming">getEnvironment</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A></CODE></DL>
@@ -1026,6 +1026,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/jndi/BitronixInitialContextFactory.html b/doc/api/bitronix/tm/jndi/BitronixInitialContextFactory.html
index f511b2b..9ed2baf 100644
--- a/doc/api/bitronix/tm/jndi/BitronixInitialContextFactory.html
+++ b/doc/api/bitronix/tm/jndi/BitronixInitialContextFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -304,6 +304,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/jndi/class-use/BitronixContext.html b/doc/api/bitronix/tm/jndi/class-use/BitronixContext.html
index 3f9bd72..761d1e0 100644
--- a/doc/api/bitronix/tm/jndi/class-use/BitronixContext.html
+++ b/doc/api/bitronix/tm/jndi/class-use/BitronixContext.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.jndi.BitronixContext (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.jndi.BitronixContext (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.jndi.BitronixContext (Bitronix Transaction Manager ::
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.jndi.BitronixContext (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.jndi.BitronixContext (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.jndi.BitronixContext
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/jndi/class-use/BitronixInitialContextFactory.html b/doc/api/bitronix/tm/jndi/class-use/BitronixInitialContextFactory.html
index 9ed4353..cbdd111 100644
--- a/doc/api/bitronix/tm/jndi/class-use/BitronixInitialContextFactory.html
+++ b/doc/api/bitronix/tm/jndi/class-use/BitronixInitialContextFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.jndi.BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.jndi.BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.jndi.BitronixInitialContextFactory (Bitronix Transacti
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.jndi.BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.jndi.BitronixInitialContextFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.jndi.BitronixInitialContextFactory
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/jndi/package-frame.html b/doc/api/bitronix/tm/jndi/package-frame.html
index d30133c..1cfb7c4 100644
--- a/doc/api/bitronix/tm/jndi/package-frame.html
+++ b/doc/api/bitronix/tm/jndi/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/jndi/package-summary.html b/doc/api/bitronix/tm/jndi/package-summary.html
index 3b5a8b5..18b2d6a 100644
--- a/doc/api/bitronix/tm/jndi/package-summary.html
+++ b/doc/api/bitronix/tm/jndi/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Package bitronix.tm.jndi Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/jndi/package-tree.html b/doc/api/bitronix/tm/jndi/package-tree.html
index ae318ee..b08de28 100644
--- a/doc/api/bitronix/tm/jndi/package-tree.html
+++ b/doc/api/bitronix/tm/jndi/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.jndi Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.jndi Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.jndi Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.jndi Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.jndi Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -151,6 +151,6 @@ Class Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/jndi/package-use.html b/doc/api/bitronix/tm/jndi/package-use.html
index 7dc9cef..44f5edc 100644
--- a/doc/api/bitronix/tm/jndi/package-use.html
+++ b/doc/api/bitronix/tm/jndi/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.2 API
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.jndi (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.jndi
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/CorruptedTransactionLogException.html b/doc/api/bitronix/tm/journal/CorruptedTransactionLogException.html
index 8509f1a..74d3522 100644
--- a/doc/api/bitronix/tm/journal/CorruptedTransactionLogException.html
+++ b/doc/api/bitronix/tm/journal/CorruptedTransactionLogException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.2 API)
+CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.2 API
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -243,6 +243,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/DiskForceBatcherThread.html b/doc/api/bitronix/tm/journal/DiskForceBatcherThread.html
index 7c5f457..3aea932 100644
--- a/doc/api/bitronix/tm/journal/DiskForceBatcherThread.html
+++ b/doc/api/bitronix/tm/journal/DiskForceBatcherThread.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.2 API)
+DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -189,7 +189,7 @@ Thread that executes disk force batches.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
+<CODE> boolean</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/DiskForceBatcherThread.html#setAlive(boolean)">setAlive</A></B>(boolean alive)</CODE>
 
 <BR>
@@ -252,12 +252,13 @@ public static <A HREF="../../../bitronix/tm/journal/DiskForceBatcherThread.html"
 <A NAME="setAlive(boolean)"><!-- --></A><H3>
 setAlive</H3>
 <PRE>
-public void <B>setAlive</B>(boolean alive)</PRE>
+public boolean <B>setAlive</B>(boolean alive)</PRE>
 <DL>
 <DD>Thread will run for as long as this flag is not false.
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>alive</CODE> - The new flag value.</DL>
+<DT><B>Parameters:</B><DD><CODE>alive</CODE> - The new flag value.
+<DT><B>Returns:</B><DD>the old flag value.</DL>
 </DD>
 </DL>
 <HR>
@@ -362,6 +363,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/DiskForceWaitQueue.html b/doc/api/bitronix/tm/journal/DiskForceWaitQueue.html
index 1bd2ff4..5000a61 100644
--- a/doc/api/bitronix/tm/journal/DiskForceWaitQueue.html
+++ b/doc/api/bitronix/tm/journal/DiskForceWaitQueue.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.2 API)
+DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -377,6 +377,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/DiskJournal.html b/doc/api/bitronix/tm/journal/DiskJournal.html
index fd806c5..d523806 100644
--- a/doc/api/bitronix/tm/journal/DiskJournal.html
+++ b/doc/api/bitronix/tm/journal/DiskJournal.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-DiskJournal (Bitronix Transaction Manager :: Core 2.1.2 API)
+DiskJournal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ DiskJournal (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="DiskJournal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="DiskJournal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -157,7 +157,7 @@ Simple implementation of a journal that writes on a two-files disk log.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/DiskJournal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
 
 <BR>
@@ -176,7 +176,7 @@ Simple implementation of a journal that writes on a two-files disk log.
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/DiskJournal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)">log</A></B>(int status,
     <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
           Log a new transaction status to journal.</TD>
@@ -244,7 +244,7 @@ log</H3>
 <PRE>
 public void <B>log</B>(int status,
                 <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)
+                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)
          throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
 <DL>
 <DD>Log a new transaction status to journal. Note that the DiskJournal will not check the flow of the transaction.
@@ -340,8 +340,8 @@ public void <B>shutdown</B>()</PRE>
 <A NAME="collectDanglingRecords()"><!-- --></A><H3>
 collectDanglingRecords</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A> <B>collectDanglingRecords</B>()
-                           throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>> <B>collectDanglingRecords</B>()
+                                                     throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
 <DL>
 <DD>Collect all dangling records of the active log file.
 <P>
@@ -416,6 +416,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/Journal.html b/doc/api/bitronix/tm/journal/Journal.html
index 28e2001..e6b3971 100644
--- a/doc/api/bitronix/tm/journal/Journal.html
+++ b/doc/api/bitronix/tm/journal/Journal.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Journal (Bitronix Transaction Manager :: Core 2.1.2 API)
+Journal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Journal (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Journal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Journal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -135,7 +135,7 @@ Transaction logs journal implementations must implement this interface to provid
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/Journal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
 
 <BR>
@@ -154,7 +154,7 @@ Transaction logs journal implementations must implement this interface to provid
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/Journal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)">log</A></B>(int status,
     <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
           Log a new transaction status to journal.</TD>
@@ -195,7 +195,7 @@ log</H3>
 <PRE>
 void <B>log</B>(int status,
          <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)
+         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)
          throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
 <DL>
 <DD>Log a new transaction status to journal. Note that the journal will not check the flow of the transactions.
@@ -272,8 +272,8 @@ void <B>force</B>()
 <A NAME="collectDanglingRecords()"><!-- --></A><H3>
 collectDanglingRecords</H3>
 <PRE>
-<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A> <B>collectDanglingRecords</B>()
-                           throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>> <B>collectDanglingRecords</B>()
+                                                     throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
 <DL>
 <DD>Collect all dangling records of the journal, ie: COMMITTING records with no corresponding COMMITTED record.
 <P>
@@ -348,6 +348,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/NullJournal.html b/doc/api/bitronix/tm/journal/NullJournal.html
index 3c06d62..c65440b 100644
--- a/doc/api/bitronix/tm/journal/NullJournal.html
+++ b/doc/api/bitronix/tm/journal/NullJournal.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-NullJournal (Bitronix Transaction Manager :: Core 2.1.2 API)
+NullJournal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ NullJournal (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="NullJournal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="NullJournal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -152,7 +152,7 @@ No-op journal. Do not use for anything else than testing as the transaction mana
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/NullJournal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
 
 <BR>
@@ -171,7 +171,7 @@ No-op journal. Do not use for anything else than testing as the transaction mana
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/NullJournal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)">log</A></B>(int status,
     <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
           Log a new transaction status to journal.</TD>
@@ -245,7 +245,7 @@ log</H3>
 <PRE>
 public void <B>log</B>(int status,
                 <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)
+                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)
          throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
 <DL>
 <DD><B>Description copied from interface: <CODE><A HREF="../../../bitronix/tm/journal/Journal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)">Journal</A></CODE></B></DD>
@@ -326,8 +326,8 @@ public void <B>force</B>()
 <A NAME="collectDanglingRecords()"><!-- --></A><H3>
 collectDanglingRecords</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A> <B>collectDanglingRecords</B>()
-                           throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>> <B>collectDanglingRecords</B>()
+                                                     throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
 <DL>
 <DD><B>Description copied from interface: <CODE><A HREF="../../../bitronix/tm/journal/Journal.html#collectDanglingRecords()">Journal</A></CODE></B></DD>
 <DD>Collect all dangling records of the journal, ie: COMMITTING records with no corresponding COMMITTED record.
@@ -434,6 +434,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/TransactionLogAppender.html b/doc/api/bitronix/tm/journal/TransactionLogAppender.html
index de64eeb..bfaedb3 100644
--- a/doc/api/bitronix/tm/journal/TransactionLogAppender.html
+++ b/doc/api/bitronix/tm/journal/TransactionLogAppender.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -453,6 +453,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/TransactionLogCursor.html b/doc/api/bitronix/tm/journal/TransactionLogCursor.html
index 067a0cb..789002b 100644
--- a/doc/api/bitronix/tm/journal/TransactionLogCursor.html
+++ b/doc/api/bitronix/tm/journal/TransactionLogCursor.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -321,6 +321,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/TransactionLogHeader.html b/doc/api/bitronix/tm/journal/TransactionLogHeader.html
index 29ff21e..59d39a2 100644
--- a/doc/api/bitronix/tm/journal/TransactionLogHeader.html
+++ b/doc/api/bitronix/tm/journal/TransactionLogHeader.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -190,7 +190,7 @@ Used to control a log file's header.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../bitronix/tm/journal/TransactionLogHeader.html#TransactionLogHeader(java.io.RandomAccessFile, long)">TransactionLogHeader</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io">RandomAccessFile</A> randomAccessFile,
+<TD><CODE><B><A HREF="../../../bitronix/tm/journal/TransactionLogHeader.html#TransactionLogHeader(java.nio.channels.FileChannel, long)">TransactionLogHeader</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</A> fc,
                      long maxFileLength)</CODE>
 
 <BR>
@@ -410,10 +410,10 @@ public static final byte <B>UNCLEAN_LOG_STATE</B></PRE>
 </TR>
 </TABLE>
 
-<A NAME="TransactionLogHeader(java.io.RandomAccessFile, long)"><!-- --></A><H3>
+<A NAME="TransactionLogHeader(java.nio.channels.FileChannel, long)"><!-- --></A><H3>
 TransactionLogHeader</H3>
 <PRE>
-public <B>TransactionLogHeader</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io">RandomAccessFile</A> randomAccessFile,
+public <B>TransactionLogHeader</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</A> fc,
                             long maxFileLength)
                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
 <DL>
@@ -421,7 +421,7 @@ public <B>TransactionLogHeader</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/
  All calls to setters are synchronized on the passed-in RandomAccessFile.
 <P>
 <DL>
-<DT><B>Parameters:</B><DD><CODE>randomAccessFile</CODE> - the random access file to read from.<DD><CODE>maxFileLength</CODE> - the max file length.
+<DT><B>Parameters:</B><DD><CODE>fc</CODE> - the file channel to read from.<DD><CODE>maxFileLength</CODE> - the max file length.
 <DT><B>Throws:</B>
 <DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE> - if an I/O error occurs.</DL>
 </DL>
@@ -664,6 +664,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/TransactionLogRecord.html b/doc/api/bitronix/tm/journal/TransactionLogRecord.html
index 7a9d051..2dd953c 100644
--- a/doc/api/bitronix/tm/journal/TransactionLogRecord.html
+++ b/doc/api/bitronix/tm/journal/TransactionLogRecord.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -150,7 +150,7 @@ Representation of a transaction log record on disk.
                      int sequenceNumber,
                      int crc32,
                      <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames,
+                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames,
                      int endRecord)</CODE>
 
 <BR>
@@ -159,7 +159,7 @@ Representation of a transaction log record on disk.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html#TransactionLogRecord(int, bitronix.tm.utils.Uid, java.util.Set)">TransactionLogRecord</A></B>(int status,
                      <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
           Create a new transaction log ready to be stored.</TD>
@@ -248,7 +248,7 @@ Representation of a transaction log record on disk.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html#getUniqueNames()">getUniqueNames</A></B>()</CODE>
 
 <BR>
@@ -264,14 +264,6 @@ Representation of a transaction log record on disk.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html#removeUniqueNames(java.util.Collection)">removeUniqueNames</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A> namesToRemove)</CODE>
-
-<BR>
-           </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/journal/TransactionLogRecord.html#toString()">toString</A></B>()</CODE>
 
@@ -311,7 +303,7 @@ public <B>TransactionLogRecord</B>(int status,
                             int sequenceNumber,
                             int crc32,
                             <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-                            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames,
+                            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames,
                             int endRecord)</PRE>
 <DL>
 <DD>Use this constructor when restoring a log from the disk.
@@ -326,7 +318,7 @@ TransactionLogRecord</H3>
 <PRE>
 public <B>TransactionLogRecord</B>(int status,
                             <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-                            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</PRE>
+                            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</PRE>
 <DL>
 <DD>Create a new transaction log ready to be stored.
 <P>
@@ -424,7 +416,7 @@ public <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm
 <A NAME="getUniqueNames()"><!-- --></A><H3>
 getUniqueNames</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> <B>getUniqueNames</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> <B>getUniqueNames</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -443,17 +435,6 @@ public int <B>getEndRecord</B>()</PRE>
 </DL>
 <HR>
 
-<A NAME="removeUniqueNames(java.util.Collection)"><!-- --></A><H3>
-removeUniqueNames</H3>
-<PRE>
-public void <B>removeUniqueNames</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A> namesToRemove)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
 <A NAME="isCrc32Correct()"><!-- --></A><H3>
 isCrc32Correct</H3>
 <PRE>
@@ -555,6 +536,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/CorruptedTransactionLogException.html b/doc/api/bitronix/tm/journal/class-use/CorruptedTransactionLogException.html
index 591e684..6eaf20b 100644
--- a/doc/api/bitronix/tm/journal/class-use/CorruptedTransactionLogException.html
+++ b/doc/api/bitronix/tm/journal/class-use/CorruptedTransactionLogException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.CorruptedTransactionLogException (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.CorruptedTransactionLogException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.journal.CorruptedTransactionLogException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/DiskForceBatcherThread.html b/doc/api/bitronix/tm/journal/class-use/DiskForceBatcherThread.html
index 340e91d..6a7216d 100644
--- a/doc/api/bitronix/tm/journal/class-use/DiskForceBatcherThread.html
+++ b/doc/api/bitronix/tm/journal/class-use/DiskForceBatcherThread.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.DiskForceBatcherThread (Bitronix Transaction M
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.DiskForceBatcherThread (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../bitronix/tm/journal/DiskForceBatcherThread.html" ti
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/DiskForceWaitQueue.html b/doc/api/bitronix/tm/journal/class-use/DiskForceWaitQueue.html
index d56ec08..0b6c869 100644
--- a/doc/api/bitronix/tm/journal/class-use/DiskForceWaitQueue.html
+++ b/doc/api/bitronix/tm/journal/class-use/DiskForceWaitQueue.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.DiskForceWaitQueue (Bitronix Transaction Manag
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.DiskForceWaitQueue (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.journal.DiskForceWaitQueue
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/DiskJournal.html b/doc/api/bitronix/tm/journal/class-use/DiskJournal.html
index d13281c..bb160fd 100644
--- a/doc/api/bitronix/tm/journal/class-use/DiskJournal.html
+++ b/doc/api/bitronix/tm/journal/class-use/DiskJournal.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.DiskJournal (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.DiskJournal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.DiskJournal (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.DiskJournal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.DiskJournal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.journal.DiskJournal
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/Journal.html b/doc/api/bitronix/tm/journal/class-use/Journal.html
index db8fcda..a9de1f6 100644
--- a/doc/api/bitronix/tm/journal/class-use/Journal.html
+++ b/doc/api/bitronix/tm/journal/class-use/Journal.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.journal.Journal (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.journal.Journal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.journal.Journal (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.journal.Journal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.journal.Journal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -215,6 +215,6 @@ Uses of <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/NullJournal.html b/doc/api/bitronix/tm/journal/class-use/NullJournal.html
index 4af90da..d35e47e 100644
--- a/doc/api/bitronix/tm/journal/class-use/NullJournal.html
+++ b/doc/api/bitronix/tm/journal/class-use/NullJournal.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.NullJournal (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.NullJournal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.NullJournal (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.NullJournal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.NullJournal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.journal.NullJournal
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/TransactionLogAppender.html b/doc/api/bitronix/tm/journal/class-use/TransactionLogAppender.html
index 4ff90f8..a2aa5e0 100644
--- a/doc/api/bitronix/tm/journal/class-use/TransactionLogAppender.html
+++ b/doc/api/bitronix/tm/journal/class-use/TransactionLogAppender.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.TransactionLogAppender (Bitronix Transaction M
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.TransactionLogAppender (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -209,6 +209,6 @@ Uses of <A HREF="../../../../bitronix/tm/journal/TransactionLogAppender.html" ti
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/TransactionLogCursor.html b/doc/api/bitronix/tm/journal/class-use/TransactionLogCursor.html
index 78050b2..5153d8a 100644
--- a/doc/api/bitronix/tm/journal/class-use/TransactionLogCursor.html
+++ b/doc/api/bitronix/tm/journal/class-use/TransactionLogCursor.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.TransactionLogCursor (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.TransactionLogCursor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../bitronix/tm/journal/TransactionLogCursor.html" titl
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/TransactionLogHeader.html b/doc/api/bitronix/tm/journal/class-use/TransactionLogHeader.html
index d20dffd..b27cb1a 100644
--- a/doc/api/bitronix/tm/journal/class-use/TransactionLogHeader.html
+++ b/doc/api/bitronix/tm/journal/class-use/TransactionLogHeader.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.TransactionLogHeader (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.TransactionLogHeader (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../bitronix/tm/journal/TransactionLogHeader.html" titl
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/TransactionLogRecord.html b/doc/api/bitronix/tm/journal/class-use/TransactionLogRecord.html
index 77423f4..392367c 100644
--- a/doc/api/bitronix/tm/journal/class-use/TransactionLogRecord.html
+++ b/doc/api/bitronix/tm/journal/class-use/TransactionLogRecord.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.journal.TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.journal.TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.journal.TransactionLogRecord (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.journal.TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.journal.TransactionLogRecord (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -227,6 +227,38 @@ Uses of <A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" titl
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A> that return types with arguments of type <A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
+<TD><CODE><B>NullJournal.</B><B><A HREF="../../../../bitronix/tm/journal/NullJournal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
+<TD><CODE><B>Journal.</B><B><A HREF="../../../../bitronix/tm/journal/Journal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
+
+<BR>
+          Collect all dangling records of the journal, ie: COMMITTING records with no corresponding COMMITTED record.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
+<TD><CODE><B>DiskJournal.</B><B><A HREF="../../../../bitronix/tm/journal/DiskJournal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
+
+<BR>
+          Collect all dangling records of the active log file.</TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A> with parameters of type <A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -294,6 +326,6 @@ Uses of <A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" titl
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/package-frame.html b/doc/api/bitronix/tm/journal/package-frame.html
index 68fbea0..3d06d67 100644
--- a/doc/api/bitronix/tm/journal/package-frame.html
+++ b/doc/api/bitronix/tm/journal/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/journal/package-summary.html b/doc/api/bitronix/tm/journal/package-summary.html
index 9f40a82..54a4030 100644
--- a/doc/api/bitronix/tm/journal/package-summary.html
+++ b/doc/api/bitronix/tm/journal/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -228,6 +228,6 @@ Package bitronix.tm.journal Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/package-tree.html b/doc/api/bitronix/tm/journal/package-tree.html
index d7807ef..3de4aeb 100644
--- a/doc/api/bitronix/tm/journal/package-tree.html
+++ b/doc/api/bitronix/tm/journal/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.journal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.journal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.journal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.journal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.journal Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -168,6 +168,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/package-use.html b/doc/api/bitronix/tm/journal/package-use.html
index d31d53a..799cffc 100644
--- a/doc/api/bitronix/tm/journal/package-use.html
+++ b/doc/api/bitronix/tm/journal/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.journal (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -239,6 +239,6 @@ Classes in <A HREF="../../../bitronix/tm/journal/package-summary.html">bitronix.
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/package-frame.html b/doc/api/bitronix/tm/package-frame.html
index 7cec3d4..bd9812f 100644
--- a/doc/api/bitronix/tm/package-frame.html
+++ b/doc/api/bitronix/tm/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/package-summary.html b/doc/api/bitronix/tm/package-summary.html
index e27f08a..cea17ac 100644
--- a/doc/api/bitronix/tm/package-summary.html
+++ b/doc/api/bitronix/tm/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -221,6 +221,6 @@ Package bitronix.tm Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/package-tree.html b/doc/api/bitronix/tm/package-tree.html
index 8578d5d..171fc9a 100644
--- a/doc/api/bitronix/tm/package-tree.html
+++ b/doc/api/bitronix/tm/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -163,6 +163,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/package-use.html b/doc/api/bitronix/tm/package-use.html
index 563ed14..231f064 100644
--- a/doc/api/bitronix/tm/package-use.html
+++ b/doc/api/bitronix/tm/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -101,6 +101,11 @@ Packages that use <A HREF="../../bitronix/tm/package-summary.html">bitronix.tm</
         Internal implementation details. </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#bitronix.tm.recovery"><B>bitronix.tm.recovery</B></A></TD>
+<TD>
+        Recovery logic. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><A HREF="#bitronix.tm.resource.common"><B>bitronix.tm.resource.common</B></A></TD>
 <TD>
         Resource management code common across all resource types. </TD>
@@ -189,6 +194,21 @@ Classes in <A HREF="../../bitronix/tm/package-summary.html">bitronix.tm</A> used
 </TABLE>
  
 <P>
+<A NAME="bitronix.tm.recovery"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../bitronix/tm/package-summary.html">bitronix.tm</A> used by <A HREF="../../bitronix/tm/recovery/package-summary.html">bitronix.tm.recovery</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../bitronix/tm/class-use/BitronixXid.html#bitronix.tm.recovery"><B>BitronixXid</B></A></B>
+
+<BR>
+          Implementation of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/Xid.html?is-external=true" title="class or interface in javax.transaction.xa"><CODE>Xid</CODE></A>.</TD>
+</TR>
+</TABLE>
+ 
+<P>
 <A NAME="bitronix.tm.resource.common"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
@@ -309,6 +329,6 @@ Classes in <A HREF="../../bitronix/tm/package-summary.html">bitronix.tm</A> used
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/DanglingTransaction.html b/doc/api/bitronix/tm/recovery/DanglingTransaction.html
index cdaa905..db0da4e 100644
--- a/doc/api/bitronix/tm/recovery/DanglingTransaction.html
+++ b/doc/api/bitronix/tm/recovery/DanglingTransaction.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)
+DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -98,7 +98,7 @@ Class DanglingTransaction</H2>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>DanglingTransaction</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+<DT><PRE>public final class <B>DanglingTransaction</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
 </PRE>
 
 <P>
@@ -321,6 +321,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/IncrementalRecoverer.html b/doc/api/bitronix/tm/recovery/IncrementalRecoverer.html
index a871ffa..dd69e8c 100644
--- a/doc/api/bitronix/tm/recovery/IncrementalRecoverer.html
+++ b/doc/api/bitronix/tm/recovery/IncrementalRecoverer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
+IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -261,6 +261,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/Recoverer.html b/doc/api/bitronix/tm/recovery/Recoverer.html
index 440b257..51ac5ba 100644
--- a/doc/api/bitronix/tm/recovery/Recoverer.html
+++ b/doc/api/bitronix/tm/recovery/Recoverer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Recoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Recoverer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Recoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Recoverer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Recoverer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -451,6 +451,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/RecovererMBean.html b/doc/api/bitronix/tm/recovery/RecovererMBean.html
index 24adfd1..559a4ab 100644
--- a/doc/api/bitronix/tm/recovery/RecovererMBean.html
+++ b/doc/api/bitronix/tm/recovery/RecovererMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-RecovererMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+RecovererMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ RecovererMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="RecovererMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="RecovererMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -308,6 +308,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/RecoveryException.html b/doc/api/bitronix/tm/recovery/RecoveryException.html
index 1f20eff..3037bf6 100644
--- a/doc/api/bitronix/tm/recovery/RecoveryException.html
+++ b/doc/api/bitronix/tm/recovery/RecoveryException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-RecoveryException (Bitronix Transaction Manager :: Core 2.1.2 API)
+RecoveryException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ RecoveryException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="RecoveryException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="RecoveryException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -258,6 +258,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/RecoveryHelper.html b/doc/api/bitronix/tm/recovery/RecoveryHelper.html
index c42bebf..b3aff87 100644
--- a/doc/api/bitronix/tm/recovery/RecoveryHelper.html
+++ b/doc/api/bitronix/tm/recovery/RecoveryHelper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.2 API)
+RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -149,7 +149,7 @@ Reovery helper methods.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A></CODE></FONT></TD>
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="../../../bitronix/tm/BitronixXid.html" title="class in bitronix.tm">BitronixXid</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/recovery/RecoveryHelper.html#recover(bitronix.tm.internal.XAResourceHolderState)">recover</A></B>(<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A> xaResourceHolderState)</CODE>
 
 <BR>
@@ -207,8 +207,8 @@ public <B>RecoveryHelper</B>()</PRE>
 <A NAME="recover(bitronix.tm.internal.XAResourceHolderState)"><!-- --></A><H3>
 recover</H3>
 <PRE>
-public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> <B>recover</B>(<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A> xaResourceHolderState)
-                   throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa">XAException</A></PRE>
+public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="../../../bitronix/tm/BitronixXid.html" title="class in bitronix.tm">BitronixXid</A>> <B>recover</B>(<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A> xaResourceHolderState)
+                                throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa">XAException</A></PRE>
 <DL>
 <DD>Run the recovery process on the target resource.
 <P>
@@ -310,6 +310,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/class-use/DanglingTransaction.html b/doc/api/bitronix/tm/recovery/class-use/DanglingTransaction.html
index 937261d..7d803f6 100644
--- a/doc/api/bitronix/tm/recovery/class-use/DanglingTransaction.html
+++ b/doc/api/bitronix/tm/recovery/class-use/DanglingTransaction.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.recovery.DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.recovery.DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.recovery.DanglingTransaction (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.recovery.DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.recovery.DanglingTransaction (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.recovery.DanglingTransaction
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/class-use/IncrementalRecoverer.html b/doc/api/bitronix/tm/recovery/class-use/IncrementalRecoverer.html
index 3245d85..c85e27d 100644
--- a/doc/api/bitronix/tm/recovery/class-use/IncrementalRecoverer.html
+++ b/doc/api/bitronix/tm/recovery/class-use/IncrementalRecoverer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.recovery.IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.recovery.IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.recovery.IncrementalRecoverer (Bitronix Transaction Ma
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.recovery.IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.recovery.IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.recovery.IncrementalRecoverer
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/class-use/Recoverer.html b/doc/api/bitronix/tm/recovery/class-use/Recoverer.html
index fccb453..3b6e266 100644
--- a/doc/api/bitronix/tm/recovery/class-use/Recoverer.html
+++ b/doc/api/bitronix/tm/recovery/class-use/Recoverer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.recovery.Recoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.recovery.Recoverer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.recovery.Recoverer (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.recovery.Recoverer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.recovery.Recoverer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -232,6 +232,6 @@ Uses of <A HREF="../../../../bitronix/tm/recovery/Recoverer.html" title="class i
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/class-use/RecovererMBean.html b/doc/api/bitronix/tm/recovery/class-use/RecovererMBean.html
index f5212b5..01d7e1b 100644
--- a/doc/api/bitronix/tm/recovery/class-use/RecovererMBean.html
+++ b/doc/api/bitronix/tm/recovery/class-use/RecovererMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.recovery.RecovererMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.recovery.RecovererMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.recovery.RecovererMBean (Bitronix Transaction Mana
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.recovery.RecovererMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.recovery.RecovererMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../bitronix/tm/recovery/RecovererMBean.html" title="in
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/class-use/RecoveryException.html b/doc/api/bitronix/tm/recovery/class-use/RecoveryException.html
index 26e3bae..4edd0ec 100644
--- a/doc/api/bitronix/tm/recovery/class-use/RecoveryException.html
+++ b/doc/api/bitronix/tm/recovery/class-use/RecoveryException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.recovery.RecoveryException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.recovery.RecoveryException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.recovery.RecoveryException (Bitronix Transaction Manag
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.recovery.RecoveryException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.recovery.RecoveryException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -359,6 +359,6 @@ Uses of <A HREF="../../../../bitronix/tm/recovery/RecoveryException.html" title=
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/class-use/RecoveryHelper.html b/doc/api/bitronix/tm/recovery/class-use/RecoveryHelper.html
index 135e2a8..655531a 100644
--- a/doc/api/bitronix/tm/recovery/class-use/RecoveryHelper.html
+++ b/doc/api/bitronix/tm/recovery/class-use/RecoveryHelper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.recovery.RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.recovery.RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.recovery.RecoveryHelper (Bitronix Transaction Manager
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.recovery.RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.recovery.RecoveryHelper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.recovery.RecoveryHelper
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/package-frame.html b/doc/api/bitronix/tm/recovery/package-frame.html
index 7e1910a..0786b9c 100644
--- a/doc/api/bitronix/tm/recovery/package-frame.html
+++ b/doc/api/bitronix/tm/recovery/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/recovery/package-summary.html b/doc/api/bitronix/tm/recovery/package-summary.html
index cf64cda..cfeca2a 100644
--- a/doc/api/bitronix/tm/recovery/package-summary.html
+++ b/doc/api/bitronix/tm/recovery/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -211,6 +211,6 @@ Package bitronix.tm.recovery Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/package-tree.html b/doc/api/bitronix/tm/recovery/package-tree.html
index 8dcb3ad..3039a4e 100644
--- a/doc/api/bitronix/tm/recovery/package-tree.html
+++ b/doc/api/bitronix/tm/recovery/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.recovery Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.recovery Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.recovery Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.recovery Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.recovery Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -160,6 +160,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/package-use.html b/doc/api/bitronix/tm/recovery/package-use.html
index 3475991..42b6892 100644
--- a/doc/api/bitronix/tm/recovery/package-use.html
+++ b/doc/api/bitronix/tm/recovery/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.recovery (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -313,6 +313,6 @@ Classes in <A HREF="../../../bitronix/tm/recovery/package-summary.html">bitronix
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ResourceConfigurationException.html b/doc/api/bitronix/tm/resource/ResourceConfigurationException.html
index f8f5ac7..0038ba3 100644
--- a/doc/api/bitronix/tm/resource/ResourceConfigurationException.html
+++ b/doc/api/bitronix/tm/resource/ResourceConfigurationException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.2 API)
+ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -259,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ResourceLoader.html b/doc/api/bitronix/tm/resource/ResourceLoader.html
index e8e5a8a..eef6f67 100644
--- a/doc/api/bitronix/tm/resource/ResourceLoader.html
+++ b/doc/api/bitronix/tm/resource/ResourceLoader.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ResourceLoader (Bitronix Transaction Manager :: Core 2.1.2 API)
+ResourceLoader (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ResourceLoader (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ResourceLoader (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ResourceLoader (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -148,7 +148,7 @@ XA resources pools configurator & loader.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/resource/ResourceLoader.html#getResources()">getResources</A></B>()</CODE>
 
 <BR>
@@ -214,7 +214,7 @@ public <B>ResourceLoader</B>()</PRE>
 <A NAME="getResources()"><!-- --></A><H3>
 getResources</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A> <B>getResources</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A>> <B>getResources</B>()</PRE>
 <DL>
 <DD>Get a Map with the configured uniqueName as key and <A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceProducer</CODE></A> as value.
 <P>
@@ -322,6 +322,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ResourceObjectFactory.html b/doc/api/bitronix/tm/resource/ResourceObjectFactory.html
index e32a408..b665589 100644
--- a/doc/api/bitronix/tm/resource/ResourceObjectFactory.html
+++ b/doc/api/bitronix/tm/resource/ResourceObjectFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -147,7 +147,7 @@ Class ResourceObjectFactory</H2>
 <TD><CODE><B><A HREF="../../../bitronix/tm/resource/ResourceObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)">getObjectInstance</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj,
                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> jndiNameObject,
                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A> nameCtx,
-                  <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A> environment)</CODE>
+                  <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A><?,?> environment)</CODE>
 
 <BR>
            </TD>
@@ -198,7 +198,7 @@ getObjectInstance</H3>
 public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getObjectInstance</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj,
                                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Name.html?is-external=true" title="class or interface in javax.naming">Name</A> jndiNameObject,
                                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A> nameCtx,
-                                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A> environment)
+                                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html?is-external=true" title="class or interface in java.util">Hashtable</A><?,?> environment)
                          throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
 <DL>
 <DD><DL>
@@ -271,6 +271,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ResourceRegistrar.html b/doc/api/bitronix/tm/resource/ResourceRegistrar.html
index d97c085..64da1e8 100644
--- a/doc/api/bitronix/tm/resource/ResourceRegistrar.html
+++ b/doc/api/bitronix/tm/resource/ResourceRegistrar.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)
+ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -157,7 +157,7 @@ Collection of initialized <A HREF="../../../bitronix/tm/resource/common/XAResour
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A></CODE></FONT></TD>
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/resource/ResourceRegistrar.html#getResourcesUniqueNames()">getResourcesUniqueNames</A></B>()</CODE>
 
 <BR>
@@ -236,7 +236,7 @@ public static <A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.h
 <A NAME="getResourcesUniqueNames()"><!-- --></A><H3>
 getResourcesUniqueNames</H3>
 <PRE>
-public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> <B>getResourcesUniqueNames</B>()</PRE>
+public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> <B>getResourcesUniqueNames</B>()</PRE>
 <DL>
 <DD>Get all <A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceProducer</CODE></A>s unique names.
 <P>
@@ -350,6 +350,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/class-use/ResourceConfigurationException.html b/doc/api/bitronix/tm/resource/class-use/ResourceConfigurationException.html
index d863cc5..c31ebc8 100644
--- a/doc/api/bitronix/tm/resource/class-use/ResourceConfigurationException.html
+++ b/doc/api/bitronix/tm/resource/class-use/ResourceConfigurationException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.ResourceConfigurationException (Bitronix Tran
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.ResourceConfigurationException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.ResourceConfigurationException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/class-use/ResourceLoader.html b/doc/api/bitronix/tm/resource/class-use/ResourceLoader.html
index d426174..335d3d2 100644
--- a/doc/api/bitronix/tm/resource/class-use/ResourceLoader.html
+++ b/doc/api/bitronix/tm/resource/class-use/ResourceLoader.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.ResourceLoader (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.ResourceLoader (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.ResourceLoader (Bitronix Transaction Manager
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.ResourceLoader (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.ResourceLoader (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../bitronix/tm/resource/ResourceLoader.html" title="cl
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/class-use/ResourceObjectFactory.html b/doc/api/bitronix/tm/resource/class-use/ResourceObjectFactory.html
index b407d16..cc9e690 100644
--- a/doc/api/bitronix/tm/resource/class-use/ResourceObjectFactory.html
+++ b/doc/api/bitronix/tm/resource/class-use/ResourceObjectFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.ResourceObjectFactory (Bitronix Transaction M
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.ResourceObjectFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.ResourceObjectFactory
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/class-use/ResourceRegistrar.html b/doc/api/bitronix/tm/resource/class-use/ResourceRegistrar.html
index 770da7c..d9b379e 100644
--- a/doc/api/bitronix/tm/resource/class-use/ResourceRegistrar.html
+++ b/doc/api/bitronix/tm/resource/class-use/ResourceRegistrar.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.ResourceRegistrar (Bitronix Transaction Manag
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.ResourceRegistrar (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.ResourceRegistrar
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/AbstractXAResourceHolder.html b/doc/api/bitronix/tm/resource/common/AbstractXAResourceHolder.html
index 91c317c..fd87362 100644
--- a/doc/api/bitronix/tm/resource/common/AbstractXAResourceHolder.html
+++ b/doc/api/bitronix/tm/resource/common/AbstractXAResourceHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -168,7 +168,7 @@ Implementation of all services required by a <A HREF="../../../../bitronix/tm/re
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/common/AbstractXAResourceHolder.html#getXAResourceHolderStateGtrids()">getXAResourceHolderStateGtrids</A></B>()</CODE>
 
 <BR>
@@ -177,7 +177,7 @@ Implementation of all services required by a <A HREF="../../../../bitronix/tm/re
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/common/AbstractXAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">getXAResourceHolderStatesForGtrid</A></B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</CODE>
 
 <BR>
@@ -286,7 +286,7 @@ public <B>AbstractXAResourceHolder</B>()</PRE>
 <A NAME="getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)"><!-- --></A><H3>
 getXAResourceHolderStatesForGtrid</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A> <B>getXAResourceHolderStatesForGtrid</B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> <B>getXAResourceHolderStatesForGtrid</B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm. [...]
 <DL>
 <DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">XAResourceHolder</A></CODE></B></DD>
 <DD>Get all the <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><CODE>XAResourceHolderState</CODE></A>s of this wrapped resource for a specific GTRID.
@@ -376,7 +376,7 @@ public boolean <B>isParticipatingInActiveGlobalTransaction</B>()</PRE>
 <A NAME="getXAResourceHolderStateGtrids()"><!-- --></A><H3>
 getXAResourceHolderStateGtrids</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> <B>getXAResourceHolderStateGtrids</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> <B>getXAResourceHolderStateGtrids</B>()</PRE>
 <DL>
 <DD>Simple helper method which returns a set of GTRIDs of transactions in which
  this resource is enlisted. Useful for monitoring.
@@ -450,6 +450,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/AbstractXAStatefulHolder.html b/doc/api/bitronix/tm/resource/common/AbstractXAStatefulHolder.html
index ad3b212..d02eff5 100644
--- a/doc/api/bitronix/tm/resource/common/AbstractXAStatefulHolder.html
+++ b/doc/api/bitronix/tm/resource/common/AbstractXAStatefulHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -373,6 +373,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/DeferredReleaseSynchronization.html b/doc/api/bitronix/tm/resource/common/DeferredReleaseSynchronization.html
index 2aa613b..999ef99 100644
--- a/doc/api/bitronix/tm/resource/common/DeferredReleaseSynchronization.html
+++ b/doc/api/bitronix/tm/resource/common/DeferredReleaseSynchronization.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.2 API)
+DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -328,6 +328,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/RecoveryXAResourceHolder.html b/doc/api/bitronix/tm/resource/common/RecoveryXAResourceHolder.html
index d652b15..552b7d8 100644
--- a/doc/api/bitronix/tm/resource/common/RecoveryXAResourceHolder.html
+++ b/doc/api/bitronix/tm/resource/common/RecoveryXAResourceHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -205,7 +205,7 @@ Class RecoveryXAResourceHolder</H2>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/common/RecoveryXAResourceHolder.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
 
 <BR>
@@ -345,7 +345,7 @@ public <A HREF="../../../../bitronix/tm/resource/common/ResourceBean.html" title
 <A NAME="getXAResourceHolders()"><!-- --></A><H3>
 getXAResourceHolders</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getXAResourceHolders</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>> <B>getXAResourceHolders</B>()</PRE>
 <DL>
 <DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/resource/common/XAStatefulHolder.html#getXAResourceHolders()">XAStatefulHolder</A></CODE></B></DD>
 <DD>Get the list of <A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
@@ -439,6 +439,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/ResourceBean.html b/doc/api/bitronix/tm/resource/common/ResourceBean.html
index 15da16c..205343f 100644
--- a/doc/api/bitronix/tm/resource/common/ResourceBean.html
+++ b/doc/api/bitronix/tm/resource/common/ResourceBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ResourceBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+ResourceBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ResourceBean (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ResourceBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ResourceBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -1140,6 +1140,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/StateChangeListener.html b/doc/api/bitronix/tm/resource/common/StateChangeListener.html
index a5c8fae..85be939 100644
--- a/doc/api/bitronix/tm/resource/common/StateChangeListener.html
+++ b/doc/api/bitronix/tm/resource/common/StateChangeListener.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-StateChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)
+StateChangeListener (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ StateChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="StateChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="StateChangeListener (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -244,6 +244,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/TransactionContextHelper.html b/doc/api/bitronix/tm/resource/common/TransactionContextHelper.html
index 6381fee..592dd94 100644
--- a/doc/api/bitronix/tm/resource/common/TransactionContextHelper.html
+++ b/doc/api/bitronix/tm/resource/common/TransactionContextHelper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -362,6 +362,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/XAPool.html b/doc/api/bitronix/tm/resource/common/XAPool.html
index f69c4e3..d32c6da 100644
--- a/doc/api/bitronix/tm/resource/common/XAPool.html
+++ b/doc/api/bitronix/tm/resource/common/XAPool.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-XAPool (Bitronix Transaction Manager :: Core 2.1.2 API)
+XAPool (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ XAPool (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="XAPool (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="XAPool (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -194,14 +194,6 @@ Generic XA pool. <A HREF="../../../../bitronix/tm/resource/common/XAStatefulHold
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/common/XAPool.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
-
-<BR>
-           </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> long</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/common/XAPool.html#inPoolSize()">inPoolSize</A></B>()</CODE>
 
@@ -492,20 +484,6 @@ public <A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" t
 </DL>
 <HR>
 
-<A NAME="getXAResourceHolders()"><!-- --></A><H3>
-getXAResourceHolders</H3>
-<PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getXAResourceHolders</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
 <A NAME="getNextShrinkDate()"><!-- --></A><H3>
 getNextShrinkDate</H3>
 <PRE>
@@ -627,6 +605,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/XAResourceHolder.html b/doc/api/bitronix/tm/resource/common/XAResourceHolder.html
index f06c32a..0bf40b9 100644
--- a/doc/api/bitronix/tm/resource/common/XAResourceHolder.html
+++ b/doc/api/bitronix/tm/resource/common/XAResourceHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -161,7 +161,7 @@ Interface XAResourceHolder</H2>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">getXAResourceHolderStatesForGtrid</A></B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</CODE>
 
 <BR>
@@ -235,7 +235,7 @@ getXAResource</H3>
 <A NAME="getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)"><!-- --></A><H3>
 getXAResourceHolderStatesForGtrid</H3>
 <PRE>
-<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A> <B>getXAResourceHolderStatesForGtrid</B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</PRE>
+<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> <B>getXAResourceHolderStatesForGtrid</B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils"> [...]
 <DL>
 <DD>Get all the <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><CODE>XAResourceHolderState</CODE></A>s of this wrapped resource for a specific GTRID.
  <p>The returned Map is guaranteed to return states in order they were added when its values are iterated.</p>
@@ -377,6 +377,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/XAResourceProducer.html b/doc/api/bitronix/tm/resource/common/XAResourceProducer.html
index 96e4776..d3a2580 100644
--- a/doc/api/bitronix/tm/resource/common/XAResourceProducer.html
+++ b/doc/api/bitronix/tm/resource/common/XAResourceProducer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)
+XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -417,6 +417,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/XAStatefulHolder.html b/doc/api/bitronix/tm/resource/common/XAStatefulHolder.html
index 999559d..33a8f9c 100644
--- a/doc/api/bitronix/tm/resource/common/XAStatefulHolder.html
+++ b/doc/api/bitronix/tm/resource/common/XAStatefulHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -210,7 +210,7 @@ Any pooled connection class must implement the <A HREF="../../../../bitronix/tm/
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/common/XAStatefulHolder.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
 
 <BR>
@@ -362,7 +362,7 @@ void <B>removeStateChangeEventListener</B>(<A HREF="../../../../bitronix/tm/reso
 <A NAME="getXAResourceHolders()"><!-- --></A><H3>
 getXAResourceHolders</H3>
 <PRE>
-<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getXAResourceHolders</B>()</PRE>
+<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>> <B>getXAResourceHolders</B>()</PRE>
 <DL>
 <DD>Get the list of <A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
  <A HREF="../../../../bitronix/tm/resource/common/XAStatefulHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAStatefulHolder</CODE></A> that are still open.
@@ -485,6 +485,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/AbstractXAResourceHolder.html b/doc/api/bitronix/tm/resource/common/class-use/AbstractXAResourceHolder.html
index 56976fd..950eda1 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/AbstractXAResourceHolder.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/AbstractXAResourceHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.common.AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.common.AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.common.AbstractXAResourceHolder (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.common.AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.common.AbstractXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -159,7 +159,7 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/AbstractXAResourceHo
 <TD><CODE><B><A HREF="../../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html" title="class in bitronix.tm.resource.ehcache">EhCacheXAResourceHolder</A></B></CODE>
 
 <BR>
-          EHCache implementation of BTM's XAResourceHolder.</TD>
+          Ehcache implementation of BTM's XAResourceHolder.</TD>
 </TR>
 </TABLE>
  
@@ -269,6 +269,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/AbstractXAResourceHo
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/AbstractXAStatefulHolder.html b/doc/api/bitronix/tm/resource/common/class-use/AbstractXAStatefulHolder.html
index 3ec3def..78dea49 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/AbstractXAStatefulHolder.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/AbstractXAStatefulHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.common.AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.common.AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.common.AbstractXAStatefulHolder (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.common.AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.common.AbstractXAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -167,7 +167,7 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/AbstractXAStatefulHo
 <TD><CODE><B><A HREF="../../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html" title="class in bitronix.tm.resource.ehcache">EhCacheXAResourceHolder</A></B></CODE>
 
 <BR>
-          EHCache implementation of BTM's XAResourceHolder.</TD>
+          Ehcache implementation of BTM's XAResourceHolder.</TD>
 </TR>
 </TABLE>
  
@@ -285,6 +285,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/AbstractXAStatefulHo
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/DeferredReleaseSynchronization.html b/doc/api/bitronix/tm/resource/common/class-use/DeferredReleaseSynchronization.html
index d135a71..5d0726e 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/DeferredReleaseSynchronization.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/DeferredReleaseSynchronization.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.common.DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.common.DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.common.DeferredReleaseSynchronization (Bitron
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.common.DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.common.DeferredReleaseSynchronization (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.common.DeferredReleaseSynchronization
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/RecoveryXAResourceHolder.html b/doc/api/bitronix/tm/resource/common/class-use/RecoveryXAResourceHolder.html
index c87e872..d4b6767 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/RecoveryXAResourceHolder.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/RecoveryXAResourceHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.common.RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.common.RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.common.RecoveryXAResourceHolder (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.common.RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.common.RecoveryXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -207,6 +207,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/RecoveryXAResourceHo
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/ResourceBean.html b/doc/api/bitronix/tm/resource/common/class-use/ResourceBean.html
index 066c602..93c1c3b 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/ResourceBean.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/ResourceBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.common.ResourceBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.common.ResourceBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.common.ResourceBean (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.common.ResourceBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.common.ResourceBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -459,6 +459,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/ResourceBean.html" t
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/StateChangeListener.html b/doc/api/bitronix/tm/resource/common/class-use/StateChangeListener.html
index a4b5390..5291d1f 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/StateChangeListener.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/StateChangeListener.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.common.StateChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.common.StateChangeListener (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.common.StateChangeListener (Bitronix Tran
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.common.StateChangeListener (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.common.StateChangeListener (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -278,6 +278,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/StateChangeListener.
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/TransactionContextHelper.html b/doc/api/bitronix/tm/resource/common/class-use/TransactionContextHelper.html
index b44367d..e3cee5f 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/TransactionContextHelper.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/TransactionContextHelper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.common.TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.common.TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.common.TransactionContextHelper (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.common.TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.common.TransactionContextHelper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.common.TransactionContextHelper
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/XAPool.html b/doc/api/bitronix/tm/resource/common/class-use/XAPool.html
index 00e7006..c92a040 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/XAPool.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/XAPool.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.common.XAPool (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.common.XAPool (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.common.XAPool (Bitronix Transaction Manager :
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.common.XAPool (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.common.XAPool (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -201,6 +201,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAPool.html" title="
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/XAResourceHolder.html b/doc/api/bitronix/tm/resource/common/class-use/XAResourceHolder.html
index 4b15bf8..84276df 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/XAResourceHolder.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/XAResourceHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.common.XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.common.XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.common.XAResourceHolder (Bitronix Transac
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.common.XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.common.XAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -250,6 +250,31 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.htm
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../bitronix/tm/resource/common/package-summary.html">bitronix.tm.resource.common</A> that return types with arguments of type <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
+<TD><CODE><B>XAStatefulHolder.</B><B><A HREF="../../../../../bitronix/tm/resource/common/XAStatefulHolder.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
+
+<BR>
+          Get the list of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
+ <A HREF="../../../../../bitronix/tm/resource/common/XAStatefulHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAStatefulHolder</CODE></A> that are still open.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
+<TD><CODE><B>RecoveryXAResourceHolder.</B><B><A HREF="../../../../../bitronix/tm/resource/common/RecoveryXAResourceHolder.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../bitronix/tm/resource/common/package-summary.html">bitronix.tm.resource.common</A> with parameters of type <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -323,7 +348,7 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.htm
 <TD><CODE><B><A HREF="../../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html" title="class in bitronix.tm.resource.ehcache">EhCacheXAResourceHolder</A></B></CODE>
 
 <BR>
-          EHCache implementation of BTM's XAResourceHolder.</TD>
+          Ehcache implementation of BTM's XAResourceHolder.</TD>
 </TR>
 </TABLE>
  
@@ -345,6 +370,23 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.htm
 </TABLE>
  
 <P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../bitronix/tm/resource/ehcache/package-summary.html">bitronix.tm.resource.ehcache</A> that return types with arguments of type <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
+<TD><CODE><B>EhCacheXAResourceHolder.</B><B><A HREF="../../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
+
+<BR>
+          Get the list of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
+ <A HREF="../../../../../bitronix/tm/resource/common/XAStatefulHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAStatefulHolder</CODE></A> that are still open.</TD>
+</TR>
+</TABLE>
+ 
+<P>
 <A NAME="bitronix.tm.resource.jdbc"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
@@ -386,6 +428,22 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.htm
 </TABLE>
  
 <P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../bitronix/tm/resource/jdbc/package-summary.html">bitronix.tm.resource.jdbc</A> that return types with arguments of type <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
+<TD><CODE><B>JdbcPooledConnection.</B><B><A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcPooledConnection.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
 <A NAME="bitronix.tm.resource.jms"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
@@ -428,6 +486,30 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.htm
 </TABLE>
  
 <P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../bitronix/tm/resource/jms/package-summary.html">bitronix.tm.resource.jms</A> that return types with arguments of type <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
+<TD><CODE><B>JmsPooledConnection.</B><B><A HREF="../../../../../bitronix/tm/resource/jms/JmsPooledConnection.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
+<TD><CODE><B>DualSessionWrapper.</B><B><A HREF="../../../../../bitronix/tm/resource/jms/DualSessionWrapper.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
 <HR>
 
 
@@ -482,6 +564,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceHolder.htm
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/XAResourceProducer.html b/doc/api/bitronix/tm/resource/common/class-use/XAResourceProducer.html
index 84430df..3382049 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/XAResourceProducer.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/XAResourceProducer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.common.XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.common.XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.common.XAResourceProducer (Bitronix Trans
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.common.XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.common.XAResourceProducer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -176,6 +176,22 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceProducer.h
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../bitronix/tm/resource/package-summary.html">bitronix.tm.resource</A> that return types with arguments of type <A HREF="../../../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="../../../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A>></CODE></FONT></TD>
+<TD><CODE><B>ResourceLoader.</B><B><A HREF="../../../../../bitronix/tm/resource/ResourceLoader.html#getResources()">getResources</A></B>()</CODE>
+
+<BR>
+          Get a Map with the configured uniqueName as key and <A HREF="../../../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceProducer</CODE></A> as value.</TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../bitronix/tm/resource/package-summary.html">bitronix.tm.resource</A> with parameters of type <A HREF="../../../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -350,6 +366,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAResourceProducer.h
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/class-use/XAStatefulHolder.html b/doc/api/bitronix/tm/resource/common/class-use/XAStatefulHolder.html
index f07929f..8ca30ad 100644
--- a/doc/api/bitronix/tm/resource/common/class-use/XAStatefulHolder.html
+++ b/doc/api/bitronix/tm/resource/common/class-use/XAStatefulHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.common.XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.common.XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.common.XAStatefulHolder (Bitronix Transac
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.common.XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.common.XAStatefulHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -295,7 +295,7 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAStatefulHolder.htm
 <TD><CODE><B><A HREF="../../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html" title="class in bitronix.tm.resource.ehcache">EhCacheXAResourceHolder</A></B></CODE>
 
 <BR>
-          EHCache implementation of BTM's XAResourceHolder.</TD>
+          Ehcache implementation of BTM's XAResourceHolder.</TD>
 </TR>
 </TABLE>
  
@@ -520,6 +520,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/common/XAStatefulHolder.htm
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/package-frame.html b/doc/api/bitronix/tm/resource/common/package-frame.html
index 9e42298..a5ae6d8 100644
--- a/doc/api/bitronix/tm/resource/common/package-frame.html
+++ b/doc/api/bitronix/tm/resource/common/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/resource/common/package-summary.html b/doc/api/bitronix/tm/resource/common/package-summary.html
index 01ba7ad..dd33de3 100644
--- a/doc/api/bitronix/tm/resource/common/package-summary.html
+++ b/doc/api/bitronix/tm/resource/common/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -223,6 +223,6 @@ Package bitronix.tm.resource.common Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/package-tree.html b/doc/api/bitronix/tm/resource/common/package-tree.html
index 848ceb6..d03a28a 100644
--- a/doc/api/bitronix/tm/resource/common/package-tree.html
+++ b/doc/api/bitronix/tm/resource/common/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.common Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.common Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.common Class Hierarchy (Bitronix Transaction Manager :: Cor
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.common Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.common Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -171,6 +171,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/common/package-use.html b/doc/api/bitronix/tm/resource/common/package-use.html
index ac9bd1c..db24128 100644
--- a/doc/api/bitronix/tm/resource/common/package-use.html
+++ b/doc/api/bitronix/tm/resource/common/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.resource.common (Bitronix Transaction Manager :: Cor
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.resource.common (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -476,6 +476,6 @@ Classes in <A HREF="../../../../bitronix/tm/resource/common/package-summary.html
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html b/doc/api/bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html
index e398e46..3dc3b2e 100644
--- a/doc/api/bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html
+++ b/doc/api/bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -107,7 +107,7 @@ Class EhCacheXAResourceHolder</H2>
 </PRE>
 
 <P>
-EHCache implementation of BTM's XAResourceHolder.
+Ehcache implementation of BTM's XAResourceHolder.
  <p>
    Copyright 2003-2010 Terracotta, Inc.
  </p>
@@ -208,7 +208,7 @@ EHCache implementation of BTM's XAResourceHolder.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
 
 <BR>
@@ -368,7 +368,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html?is-e
 <A NAME="getXAResourceHolders()"><!-- --></A><H3>
 getXAResourceHolders</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getXAResourceHolders</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>> <B>getXAResourceHolders</B>()</PRE>
 <DL>
 <DD>Get the list of <A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
  <A HREF="../../../../bitronix/tm/resource/common/XAStatefulHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAStatefulHolder</CODE></A> that are still open.
@@ -441,6 +441,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html b/doc/api/bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html
index 9ccb676..73a2b6a 100644
--- a/doc/api/bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html
+++ b/doc/api/bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)
+EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -206,6 +206,14 @@ EHCache implementation of BTM's XAResourceProducer.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html#unregisterXAResource(java.lang.String, javax.transaction.xa.XAResource)">unregisterXAResource</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> uniqueName,
                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAResource.html?is-external=true" title="class or interface in javax.transaction.xa">XAResource</A> xaResource)</CODE>
@@ -229,7 +237,7 @@ EHCache implementation of BTM's XAResourceProducer.
 <TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http: [...]
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http: [...]
 </TR>
 </TABLE>
  <A NAME="methods_inherited_from_class_bitronix.tm.resource.common.XAResourceProducer"><!-- --></A>
@@ -433,6 +441,20 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Reference.h
 <DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/NamingException.html?is-external=true" title="class or interface in javax.naming">NamingException</A></CODE></DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
@@ -494,6 +516,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ehcache/class-use/EhCacheXAResourceHolder.html b/doc/api/bitronix/tm/resource/ehcache/class-use/EhCacheXAResourceHolder.html
index dbcdea2..1ec364e 100644
--- a/doc/api/bitronix/tm/resource/ehcache/class-use/EhCacheXAResourceHolder.html
+++ b/doc/api/bitronix/tm/resource/ehcache/class-use/EhCacheXAResourceHolder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceHolder (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceHolder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.ehcache.EhCacheXAResourceHolder
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ehcache/class-use/EhCacheXAResourceProducer.html b/doc/api/bitronix/tm/resource/ehcache/class-use/EhCacheXAResourceProducer.html
index d01ac72..ea26b4b 100644
--- a/doc/api/bitronix/tm/resource/ehcache/class-use/EhCacheXAResourceProducer.html
+++ b/doc/api/bitronix/tm/resource/ehcache/class-use/EhCacheXAResourceProducer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceProducer (Bitronix T
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.ehcache.EhCacheXAResourceProducer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.ehcache.EhCacheXAResourceProducer
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ehcache/package-frame.html b/doc/api/bitronix/tm/resource/ehcache/package-frame.html
index acca25f..e3952fc 100644
--- a/doc/api/bitronix/tm/resource/ehcache/package-frame.html
+++ b/doc/api/bitronix/tm/resource/ehcache/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/resource/ehcache/package-summary.html b/doc/api/bitronix/tm/resource/ehcache/package-summary.html
index bf3f6bc..1156882 100644
--- a/doc/api/bitronix/tm/resource/ehcache/package-summary.html
+++ b/doc/api/bitronix/tm/resource/ehcache/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -98,7 +98,7 @@ Package bitronix.tm.resource.ehcache
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html" title="class in bitronix.tm.resource.ehcache">EhCacheXAResourceHolder</A></B></TD>
-<TD>EHCache implementation of BTM's XAResourceHolder.</TD>
+<TD>Ehcache implementation of BTM's XAResourceHolder.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html" title="class in bitronix.tm.resource.ehcache">EhCacheXAResourceProducer</A></B></TD>
@@ -175,6 +175,6 @@ Package bitronix.tm.resource.ehcache Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ehcache/package-tree.html b/doc/api/bitronix/tm/resource/ehcache/package-tree.html
index c73eb75..b1a8759 100644
--- a/doc/api/bitronix/tm/resource/ehcache/package-tree.html
+++ b/doc/api/bitronix/tm/resource/ehcache/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.ehcache Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.ehcache Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.ehcache Class Hierarchy (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.ehcache Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.ehcache Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -159,6 +159,6 @@ Class Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ehcache/package-use.html b/doc/api/bitronix/tm/resource/ehcache/package-use.html
index 0c0e830..250013d 100644
--- a/doc/api/bitronix/tm/resource/ehcache/package-use.html
+++ b/doc/api/bitronix/tm/resource/ehcache/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.resource.ehcache (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.ehcache
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html b/doc/api/bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html
index 19a0439..365043a 100644
--- a/doc/api/bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html
+++ b/doc/api/bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.2 API)
+BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -100,7 +100,7 @@ Class BaseProxyHandlerClass</H2>
 <DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</A></DD>
 </DL>
 <DL>
-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcCallableStatementHandle</A>, <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcConnectionHandle</A>, <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle< [...]
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcCallableStatementHandle</A>, <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcConnectionHandle</A>, <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle< [...]
 </DL>
 <HR>
 <DL>
@@ -308,6 +308,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/ConnectionCustomizer.html b/doc/api/bitronix/tm/resource/jdbc/ConnectionCustomizer.html
index e816069..49bbb4b 100644
--- a/doc/api/bitronix/tm/resource/jdbc/ConnectionCustomizer.html
+++ b/doc/api/bitronix/tm/resource/jdbc/ConnectionCustomizer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.2 API)
+ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -238,6 +238,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html
index 4721749..241691b 100644
--- a/doc/api/bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -169,15 +169,22 @@ CallableStatement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Stat
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)</CODE>
 
 <BR>
            </TD>
@@ -258,7 +265,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is
 <A NAME="isWrapperFor(java.lang.Class)"><!-- --></A><H3>
 isWrapperFor</H3>
 <PRE>
-public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
+public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)
                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
@@ -272,8 +279,8 @@ public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/
 <A NAME="unwrap(java.lang.Class)"><!-- --></A><H3>
 unwrap</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
-              throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+public <T> T <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)
+         throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
 
@@ -356,6 +363,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/JdbcConnectionHandle.html b/doc/api/bitronix/tm/resource/jdbc/JdbcConnectionHandle.html
index 8d80051..16d8963 100644
--- a/doc/api/bitronix/tm/resource/jdbc/JdbcConnectionHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/JdbcConnectionHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:12 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -229,7 +229,7 @@ Disposable Connection handle.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)</CODE>
 
 <BR>
            </TD>
@@ -377,8 +377,15 @@ Disposable Connection handle.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)</CODE>
 
 <BR>
            </TD>
@@ -796,7 +803,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/PreparedStateme
 <A NAME="isWrapperFor(java.lang.Class)"><!-- --></A><H3>
 isWrapperFor</H3>
 <PRE>
-public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
+public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)
                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
@@ -810,8 +817,8 @@ public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/
 <A NAME="unwrap(java.lang.Class)"><!-- --></A><H3>
 unwrap</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
-              throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+public <T> T <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)
+         throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
 
@@ -903,6 +910,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/JdbcPooledConnection.html b/doc/api/bitronix/tm/resource/jdbc/JdbcPooledConnection.html
index 7bf3b74..1d3ff8c 100644
--- a/doc/api/bitronix/tm/resource/jdbc/JdbcPooledConnection.html
+++ b/doc/api/bitronix/tm/resource/jdbc/JdbcPooledConnection.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
+JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -253,7 +253,7 @@ Implementation of a JDBC pooled connection wrapping vendor's <A HREF="http://jav
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPooledConnection.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
 
 <BR>
@@ -497,7 +497,7 @@ public <A HREF="../../../../bitronix/tm/resource/jdbc/PoolingDataSource.html" ti
 <A NAME="getXAResourceHolders()"><!-- --></A><H3>
 getXAResourceHolders</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getXAResourceHolders</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>> <B>getXAResourceHolders</B>()</PRE>
 <DL>
 <DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/resource/common/XAStatefulHolder.html#getXAResourceHolders()">XAStatefulHolder</A></CODE></B></DD>
 <DD>Get the list of <A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
@@ -775,6 +775,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/JdbcPooledConnectionMBean.html b/doc/api/bitronix/tm/resource/jdbc/JdbcPooledConnectionMBean.html
index 0ba936f..4b213c0 100644
--- a/doc/api/bitronix/tm/resource/jdbc/JdbcPooledConnectionMBean.html
+++ b/doc/api/bitronix/tm/resource/jdbc/JdbcPooledConnectionMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -251,6 +251,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html
index 5a8ad5b..dd976bb 100644
--- a/doc/api/bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -57,7 +57,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPooledConnectionMBean.html" title="interface in bitronix.tm.resource.jdbc"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="JdbcPreparedStatementHandle.html" target="_top"><B>NO FRAMES</B></A>   
@@ -247,7 +247,7 @@ Caching <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/PreparedStatem
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)</CODE>
 
 <BR>
            </TD>
@@ -278,8 +278,15 @@ Caching <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/PreparedStatem
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)</CODE>
 
 <BR>
            </TD>
@@ -384,7 +391,7 @@ public <B>JdbcPreparedStatementHandle</B>(<A HREF="http://java.sun.com/j2se/1.5.
 <A NAME="isWrapperFor(java.lang.Class)"><!-- --></A><H3>
 isWrapperFor</H3>
 <PRE>
-public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
+public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)
                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
@@ -398,8 +405,8 @@ public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/
 <A NAME="unwrap(java.lang.Class)"><!-- --></A><H3>
 unwrap</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
-              throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+public <T> T <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)
+         throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
 
@@ -582,7 +589,7 @@ public boolean <B>isClosed</B>()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPooledConnectionMBean.html" title="interface in bitronix.tm.resource.jdbc"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="JdbcPreparedStatementHandle.html" target="_top"><B>NO FRAMES</B></A>   
@@ -611,6 +618,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/JdbcStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/JdbcResultSetHandle.html
similarity index 79%
copy from doc/api/bitronix/tm/resource/jdbc/JdbcStatementHandle.html
copy to doc/api/bitronix/tm/resource/jdbc/JdbcResultSetHandle.html
index 6e1e252..0a72710 100644
--- a/doc/api/bitronix/tm/resource/jdbc/JdbcStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/JdbcResultSetHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+JdbcResultSetHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JdbcResultSetHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -41,7 +41,7 @@ function windowTitle()
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/JdbcStatementHandle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/JdbcResultSetHandle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -57,10 +57,10 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/resource/jdbc/JdbcStatementHandle.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="JdbcStatementHandle.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="JdbcResultSetHandle.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -91,25 +91,25 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <FONT SIZE="-1">
 bitronix.tm.resource.jdbc</FONT>
 <BR>
-Class JdbcStatementHandle</H2>
+Class JdbcResultSetHandle</H2>
 <PRE>
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
   <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">bitronix.tm.resource.jdbc.BaseProxyHandlerClass</A>
-      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.resource.jdbc.JdbcStatementHandle</B>
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.resource.jdbc.JdbcResultSetHandle</B>
 </PRE>
 <DL>
 <DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</A></DD>
 </DL>
 <HR>
 <DL>
-<DT><PRE>public class <B>JdbcStatementHandle</B><DT>extends <A HREF="../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">BaseProxyHandlerClass</A></DL>
+<DT><PRE>public class <B>JdbcResultSetHandle</B><DT>extends <A HREF="../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">BaseProxyHandlerClass</A></DL>
 </PRE>
 
 <P>
-Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html?is-external=true" title="class or interface in java.sql"><CODE>Statement</CODE></A> wrapper.
+ResultSet <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql"><CODE>ResultSet</CODE></A> wrapper.
  <p/>
- This class is a proxy handler for a Statement.  It does not
- implement the Statement interface or extend a class directly,
+ This class is a proxy handler for a ResultSet.  It does not
+ implement the ResultSet interface or extend a class directly,
  but you methods implemented here will override those of the
  underlying delegate.  Simply implement a method with the same
  signature, and the local method will be called rather than the delegate.
@@ -134,8 +134,8 @@ Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.ht
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#JdbcStatementHandle(java.sql.Statement, bitronix.tm.resource.jdbc.JdbcPooledConnection)">JdbcStatementHandle</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html?is-external=true" title="class or interface in java.sql">Statement</A> delegate,
-                    <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPooledConnection.html" title="class in bitronix.tm.resource.jdbc">JdbcPooledConnection</A> pooledConnection)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#JdbcResultSetHandle(java.sql.ResultSet, bitronix.tm.resource.jdbc.BaseProxyHandlerClass)">JdbcResultSetHandle</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> delegate,
+                    <A HREF="../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">BaseProxyHandlerClass</A> statementHandle)</CODE>
 
 <BR>
            </TD>
@@ -153,7 +153,7 @@ Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.ht
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#close()">close</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#close()">close</A></B>()</CODE>
 
 <BR>
            </TD>
@@ -161,23 +161,38 @@ Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.ht
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#getProxiedDelegate()">getProxiedDelegate</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#getProxiedDelegate()">getProxiedDelegate</A></B>()</CODE>
 
 <BR>
           Must be implemented by the sub-class of this class.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html?is-external=true" title="class or interface in java.sql">Statement</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#getStatement()">getStatement</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)</CODE>
 
 <BR>
            </TD>
@@ -214,11 +229,11 @@ Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.ht
 </TR>
 </TABLE>
 
-<A NAME="JdbcStatementHandle(java.sql.Statement, bitronix.tm.resource.jdbc.JdbcPooledConnection)"><!-- --></A><H3>
-JdbcStatementHandle</H3>
+<A NAME="JdbcResultSetHandle(java.sql.ResultSet, bitronix.tm.resource.jdbc.BaseProxyHandlerClass)"><!-- --></A><H3>
+JdbcResultSetHandle</H3>
 <PRE>
-public <B>JdbcStatementHandle</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html?is-external=true" title="class or interface in java.sql">Statement</A> delegate,
-                           <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPooledConnection.html" title="class in bitronix.tm.resource.jdbc">JdbcPooledConnection</A> pooledConnection)</PRE>
+public <B>JdbcResultSetHandle</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> delegate,
+                           <A HREF="../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">BaseProxyHandlerClass</A> statementHandle)</PRE>
 <DL>
 </DL>
 
@@ -235,7 +250,7 @@ public <B>JdbcStatementHandle</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/a
 <A NAME="isWrapperFor(java.lang.Class)"><!-- --></A><H3>
 isWrapperFor</H3>
 <PRE>
-public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
+public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)
                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
@@ -249,8 +264,8 @@ public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/
 <A NAME="unwrap(java.lang.Class)"><!-- --></A><H3>
 unwrap</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
-              throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+public <T> T <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)
+         throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
 
@@ -295,6 +310,20 @@ public void <B>close</B>()
 <DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="getStatement()"><!-- --></A><H3>
+getStatement</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html?is-external=true" title="class or interface in java.sql">Statement</A> <B>getStatement</B>()
+                       throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
@@ -311,7 +340,7 @@ public void <B>close</B>()
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/JdbcStatementHandle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/JdbcResultSetHandle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -327,10 +356,10 @@ public void <B>close</B>()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/resource/jdbc/JdbcStatementHandle.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="JdbcStatementHandle.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="JdbcResultSetHandle.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -356,6 +385,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/JdbcStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/JdbcStatementHandle.html
index 6e1e252..911cdaf 100644
--- a/doc/api/bitronix/tm/resource/jdbc/JdbcStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/JdbcStatementHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -56,7 +56,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>PREV CLASS</B></A> 
+ <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc"><B>PREV CLASS</B></A> 
  <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/resource/jdbc/JdbcStatementHandle.html" target="_top"><B>FRAMES</B></A>   
@@ -160,6 +160,30 @@ Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.ht
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#equals(java.lang.Object)">equals</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> object)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#executeQuery(java.lang.String)">executeQuery</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> sql)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#getGeneratedKeys()">getGeneratedKeys</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#getProxiedDelegate()">getProxiedDelegate</A></B>()</CODE>
 
@@ -168,16 +192,31 @@ Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.ht
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#getResultSet()">getResultSet</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)</CODE>
 
 <BR>
            </TD>
@@ -198,7 +237,7 @@ Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.ht
 <TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http: [...]
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.c [...]
 </TR>
 </TABLE>
  
@@ -235,7 +274,7 @@ public <B>JdbcStatementHandle</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/a
 <A NAME="isWrapperFor(java.lang.Class)"><!-- --></A><H3>
 isWrapperFor</H3>
 <PRE>
-public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
+public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)
                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
@@ -249,8 +288,8 @@ public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/
 <A NAME="unwrap(java.lang.Class)"><!-- --></A><H3>
 unwrap</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
-              throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+public <T> T <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)
+         throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
 
@@ -295,6 +334,62 @@ public void <B>close</B>()
 <DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="executeQuery(java.lang.String)"><!-- --></A><H3>
+executeQuery</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> <B>executeQuery</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> sql)
+                       throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeneratedKeys()"><!-- --></A><H3>
+getGeneratedKeys</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> <B>getGeneratedKeys</B>()
+                           throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultSet()"><!-- --></A><H3>
+getResultSet</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> <B>getResultSet</B>()
+                       throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> object)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A></CODE> in class <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
@@ -326,7 +421,7 @@ public void <B>close</B>()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>PREV CLASS</B></A> 
+ <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc"><B>PREV CLASS</B></A> 
  <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/resource/jdbc/JdbcStatementHandle.html" target="_top"><B>FRAMES</B></A>   
@@ -356,6 +451,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html
index add3593..e491aa9 100644
--- a/doc/api/bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -145,6 +145,38 @@ Class JdbcUncachedPreparedStatementHandle</H2>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#equals(java.lang.Object)">equals</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> object)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#executeQuery()">executeQuery</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#executeQuery(java.lang.String)">executeQuery</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> sql)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#getGeneratedKeys()">getGeneratedKeys</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#getProxiedDelegate()">getProxiedDelegate</A></B>()</CODE>
 
@@ -153,16 +185,31 @@ Class JdbcUncachedPreparedStatementHandle</H2>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#getResultSet()">getResultSet</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)</CODE>
 
 <BR>
            </TD>
@@ -183,7 +230,7 @@ Class JdbcUncachedPreparedStatementHandle</H2>
 <TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http: [...]
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.c [...]
 </TR>
 </TABLE>
  
@@ -243,7 +290,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is
 <A NAME="isWrapperFor(java.lang.Class)"><!-- --></A><H3>
 isWrapperFor</H3>
 <PRE>
-public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
+public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)
                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
@@ -257,8 +304,8 @@ public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/
 <A NAME="unwrap(java.lang.Class)"><!-- --></A><H3>
 unwrap</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
-              throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+public <T> T <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)
+         throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
 
@@ -280,6 +327,76 @@ public void <B>close</B>()
 <DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="executeQuery(java.lang.String)"><!-- --></A><H3>
+executeQuery</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> <B>executeQuery</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> sql)
+                       throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeneratedKeys()"><!-- --></A><H3>
+getGeneratedKeys</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> <B>getGeneratedKeys</B>()
+                           throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultSet()"><!-- --></A><H3>
+getResultSet</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> <B>getResultSet</B>()
+                       throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="executeQuery()"><!-- --></A><H3>
+executeQuery</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> <B>executeQuery</B>()
+                       throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> object)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A></CODE> in class <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
@@ -341,6 +458,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/LruEvictionListener.html b/doc/api/bitronix/tm/resource/jdbc/LruEvictionListener.html
index 1679ab5..7312500 100644
--- a/doc/api/bitronix/tm/resource/jdbc/LruEvictionListener.html
+++ b/doc/api/bitronix/tm/resource/jdbc/LruEvictionListener.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.2 API)
+LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -210,6 +210,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/LruStatementCache.html b/doc/api/bitronix/tm/resource/jdbc/LruStatementCache.html
index 402f2bb..fa43204 100644
--- a/doc/api/bitronix/tm/resource/jdbc/LruStatementCache.html
+++ b/doc/api/bitronix/tm/resource/jdbc/LruStatementCache.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LruStatementCache (Bitronix Transaction Manager :: Core 2.1.2 API)
+LruStatementCache (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LruStatementCache (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LruStatementCache (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LruStatementCache (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -102,7 +102,7 @@ Class LruStatementCache</H2>
 </PRE>
 
 <P>
-Last Recently Used PreparedStatement cache with eviction listeners 
+Last Recently Used PreparedStatement cache with eviction listeners
  support implementation.
 <P>
 
@@ -231,7 +231,7 @@ public <A HREF="../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementHandl
  flag, cursor holdability, etc.  See the equals() method in the
  JdbcPreparedStatementHandle class.  It is a complete key for a cached
  statement.
- 
+
  If there is a matching cached PreparedStatement, it will be set as the
  delegate in the provided JdbcPreparedStatementHandle.
 <P>
@@ -354,6 +354,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/PoolingDataSource.html b/doc/api/bitronix/tm/resource/jdbc/PoolingDataSource.html
index ba145e7..aa37bf6 100644
--- a/doc/api/bitronix/tm/resource/jdbc/PoolingDataSource.html
+++ b/doc/api/bitronix/tm/resource/jdbc/PoolingDataSource.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.2 API)
+PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -309,7 +309,7 @@ Implementation of a JDBC <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/PoolingDataSource.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/PoolingDataSource.html#isWrapperFor(java.lang.Class)">isWrapperFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)</CODE>
 
 <BR>
            </TD>
@@ -422,8 +422,15 @@ Implementation of a JDBC <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/PoolingDataSource.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)</CODE>
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jdbc/PoolingDataSource.html#unwrap(java.lang.Class)">unwrap</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)</CODE>
 
 <BR>
            </TD>
@@ -1002,7 +1009,7 @@ public void <B>setLogWriter</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api
 <A NAME="isWrapperFor(java.lang.Class)"><!-- --></A><H3>
 isWrapperFor</H3>
 <PRE>
-public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
+public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><?> iface)
                      throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
@@ -1019,8 +1026,8 @@ public boolean <B>isWrapperFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/
 <A NAME="unwrap(java.lang.Class)"><!-- --></A><H3>
 unwrap</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A> iface)
-              throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
+public <T> T <B>unwrap</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A><T> iface)
+         throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</A></PRE>
 <DL>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Wrapper.html?is-external=true#unwrap(java.lang.Class)" title="class or interface in java.sql">unwrap</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Wrapper.html?is-external=true" title="class or interface in java.sql">Wrapper</A></CODE></DL>
@@ -1137,6 +1144,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/PoolingDataSourceMBean.html b/doc/api/bitronix/tm/resource/jdbc/PoolingDataSourceMBean.html
index 58ca9e1..9ff6091 100644
--- a/doc/api/bitronix/tm/resource/jdbc/PoolingDataSourceMBean.html
+++ b/doc/api/bitronix/tm/resource/jdbc/PoolingDataSourceMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -345,6 +345,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/BaseProxyHandlerClass.html b/doc/api/bitronix/tm/resource/jdbc/class-use/BaseProxyHandlerClass.html
index 348f6f1..43d545e 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/BaseProxyHandlerClass.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/BaseProxyHandlerClass.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.BaseProxyHandlerClass (Bitronix Transact
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.BaseProxyHandlerClass (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -144,6 +144,14 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A></B></CODE>
+
+<BR>
+          ResultSet <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql"><CODE>ResultSet</CODE></A> wrapper.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> class</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A></B></CODE>
 
 <BR>
@@ -160,6 +168,21 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.
 </TABLE>
  
 <P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../bitronix/tm/resource/jdbc/package-summary.html">bitronix.tm.resource.jdbc</A> with parameters of type <A HREF="../../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">BaseProxyHandlerClass</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#JdbcResultSetHandle(java.sql.ResultSet, bitronix.tm.resource.jdbc.BaseProxyHandlerClass)">JdbcResultSetHandle</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql">ResultSet</A> delegate,
+                    <A HREF="../../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">BaseProxyHandlerClass</A> statementHandle)</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
 <A NAME="bitronix.tm.resource.jdbc.lrc"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
@@ -247,6 +270,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/ConnectionCustomizer.html b/doc/api/bitronix/tm/resource/jdbc/class-use/ConnectionCustomizer.html
index 99ea329..a65232f 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/ConnectionCustomizer.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/ConnectionCustomizer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.jdbc.ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.jdbc.ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.jdbc.ConnectionCustomizer (Bitronix Trans
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.jdbc.ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.jdbc.ConnectionCustomizer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -185,6 +185,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/ConnectionCustomizer.h
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcCallableStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcCallableStatementHandle.html
index 8c5ee6c..7c3ba12 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcCallableStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcCallableStatementHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.JdbcCallableStatementHandle (Bitronix Tr
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcCallableStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.JdbcCallableStatementHandle
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcConnectionHandle.html b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcConnectionHandle.html
index 2d235aa..3e90684 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcConnectionHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcConnectionHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.JdbcConnectionHandle (Bitronix Transacti
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.JdbcConnectionHandle
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPooledConnection.html b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPooledConnection.html
index d724567..6c5214d 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPooledConnection.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPooledConnection.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.JdbcPooledConnection (Bitronix Transacti
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcPooledConnection (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -237,6 +237,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcPooledConnection.h
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPooledConnectionMBean.html b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPooledConnectionMBean.html
index b9fade4..fcba284 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPooledConnectionMBean.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPooledConnectionMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.jdbc.JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.jdbc.JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.jdbc.JdbcPooledConnectionMBean (Bitronix
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.jdbc.JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.jdbc.JdbcPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcPooledConnectionMB
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPreparedStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPreparedStatementHandle.html
index 84a1e80..296a23a 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPreparedStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcPreparedStatementHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.JdbcPreparedStatementHandle (Bitronix Tr
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -243,6 +243,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcPreparedStatementH
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcResultSetHandle.html
similarity index 85%
copy from doc/api/bitronix/tm/resource/jdbc/class-use/JdbcStatementHandle.html
copy to doc/api/bitronix/tm/resource/jdbc/class-use/JdbcResultSetHandle.html
index bf8dc0a..d1d1c33 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcResultSetHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.JdbcResultSetHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.JdbcStatementHandle (Bitronix Transactio
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcResultSetHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -40,7 +40,7 @@ function windowTitle()
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -59,8 +59,8 @@ function windowTitle()
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../../index.html?bitronix/tm/resource/jdbc//class-useJdbcStatementHandle.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="JdbcStatementHandle.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../../index.html?bitronix/tm/resource/jdbc//class-useJdbcResultSetHandle.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="JdbcResultSetHandle.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -82,9 +82,9 @@ function windowTitle()
 <HR>
 <CENTER>
 <H2>
-<B>Uses of Class<br>bitronix.tm.resource.jdbc.JdbcStatementHandle</B></H2>
+<B>Uses of Class<br>bitronix.tm.resource.jdbc.JdbcResultSetHandle</B></H2>
 </CENTER>
-No usage of bitronix.tm.resource.jdbc.JdbcStatementHandle
+No usage of bitronix.tm.resource.jdbc.JdbcResultSetHandle
 <P>
 <HR>
 
@@ -100,7 +100,7 @@ No usage of bitronix.tm.resource.jdbc.JdbcStatementHandle
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -119,8 +119,8 @@ No usage of bitronix.tm.resource.jdbc.JdbcStatementHandle
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../../index.html?bitronix/tm/resource/jdbc//class-useJdbcStatementHandle.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="JdbcStatementHandle.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../../index.html?bitronix/tm/resource/jdbc//class-useJdbcResultSetHandle.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="JdbcResultSetHandle.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.JdbcStatementHandle
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcStatementHandle.html
index bf8dc0a..6b63afe 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcStatementHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.JdbcStatementHandle (Bitronix Transactio
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.JdbcStatementHandle
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcUncachedPreparedStatementHandle.html b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcUncachedPreparedStatementHandle.html
index e67c45e..d68ca54 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcUncachedPreparedStatementHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/JdbcUncachedPreparedStatementHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.JdbcUncachedPreparedStatementHandle (Bit
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.JdbcUncachedPreparedStatementHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.JdbcUncachedPreparedStatementHandle
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/LruEvictionListener.html b/doc/api/bitronix/tm/resource/jdbc/class-use/LruEvictionListener.html
index 874ff66..0a2621a 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/LruEvictionListener.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/LruEvictionListener.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.jdbc.LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.jdbc.LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.jdbc.LruEvictionListener (Bitronix Transa
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.jdbc.LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.jdbc.LruEvictionListener (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -185,6 +185,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/LruEvictionListener.ht
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/LruStatementCache.html b/doc/api/bitronix/tm/resource/jdbc/class-use/LruStatementCache.html
index d61eb44..9230dc4 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/LruStatementCache.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/LruStatementCache.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.LruStatementCache (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.LruStatementCache (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.LruStatementCache (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.LruStatementCache (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.LruStatementCache (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.LruStatementCache
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/PoolingDataSource.html b/doc/api/bitronix/tm/resource/jdbc/class-use/PoolingDataSource.html
index a7097ca..381c2a3 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/PoolingDataSource.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/PoolingDataSource.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.PoolingDataSource (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.PoolingDataSource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -192,6 +192,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/PoolingDataSource.html
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/class-use/PoolingDataSourceMBean.html b/doc/api/bitronix/tm/resource/jdbc/class-use/PoolingDataSourceMBean.html
index 241a3c9..d6020e8 100644
--- a/doc/api/bitronix/tm/resource/jdbc/class-use/PoolingDataSourceMBean.html
+++ b/doc/api/bitronix/tm/resource/jdbc/class-use/PoolingDataSourceMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.jdbc.PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.jdbc.PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.jdbc.PoolingDataSourceMBean (Bitronix Tra
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.jdbc.PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.jdbc.PoolingDataSourceMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jdbc/PoolingDataSourceMBean
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/LrcConnectionHandle.html b/doc/api/bitronix/tm/resource/jdbc/lrc/LrcConnectionHandle.html
index 25e26c1..c091876 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/LrcConnectionHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/LrcConnectionHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -456,6 +456,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXAConnection.html b/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXAConnection.html
index 0d21d6e..f4db26d 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXAConnection.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXAConnection.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
+LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -451,6 +451,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXADataSource.html b/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXADataSource.html
index c3bb314..ed12599 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXADataSource.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXADataSource.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.2 API)
+LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -590,6 +590,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXAResource.html b/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXAResource.html
index 2f4809c..d84050b 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXAResource.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/LrcXAResource.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)
+LrcXAResource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LrcXAResource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -663,6 +663,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcConnectionHandle.html b/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcConnectionHandle.html
index 6ab708b..449f475 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcConnectionHandle.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcConnectionHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.lrc.LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.lrc.LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.lrc.LrcConnectionHandle (Bitronix Transa
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.lrc.LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.lrc.LrcConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.lrc.LrcConnectionHandle
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXAConnection.html b/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXAConnection.html
index ae9b949..1ec1005 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXAConnection.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXAConnection.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAConnection (Bitronix Transactio
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.lrc.LrcXAConnection
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXADataSource.html b/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXADataSource.html
index 3d8db1e..da0c203 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXADataSource.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXADataSource.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXADataSource (Bitronix Transactio
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXADataSource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jdbc.lrc.LrcXADataSource
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXAResource.html b/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXAResource.html
index 4f813fd..a74d965 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXAResource.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/class-use/LrcXAResource.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAResource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAResource (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jdbc.lrc.LrcXAResource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -176,6 +176,6 @@ Uses of <A HREF="../../../../../../bitronix/tm/resource/jdbc/lrc/LrcXAResource.h
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/package-frame.html b/doc/api/bitronix/tm/resource/jdbc/lrc/package-frame.html
index da94be7..2d6bad8 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/package-frame.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/package-summary.html b/doc/api/bitronix/tm/resource/jdbc/lrc/package-summary.html
index 5908f3b..c9f3b58 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/package-summary.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -186,6 +186,6 @@ Package bitronix.tm.resource.jdbc.lrc Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/package-tree.html b/doc/api/bitronix/tm/resource/jdbc/lrc/package-tree.html
index 53f6fad..fdbf3dd 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/package-tree.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jdbc.lrc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jdbc.lrc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.jdbc.lrc Class Hierarchy (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.jdbc.lrc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.jdbc.lrc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -154,6 +154,6 @@ Class Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/lrc/package-use.html b/doc/api/bitronix/tm/resource/jdbc/lrc/package-use.html
index ec06ae0..47cb92b 100644
--- a/doc/api/bitronix/tm/resource/jdbc/lrc/package-use.html
+++ b/doc/api/bitronix/tm/resource/jdbc/lrc/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.resource.jdbc.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -167,6 +167,6 @@ Classes in <A HREF="../../../../../bitronix/tm/resource/jdbc/lrc/package-summary
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/package-frame.html b/doc/api/bitronix/tm/resource/jdbc/package-frame.html
index bef9ccf..71ee2bd 100644
--- a/doc/api/bitronix/tm/resource/jdbc/package-frame.html
+++ b/doc/api/bitronix/tm/resource/jdbc/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -51,6 +51,8 @@ Classes</FONT> 
 <BR>
 <A HREF="JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">JdbcPreparedStatementHandle</A>
 <BR>
+<A HREF="JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">JdbcResultSetHandle</A>
+<BR>
 <A HREF="JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">JdbcStatementHandle</A>
 <BR>
 <A HREF="JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc" target="classFrame">JdbcUncachedPreparedStatementHandle</A>
diff --git a/doc/api/bitronix/tm/resource/jdbc/package-summary.html b/doc/api/bitronix/tm/resource/jdbc/package-summary.html
index 8a08d60..05c82f8 100644
--- a/doc/api/bitronix/tm/resource/jdbc/package-summary.html
+++ b/doc/api/bitronix/tm/resource/jdbc/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -143,6 +143,10 @@ Package bitronix.tm.resource.jdbc
 <TD>Caching <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/PreparedStatement.html?is-external=true" title="class or interface in java.sql"><CODE>PreparedStatement</CODE></A> wrapper.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A></B></TD>
+<TD>ResultSet <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql"><CODE>ResultSet</CODE></A> wrapper.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A></B></TD>
 <TD>Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html?is-external=true" title="class or interface in java.sql"><CODE>Statement</CODE></A> wrapper.</TD>
 </TR>
@@ -152,7 +156,7 @@ Package bitronix.tm.resource.jdbc
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/resource/jdbc/LruStatementCache.html" title="class in bitronix.tm.resource.jdbc">LruStatementCache</A></B></TD>
-<TD>Last Recently Used PreparedStatement cache with eviction listeners 
+<TD>Last Recently Used PreparedStatement cache with eviction listeners
  support implementation.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -230,6 +234,6 @@ Package bitronix.tm.resource.jdbc Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/package-tree.html b/doc/api/bitronix/tm/resource/jdbc/package-tree.html
index b2b86f8..a3639ea 100644
--- a/doc/api/bitronix/tm/resource/jdbc/package-tree.html
+++ b/doc/api/bitronix/tm/resource/jdbc/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jdbc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jdbc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.jdbc Class Hierarchy (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.jdbc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.jdbc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -102,7 +102,7 @@ Class Hierarchy
 </UL>
 <LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc"><B>BaseProxyHandlerClass</B></A> (implements java.lang.reflect.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</A>)
 <UL>
-<LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcCallableStatementHandle</B></A><LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcConnectionHandle</B></A><LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/Jdb [...]
+<LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcCallableStatementHandle</B></A><LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcConnectionHandle</B></A><LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/Jdb [...]
 <LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/LruStatementCache.html" title="class in bitronix.tm.resource.jdbc"><B>LruStatementCache</B></A><LI TYPE="circle">bitronix.tm.resource.common.<A HREF="../../../../bitronix/tm/resource/common/ResourceBean.html" title="class in bitronix.tm.resource.common"><B>ResourceBean</B></A> (implements java.io.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="cla [...]
 <UL>
 <LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/PoolingDataSource.html" title="class in bitronix.tm.resource.jdbc"><B>PoolingDataSource</B></A> (implements javax.sql.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/DataSource.html?is-external=true" title="class or interface in javax.sql">DataSource</A>, bitronix.tm.resource.jdbc.<A HREF="../../../../bitronix/tm/resource/jdbc/PoolingDataSourceMBean.html" title="interface in bitronix.tm. [...]
@@ -168,6 +168,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jdbc/package-use.html b/doc/api/bitronix/tm/resource/jdbc/package-use.html
index 5317f98..cffee8c 100644
--- a/doc/api/bitronix/tm/resource/jdbc/package-use.html
+++ b/doc/api/bitronix/tm/resource/jdbc/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.resource.jdbc (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -229,6 +229,6 @@ Classes in <A HREF="../../../../bitronix/tm/resource/jdbc/package-summary.html">
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/DualSessionWrapper.html b/doc/api/bitronix/tm/resource/jms/DualSessionWrapper.html
index 7e24577..a792465 100644
--- a/doc/api/bitronix/tm/resource/jms/DualSessionWrapper.html
+++ b/doc/api/bitronix/tm/resource/jms/DualSessionWrapper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
+DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -448,7 +448,7 @@ JMS Session wrapper that will send calls to either a XASession or to a non-XA Se
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jms/DualSessionWrapper.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
 
 <BR>
@@ -927,7 +927,7 @@ public <A HREF="../../../../bitronix/tm/resource/common/ResourceBean.html" title
 <A NAME="getXAResourceHolders()"><!-- --></A><H3>
 getXAResourceHolders</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getXAResourceHolders</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>> <B>getXAResourceHolders</B>()</PRE>
 <DL>
 <DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/resource/common/XAStatefulHolder.html#getXAResourceHolders()">XAStatefulHolder</A></CODE></B></DD>
 <DD>Get the list of <A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
@@ -1388,6 +1388,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/JmsConnectionHandle.html b/doc/api/bitronix/tm/resource/jms/JmsConnectionHandle.html
index 67af01c..bc5bcbc 100644
--- a/doc/api/bitronix/tm/resource/jms/JmsConnectionHandle.html
+++ b/doc/api/bitronix/tm/resource/jms/JmsConnectionHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -602,6 +602,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/JmsPooledConnection.html b/doc/api/bitronix/tm/resource/jms/JmsPooledConnection.html
index 9fa99d7..460b3a8 100644
--- a/doc/api/bitronix/tm/resource/jms/JmsPooledConnection.html
+++ b/doc/api/bitronix/tm/resource/jms/JmsPooledConnection.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
+JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -232,7 +232,7 @@ Implementation of a JMS pooled connection wrapping vendor's <CODE>XAConnection</
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jms/JmsPooledConnection.html#getTransactionGtridsCurrentlyHoldingThis()">getTransactionGtridsCurrentlyHoldingThis</A></B>()</CODE>
 
 <BR>
@@ -248,7 +248,7 @@ Implementation of a JMS pooled connection wrapping vendor's <CODE>XAConnection</
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jms/JmsPooledConnection.html#getXAResourceHolders()">getXAResourceHolders</A></B>()</CODE>
 
 <BR>
@@ -389,7 +389,7 @@ public void <B>close</B>()
 <A NAME="getXAResourceHolders()"><!-- --></A><H3>
 getXAResourceHolders</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getXAResourceHolders</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common">XAResourceHolder</A>> <B>getXAResourceHolders</B>()</PRE>
 <DL>
 <DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/resource/common/XAStatefulHolder.html#getXAResourceHolders()">XAStatefulHolder</A></CODE></B></DD>
 <DD>Get the list of <A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
@@ -529,7 +529,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html?is-e
 <A NAME="getTransactionGtridsCurrentlyHoldingThis()"><!-- --></A><H3>
 getTransactionGtridsCurrentlyHoldingThis</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A> <B>getTransactionGtridsCurrentlyHoldingThis</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> <B>getTransactionGtridsCurrentlyHoldingThis</B>()</PRE>
 <DL>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/resource/jms/JmsPooledConnectionMBean.html#getTransactionGtridsCurrentlyHoldingThis()">getTransactionGtridsCurrentlyHoldingThis</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/resource/jms/JmsPooledConnectionMBean.html" title="interface in bitronix.tm.resource.jms">JmsPooledConnectionMBean</A></CODE></DL>
@@ -599,6 +599,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/JmsPooledConnectionMBean.html b/doc/api/bitronix/tm/resource/jms/JmsPooledConnectionMBean.html
index f59d962..0f97fcf 100644
--- a/doc/api/bitronix/tm/resource/jms/JmsPooledConnectionMBean.html
+++ b/doc/api/bitronix/tm/resource/jms/JmsPooledConnectionMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -139,7 +139,7 @@ Interface JmsPooledConnectionMBean</H2>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/resource/jms/JmsPooledConnectionMBean.html#getTransactionGtridsCurrentlyHoldingThis()">getTransactionGtridsCurrentlyHoldingThis</A></B>()</CODE>
 
 <BR>
@@ -184,7 +184,7 @@ getAcquisitionDate</H3>
 <A NAME="getTransactionGtridsCurrentlyHoldingThis()"><!-- --></A><H3>
 getTransactionGtridsCurrentlyHoldingThis</H3>
 <PRE>
-<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A> <B>getTransactionGtridsCurrentlyHoldingThis</B>()</PRE>
+<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> <B>getTransactionGtridsCurrentlyHoldingThis</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -251,6 +251,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/JndiXAConnectionFactory.html b/doc/api/bitronix/tm/resource/jms/JndiXAConnectionFactory.html
index 6e31c00..8057288 100644
--- a/doc/api/bitronix/tm/resource/jms/JndiXAConnectionFactory.html
+++ b/doc/api/bitronix/tm/resource/jms/JndiXAConnectionFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -718,6 +718,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/MessageConsumerWrapper.html b/doc/api/bitronix/tm/resource/jms/MessageConsumerWrapper.html
index 58fa4dc..b7bfa25 100644
--- a/doc/api/bitronix/tm/resource/jms/MessageConsumerWrapper.html
+++ b/doc/api/bitronix/tm/resource/jms/MessageConsumerWrapper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
+MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -269,7 +269,7 @@ Class MessageConsumerWrapper</H2>
 <A NAME="session"><!-- --></A><H3>
 session</H3>
 <PRE>
-protected <A HREF="../../../../bitronix/tm/resource/jms/DualSessionWrapper.html" title="class in bitronix.tm.resource.jms">DualSessionWrapper</A> <B>session</B></PRE>
+protected final <A HREF="../../../../bitronix/tm/resource/jms/DualSessionWrapper.html" title="class in bitronix.tm.resource.jms">DualSessionWrapper</A> <B>session</B></PRE>
 <DL>
 <DL>
 </DL>
@@ -530,6 +530,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/MessageProducerConsumerKey.html b/doc/api/bitronix/tm/resource/jms/MessageProducerConsumerKey.html
index 3c49319..374b8cd 100644
--- a/doc/api/bitronix/tm/resource/jms/MessageProducerConsumerKey.html
+++ b/doc/api/bitronix/tm/resource/jms/MessageProducerConsumerKey.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.2 API)
+MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -338,6 +338,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/MessageProducerWrapper.html b/doc/api/bitronix/tm/resource/jms/MessageProducerWrapper.html
index 8e9042e..49f3639 100644
--- a/doc/api/bitronix/tm/resource/jms/MessageProducerWrapper.html
+++ b/doc/api/bitronix/tm/resource/jms/MessageProducerWrapper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
+MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -346,7 +346,7 @@ Class MessageProducerWrapper</H2>
 <A NAME="session"><!-- --></A><H3>
 session</H3>
 <PRE>
-protected <A HREF="../../../../bitronix/tm/resource/jms/DualSessionWrapper.html" title="class in bitronix.tm.resource.jms">DualSessionWrapper</A> <B>session</B></PRE>
+protected final <A HREF="../../../../bitronix/tm/resource/jms/DualSessionWrapper.html" title="class in bitronix.tm.resource.jms">DualSessionWrapper</A> <B>session</B></PRE>
 <DL>
 <DL>
 </DL>
@@ -768,6 +768,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/PoolingConnectionFactory.html b/doc/api/bitronix/tm/resource/jms/PoolingConnectionFactory.html
index 6e6ae56..b4c201f 100644
--- a/doc/api/bitronix/tm/resource/jms/PoolingConnectionFactory.html
+++ b/doc/api/bitronix/tm/resource/jms/PoolingConnectionFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -830,6 +830,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/PoolingConnectionFactoryMBean.html b/doc/api/bitronix/tm/resource/jms/PoolingConnectionFactoryMBean.html
index 582c04f..0ac8567 100644
--- a/doc/api/bitronix/tm/resource/jms/PoolingConnectionFactoryMBean.html
+++ b/doc/api/bitronix/tm/resource/jms/PoolingConnectionFactoryMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -345,6 +345,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/TopicSubscriberWrapper.html b/doc/api/bitronix/tm/resource/jms/TopicSubscriberWrapper.html
index 61f3fc5..7f4678c 100644
--- a/doc/api/bitronix/tm/resource/jms/TopicSubscriberWrapper.html
+++ b/doc/api/bitronix/tm/resource/jms/TopicSubscriberWrapper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
+TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -353,6 +353,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/DualSessionWrapper.html b/doc/api/bitronix/tm/resource/jms/class-use/DualSessionWrapper.html
index e4012d9..dc95def 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/DualSessionWrapper.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/DualSessionWrapper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.DualSessionWrapper (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.DualSessionWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -217,6 +217,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jms/DualSessionWrapper.html
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/JmsConnectionHandle.html b/doc/api/bitronix/tm/resource/jms/class-use/JmsConnectionHandle.html
index af0c0c2..ba12276 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/JmsConnectionHandle.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/JmsConnectionHandle.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.JmsConnectionHandle (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.JmsConnectionHandle (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.JmsConnectionHandle
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/JmsPooledConnection.html b/doc/api/bitronix/tm/resource/jms/class-use/JmsPooledConnection.html
index 6e5fa68..d72afb4 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/JmsPooledConnection.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/JmsPooledConnection.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.JmsPooledConnection (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.JmsPooledConnection (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -200,6 +200,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jms/JmsPooledConnection.htm
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/JmsPooledConnectionMBean.html b/doc/api/bitronix/tm/resource/jms/class-use/JmsPooledConnectionMBean.html
index 52a57e9..84520ae 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/JmsPooledConnectionMBean.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/JmsPooledConnectionMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.jms.JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.jms.JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.jms.JmsPooledConnectionMBean (Bitronix Tr
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.jms.JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.jms.JmsPooledConnectionMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jms/JmsPooledConnectionMBea
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/JndiXAConnectionFactory.html b/doc/api/bitronix/tm/resource/jms/class-use/JndiXAConnectionFactory.html
index 7a09ca3..ea96a49 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/JndiXAConnectionFactory.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/JndiXAConnectionFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.JndiXAConnectionFactory (Bitronix Transac
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.JndiXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.JndiXAConnectionFactory
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/MessageConsumerWrapper.html b/doc/api/bitronix/tm/resource/jms/class-use/MessageConsumerWrapper.html
index 3eccb08..8526776 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/MessageConsumerWrapper.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/MessageConsumerWrapper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.MessageConsumerWrapper (Bitronix Transact
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.MessageConsumerWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jms/MessageConsumerWrapper.
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/MessageProducerConsumerKey.html b/doc/api/bitronix/tm/resource/jms/class-use/MessageProducerConsumerKey.html
index 7e114ea..ea13f75 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/MessageProducerConsumerKey.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/MessageProducerConsumerKey.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.MessageProducerConsumerKey (Bitronix Tran
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.MessageProducerConsumerKey (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.MessageProducerConsumerKey
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/MessageProducerWrapper.html b/doc/api/bitronix/tm/resource/jms/class-use/MessageProducerWrapper.html
index abcad7b..3d577a5 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/MessageProducerWrapper.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/MessageProducerWrapper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.MessageProducerWrapper (Bitronix Transact
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.MessageProducerWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.MessageProducerWrapper
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/PoolingConnectionFactory.html b/doc/api/bitronix/tm/resource/jms/class-use/PoolingConnectionFactory.html
index 6766fd9..1796392 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/PoolingConnectionFactory.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/PoolingConnectionFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.PoolingConnectionFactory (Bitronix Transa
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.PoolingConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -224,6 +224,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jms/PoolingConnectionFactor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/PoolingConnectionFactoryMBean.html b/doc/api/bitronix/tm/resource/jms/class-use/PoolingConnectionFactoryMBean.html
index 91510f7..ae4fe3b 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/PoolingConnectionFactoryMBean.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/PoolingConnectionFactoryMBean.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.resource.jms.PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.resource.jms.PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.resource.jms.PoolingConnectionFactoryMBean (Bitron
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.resource.jms.PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.resource.jms.PoolingConnectionFactoryMBean (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../../bitronix/tm/resource/jms/PoolingConnectionFactor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/class-use/TopicSubscriberWrapper.html b/doc/api/bitronix/tm/resource/jms/class-use/TopicSubscriberWrapper.html
index e1733fd..07b3172 100644
--- a/doc/api/bitronix/tm/resource/jms/class-use/TopicSubscriberWrapper.html
+++ b/doc/api/bitronix/tm/resource/jms/class-use/TopicSubscriberWrapper.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.TopicSubscriberWrapper (Bitronix Transact
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.TopicSubscriberWrapper (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.TopicSubscriberWrapper
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/LrcXAConnection.html b/doc/api/bitronix/tm/resource/jms/lrc/LrcXAConnection.html
index 359b30a..731196d 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/LrcXAConnection.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/LrcXAConnection.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
+LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -578,6 +578,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/LrcXAConnectionFactory.html b/doc/api/bitronix/tm/resource/jms/lrc/LrcXAConnectionFactory.html
index 3194269..c51a130 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/LrcXAConnectionFactory.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/LrcXAConnectionFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -402,6 +402,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/LrcXAResource.html b/doc/api/bitronix/tm/resource/jms/lrc/LrcXAResource.html
index c457a95..c6c6bf4 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/LrcXAResource.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/LrcXAResource.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)
+LrcXAResource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LrcXAResource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -663,6 +663,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/LrcXASession.html b/doc/api/bitronix/tm/resource/jms/lrc/LrcXASession.html
index d28263f..fac3269 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/LrcXASession.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/LrcXASession.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-LrcXASession (Bitronix Transaction Manager :: Core 2.1.2 API)
+LrcXASession (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ LrcXASession (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="LrcXASession (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="LrcXASession (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -1090,6 +1090,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAConnection.html b/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAConnection.html
index 58de2af..f00ae63 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAConnection.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAConnection.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnection (Bitronix Transaction
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnection (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.lrc.LrcXAConnection
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAConnectionFactory.html b/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAConnectionFactory.html
index 6e2c319..e5dc482 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAConnectionFactory.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAConnectionFactory.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnectionFactory (Bitronix Tran
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.lrc.LrcXAConnectionFactory (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.lrc.LrcXAConnectionFactory
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAResource.html b/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAResource.html
index 69f577f..a2f69c9 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAResource.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXAResource.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.lrc.LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.lrc.LrcXAResource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.lrc.LrcXAResource (Bitronix Transaction M
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.lrc.LrcXAResource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.lrc.LrcXAResource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.lrc.LrcXAResource
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXASession.html b/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXASession.html
index 644e7dd..abc58dc 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXASession.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/class-use/LrcXASession.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.resource.jms.lrc.LrcXASession (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.resource.jms.lrc.LrcXASession (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.resource.jms.lrc.LrcXASession (Bitronix Transaction Ma
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.resource.jms.lrc.LrcXASession (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.resource.jms.lrc.LrcXASession (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.lrc.LrcXASession
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/package-frame.html b/doc/api/bitronix/tm/resource/jms/lrc/package-frame.html
index f327646..042db54 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/package-frame.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/package-summary.html b/doc/api/bitronix/tm/resource/jms/lrc/package-summary.html
index 5091532..b0999ba 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/package-summary.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -186,6 +186,6 @@ Package bitronix.tm.resource.jms.lrc Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/package-tree.html b/doc/api/bitronix/tm/resource/jms/lrc/package-tree.html
index 210a5c7..b725e3e 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/package-tree.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jms.lrc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jms.lrc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.jms.lrc Class Hierarchy (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.jms.lrc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.jms.lrc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -153,6 +153,6 @@ Class Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/lrc/package-use.html b/doc/api/bitronix/tm/resource/jms/lrc/package-use.html
index 2d72044..e505fcd 100644
--- a/doc/api/bitronix/tm/resource/jms/lrc/package-use.html
+++ b/doc/api/bitronix/tm/resource/jms/lrc/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.resource.jms.lrc (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.resource.jms.lrc
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/package-frame.html b/doc/api/bitronix/tm/resource/jms/package-frame.html
index 2fc76bb..f6c0d00 100644
--- a/doc/api/bitronix/tm/resource/jms/package-frame.html
+++ b/doc/api/bitronix/tm/resource/jms/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/resource/jms/package-summary.html b/doc/api/bitronix/tm/resource/jms/package-summary.html
index 7316672..bf46833 100644
--- a/doc/api/bitronix/tm/resource/jms/package-summary.html
+++ b/doc/api/bitronix/tm/resource/jms/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -224,6 +224,6 @@ Package bitronix.tm.resource.jms Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/package-tree.html b/doc/api/bitronix/tm/resource/jms/package-tree.html
index 2d11939..9160ca2 100644
--- a/doc/api/bitronix/tm/resource/jms/package-tree.html
+++ b/doc/api/bitronix/tm/resource/jms/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource.jms Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource.jms Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource.jms Class Hierarchy (Bitronix Transaction Manager :: Core 2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource.jms Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource.jms Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -173,6 +173,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/jms/package-use.html b/doc/api/bitronix/tm/resource/jms/package-use.html
index fbfc523..1da0b52 100644
--- a/doc/api/bitronix/tm/resource/jms/package-use.html
+++ b/doc/api/bitronix/tm/resource/jms/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.resource.jms (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -198,6 +198,6 @@ Classes in <A HREF="../../../../bitronix/tm/resource/jms/package-summary.html">b
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/package-frame.html b/doc/api/bitronix/tm/resource/package-frame.html
index 3dea181..c99c573 100644
--- a/doc/api/bitronix/tm/resource/package-frame.html
+++ b/doc/api/bitronix/tm/resource/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/resource/package-summary.html b/doc/api/bitronix/tm/resource/package-summary.html
index 5d4141b..e7fa6ac 100644
--- a/doc/api/bitronix/tm/resource/package-summary.html
+++ b/doc/api/bitronix/tm/resource/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -193,6 +193,6 @@ Package bitronix.tm.resource Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/package-tree.html b/doc/api/bitronix/tm/resource/package-tree.html
index c55c034..788ec7f 100644
--- a/doc/api/bitronix/tm/resource/package-tree.html
+++ b/doc/api/bitronix/tm/resource/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.resource Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.resource Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.resource Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.resource Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.resource Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -158,6 +158,6 @@ Class Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/package-use.html b/doc/api/bitronix/tm/resource/package-use.html
index 1950932..09c2c0b 100644
--- a/doc/api/bitronix/tm/resource/package-use.html
+++ b/doc/api/bitronix/tm/resource/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.resource (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -167,6 +167,6 @@ Classes in <A HREF="../../../bitronix/tm/resource/package-summary.html">bitronix
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/PoolShrinkingTask.html b/doc/api/bitronix/tm/timer/PoolShrinkingTask.html
index 591d4a6..3e98ae0 100644
--- a/doc/api/bitronix/tm/timer/PoolShrinkingTask.html
+++ b/doc/api/bitronix/tm/timer/PoolShrinkingTask.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.2 API)
+PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -97,6 +97,9 @@ Class PoolShrinkingTask</H2>
   <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">bitronix.tm.timer.Task</A>
       <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.timer.PoolShrinkingTask</B>
 </PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A><<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A>></DD>
+</DL>
 <HR>
 <DL>
 <DT><PRE>public class <B>PoolShrinkingTask</B><DT>extends <A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A></DL>
@@ -172,7 +175,7 @@ This task is used to notify a XA pool to close idle connections.
 <TH ALIGN="left"><B>Methods inherited from class bitronix.tm.timer.<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../../bitronix/tm/timer/Task.html#getExecutionTime()">getExecutionTime</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getTaskScheduler()">getTaskScheduler</A>, <A HREF="../../../bitronix/tm/timer/Task.html#setExecutionTime(java.util.Date)">setExecutionTime</A></CODE></TD>
+<TD><CODE><A HREF="../../../bitronix/tm/timer/Task.html#compareTo(bitronix.tm.timer.Task)">compareTo</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getExecutionTime()">getExecutionTime</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getTaskScheduler()">getTaskScheduler</A></CODE></TD>
 </TR>
 </TABLE>
  <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -320,6 +323,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/RecoveryTask.html b/doc/api/bitronix/tm/timer/RecoveryTask.html
index c303dcf..6658099 100644
--- a/doc/api/bitronix/tm/timer/RecoveryTask.html
+++ b/doc/api/bitronix/tm/timer/RecoveryTask.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-RecoveryTask (Bitronix Transaction Manager :: Core 2.1.2 API)
+RecoveryTask (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ RecoveryTask (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="RecoveryTask (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="RecoveryTask (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -97,6 +97,9 @@ Class RecoveryTask</H2>
   <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">bitronix.tm.timer.Task</A>
       <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.timer.RecoveryTask</B>
 </PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A><<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A>></DD>
+</DL>
 <HR>
 <DL>
 <DT><PRE>public class <B>RecoveryTask</B><DT>extends <A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A></DL>
@@ -172,7 +175,7 @@ This task is used to run the background recovery.
 <TH ALIGN="left"><B>Methods inherited from class bitronix.tm.timer.<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../../bitronix/tm/timer/Task.html#getExecutionTime()">getExecutionTime</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getTaskScheduler()">getTaskScheduler</A>, <A HREF="../../../bitronix/tm/timer/Task.html#setExecutionTime(java.util.Date)">setExecutionTime</A></CODE></TD>
+<TD><CODE><A HREF="../../../bitronix/tm/timer/Task.html#compareTo(bitronix.tm.timer.Task)">compareTo</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getExecutionTime()">getExecutionTime</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getTaskScheduler()">getTaskScheduler</A></CODE></TD>
 </TR>
 </TABLE>
  <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -320,6 +323,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/Task.html b/doc/api/bitronix/tm/timer/Task.html
index bd425b4..7227141 100644
--- a/doc/api/bitronix/tm/timer/Task.html
+++ b/doc/api/bitronix/tm/timer/Task.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Task (Bitronix Transaction Manager :: Core 2.1.2 API)
+Task (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Task (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Task (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Task (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -97,11 +97,14 @@ Class Task</H2>
   <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.timer.Task</B>
 </PRE>
 <DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A><<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A>></DD>
+</DL>
+<DL>
 <DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../bitronix/tm/timer/PoolShrinkingTask.html" title="class in bitronix.tm.timer">PoolShrinkingTask</A>, <A HREF="../../../bitronix/tm/timer/RecoveryTask.html" title="class in bitronix.tm.timer">RecoveryTask</A>, <A HREF="../../../bitronix/tm/timer/TransactionTimeoutTask.html" title="class in bitronix.tm.timer">TransactionTimeoutTask</A></DD>
 </DL>
 <HR>
 <DL>
-<DT><PRE>public abstract class <B>Task</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+<DT><PRE>public abstract class <B>Task</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A><<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A>></DL>
 </PRE>
 
 <P>
@@ -146,6 +149,14 @@ Asbtract superclass of all timed tasks.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/timer/Task.html#compareTo(bitronix.tm.timer.Task)">compareTo</A></B>(<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A> otherTask)</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>abstract  void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/timer/Task.html#execute()">execute</A></B>()</CODE>
 
@@ -176,14 +187,6 @@ Asbtract superclass of all timed tasks.
 <BR>
            </TD>
 </TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/timer/Task.html#setExecutionTime(java.util.Date)">setExecutionTime</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</A> executionTime)</CODE>
-
-<BR>
-           </TD>
-</TR>
 </TABLE>
  <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
@@ -233,26 +236,35 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html?is-e
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
-<A NAME="setExecutionTime(java.util.Date)"><!-- --></A><H3>
-setExecutionTime</H3>
+<A NAME="getTaskScheduler()"><!-- --></A><H3>
+getTaskScheduler</H3>
 <PRE>
-public void <B>setExecutionTime</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</A> executionTime)</PRE>
+protected <A HREF="../../../bitronix/tm/timer/TaskScheduler.html" title="class in bitronix.tm.timer">TaskScheduler</A> <B>getTaskScheduler</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
-<A NAME="getTaskScheduler()"><!-- --></A><H3>
-getTaskScheduler</H3>
+<A NAME="compareTo(bitronix.tm.timer.Task)"><!-- --></A><H3>
+compareTo</H3>
 <PRE>
-protected <A HREF="../../../bitronix/tm/timer/TaskScheduler.html" title="class in bitronix.tm.timer">TaskScheduler</A> <B>getTaskScheduler</B>()</PRE>
+public int <B>compareTo</B>(<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A> otherTask)</PRE>
 <DL>
 <DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true#compareTo(T)" title="class or interface in java.lang">compareTo</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A><<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A>></CODE></DL>
+</DD>
+<DD><DL>
 </DL>
 </DD>
 </DL>
@@ -266,6 +278,9 @@ public abstract <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Objec
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
@@ -276,6 +291,9 @@ public abstract void <B>execute</B>()
                       throws <A HREF="../../../bitronix/tm/timer/TaskException.html" title="class in bitronix.tm.timer">TaskException</A></PRE>
 <DL>
 <DD><DL>
+</DL>
+</DD>
+<DD><DL>
 
 <DT><B>Throws:</B>
 <DD><CODE><A HREF="../../../bitronix/tm/timer/TaskException.html" title="class in bitronix.tm.timer">TaskException</A></CODE></DL>
@@ -342,6 +360,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/TaskException.html b/doc/api/bitronix/tm/timer/TaskException.html
index 422a082..277d932 100644
--- a/doc/api/bitronix/tm/timer/TaskException.html
+++ b/doc/api/bitronix/tm/timer/TaskException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TaskException (Bitronix Transaction Manager :: Core 2.1.2 API)
+TaskException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TaskException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TaskException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TaskException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -244,6 +244,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/TaskScheduler.html b/doc/api/bitronix/tm/timer/TaskScheduler.html
index 2143777..65306c6 100644
--- a/doc/api/bitronix/tm/timer/TaskScheduler.html
+++ b/doc/api/bitronix/tm/timer/TaskScheduler.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TaskScheduler (Bitronix Transaction Manager :: Core 2.1.2 API)
+TaskScheduler (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TaskScheduler (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TaskScheduler (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TaskScheduler (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -509,6 +509,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/TransactionTimeoutTask.html b/doc/api/bitronix/tm/timer/TransactionTimeoutTask.html
index 581ccf5..4db919e 100644
--- a/doc/api/bitronix/tm/timer/TransactionTimeoutTask.html
+++ b/doc/api/bitronix/tm/timer/TransactionTimeoutTask.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.2 API)
+TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -97,6 +97,9 @@ Class TransactionTimeoutTask</H2>
   <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">bitronix.tm.timer.Task</A>
       <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.timer.TransactionTimeoutTask</B>
 </PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A><<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A>></DD>
+</DL>
 <HR>
 <DL>
 <DT><PRE>public class <B>TransactionTimeoutTask</B><DT>extends <A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A></DL>
@@ -172,7 +175,7 @@ This task is used to mark a transaction as timed-out.
 <TH ALIGN="left"><B>Methods inherited from class bitronix.tm.timer.<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../../bitronix/tm/timer/Task.html#getExecutionTime()">getExecutionTime</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getTaskScheduler()">getTaskScheduler</A>, <A HREF="../../../bitronix/tm/timer/Task.html#setExecutionTime(java.util.Date)">setExecutionTime</A></CODE></TD>
+<TD><CODE><A HREF="../../../bitronix/tm/timer/Task.html#compareTo(bitronix.tm.timer.Task)">compareTo</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getExecutionTime()">getExecutionTime</A>, <A HREF="../../../bitronix/tm/timer/Task.html#getTaskScheduler()">getTaskScheduler</A></CODE></TD>
 </TR>
 </TABLE>
  <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -320,6 +323,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/class-use/PoolShrinkingTask.html b/doc/api/bitronix/tm/timer/class-use/PoolShrinkingTask.html
index 236ca47..8e985ea 100644
--- a/doc/api/bitronix/tm/timer/class-use/PoolShrinkingTask.html
+++ b/doc/api/bitronix/tm/timer/class-use/PoolShrinkingTask.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.timer.PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.timer.PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.timer.PoolShrinkingTask (Bitronix Transaction Manager
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.timer.PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.timer.PoolShrinkingTask (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.timer.PoolShrinkingTask
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/class-use/RecoveryTask.html b/doc/api/bitronix/tm/timer/class-use/RecoveryTask.html
index aee1062..861cc60 100644
--- a/doc/api/bitronix/tm/timer/class-use/RecoveryTask.html
+++ b/doc/api/bitronix/tm/timer/class-use/RecoveryTask.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.timer.RecoveryTask (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.timer.RecoveryTask (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.timer.RecoveryTask (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.timer.RecoveryTask (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.timer.RecoveryTask (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.timer.RecoveryTask
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/class-use/Task.html b/doc/api/bitronix/tm/timer/class-use/Task.html
index 08c5039..6712e38 100644
--- a/doc/api/bitronix/tm/timer/class-use/Task.html
+++ b/doc/api/bitronix/tm/timer/class-use/Task.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.timer.Task (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.timer.Task (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.timer.Task (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.timer.Task (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.timer.Task (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -139,6 +139,22 @@ Uses of <A HREF="../../../../bitronix/tm/timer/Task.html" title="class in bitron
 </TABLE>
  
 <P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/timer/package-summary.html">bitronix.tm.timer</A> with parameters of type <A HREF="../../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B>Task.</B><B><A HREF="../../../../bitronix/tm/timer/Task.html#compareTo(bitronix.tm.timer.Task)">compareTo</A></B>(<A HREF="../../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A> otherTask)</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
 <HR>
 
 
@@ -193,6 +209,6 @@ Uses of <A HREF="../../../../bitronix/tm/timer/Task.html" title="class in bitron
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/class-use/TaskException.html b/doc/api/bitronix/tm/timer/class-use/TaskException.html
index ee8c160..2ad7326 100644
--- a/doc/api/bitronix/tm/timer/class-use/TaskException.html
+++ b/doc/api/bitronix/tm/timer/class-use/TaskException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.timer.TaskException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.timer.TaskException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.timer.TaskException (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.timer.TaskException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.timer.TaskException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -201,6 +201,6 @@ Uses of <A HREF="../../../../bitronix/tm/timer/TaskException.html" title="class
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/class-use/TaskScheduler.html b/doc/api/bitronix/tm/timer/class-use/TaskScheduler.html
index f897625..fe96a80 100644
--- a/doc/api/bitronix/tm/timer/class-use/TaskScheduler.html
+++ b/doc/api/bitronix/tm/timer/class-use/TaskScheduler.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.timer.TaskScheduler (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.timer.TaskScheduler (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.timer.TaskScheduler (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.timer.TaskScheduler (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.timer.TaskScheduler (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -246,6 +246,6 @@ Uses of <A HREF="../../../../bitronix/tm/timer/TaskScheduler.html" title="class
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/class-use/TransactionTimeoutTask.html b/doc/api/bitronix/tm/timer/class-use/TransactionTimeoutTask.html
index fc322fe..20e5a3b 100644
--- a/doc/api/bitronix/tm/timer/class-use/TransactionTimeoutTask.html
+++ b/doc/api/bitronix/tm/timer/class-use/TransactionTimeoutTask.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.timer.TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.timer.TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.timer.TransactionTimeoutTask (Bitronix Transaction Man
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.timer.TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.timer.TransactionTimeoutTask (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.timer.TransactionTimeoutTask
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/package-frame.html b/doc/api/bitronix/tm/timer/package-frame.html
index 002dd60..32e62ea 100644
--- a/doc/api/bitronix/tm/timer/package-frame.html
+++ b/doc/api/bitronix/tm/timer/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/timer/package-summary.html b/doc/api/bitronix/tm/timer/package-summary.html
index f5e317c..0576382 100644
--- a/doc/api/bitronix/tm/timer/package-summary.html
+++ b/doc/api/bitronix/tm/timer/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -201,6 +201,6 @@ Package bitronix.tm.timer Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/package-tree.html b/doc/api/bitronix/tm/timer/package-tree.html
index da35ed1..ab86a47 100644
--- a/doc/api/bitronix/tm/timer/package-tree.html
+++ b/doc/api/bitronix/tm/timer/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.timer Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.timer Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.timer Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 AP
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.timer Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.timer Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -93,7 +93,8 @@ Class Hierarchy
 </H2>
 <UL>
 <LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
-<LI TYPE="circle">bitronix.tm.timer.<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer"><B>Task</B></A><UL>
+<LI TYPE="circle">bitronix.tm.timer.<A HREF="../../../bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer"><B>Task</B></A> (implements java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A><T>)
+<UL>
 <LI TYPE="circle">bitronix.tm.timer.<A HREF="../../../bitronix/tm/timer/PoolShrinkingTask.html" title="class in bitronix.tm.timer"><B>PoolShrinkingTask</B></A><LI TYPE="circle">bitronix.tm.timer.<A HREF="../../../bitronix/tm/timer/RecoveryTask.html" title="class in bitronix.tm.timer"><B>RecoveryTask</B></A><LI TYPE="circle">bitronix.tm.timer.<A HREF="../../../bitronix/tm/timer/TransactionTimeoutTask.html" title="class in bitronix.tm.timer"><B>TransactionTimeoutTask</B></A></UL>
 <LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang"><B>Thread</B></A> (implements java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
 <UL>
@@ -160,6 +161,6 @@ Class Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/timer/package-use.html b/doc/api/bitronix/tm/timer/package-use.html
index bb74fc2..3a8ca57 100644
--- a/doc/api/bitronix/tm/timer/package-use.html
+++ b/doc/api/bitronix/tm/timer/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.2 AP
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.timer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -199,6 +199,6 @@ Classes in <A HREF="../../../bitronix/tm/timer/package-summary.html">bitronix.tm
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/AbstractPhaseEngine.html b/doc/api/bitronix/tm/twopc/AbstractPhaseEngine.html
index 1fad914..43643a1 100644
--- a/doc/api/bitronix/tm/twopc/AbstractPhaseEngine.html
+++ b/doc/api/bitronix/tm/twopc/AbstractPhaseEngine.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.2 API)
+AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -145,17 +145,17 @@ Abstract phase execution engine.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html#collectNotInterestedResources(java.util.List, java.util.List)">collectNotInterestedResources</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> allResources,
-                              <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)</CODE>
+<CODE>protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html#collectNotInterestedResources(java.util.List, java.util.List)">collectNotInterestedResources</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> allResources,
+                              <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html#collectResourcesUniqueNames(java.util.List)">collectResourcesUniqueNames</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> resources)</CODE>
+<CODE>protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html#collectResourcesUniqueNames(java.util.List)">collectResourcesUniqueNames</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> resources)</CODE>
 
 <BR>
            </TD>
@@ -249,9 +249,7 @@ protected void <B>executePhase</B>(<A HREF="../../../bitronix/tm/internal/XAReso
 <DT><B>Parameters:</B><DD><CODE>resourceManager</CODE> - the <A HREF="../../../bitronix/tm/internal/XAResourceManager.html" title="class in bitronix.tm.internal"><CODE>XAResourceManager</CODE></A> containing the enlisted resources to execute the phase on.<DD><CODE>reverse</CODE> - true if jobs should be executed in reverse position / enlistment order, false for natural position / enlistment order.
 <DT><B>Throws:</B>
 <DD><CODE><A HREF="../../../bitronix/tm/twopc/PhaseException.html" title="class in bitronix.tm.twopc">PhaseException</A></CODE> - if one or more resource threw an exception during phase execution.<DT><B>See Also:</B><DD><A HREF="../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor"><CODE>SyncExecutor</CODE></A>, 
-<A HREF="../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><CODE>SimpleAsyncExecutor</CODE></A>, 
-<A HREF="../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><CODE>ConcurrentExecutor</CODE></A>, 
-<A HREF="../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><CODE>BackportConcurrentExecutor</CODE></A></DL>
+<A HREF="../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><CODE>AsyncExecutor</CODE></A></DL>
 </DD>
 </DL>
 <HR>
@@ -301,7 +299,7 @@ protected void <B>logFailedResources</B>(<A HREF="../../../bitronix/tm/twopc/Pha
 <A NAME="collectResourcesUniqueNames(java.util.List)"><!-- --></A><H3>
 collectResourcesUniqueNames</H3>
 <PRE>
-protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> <B>collectResourcesUniqueNames</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> resources)</PRE>
+protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> <B>collectResourcesUniqueNames</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bi [...]
 <DL>
 <DD><DL>
 </DL>
@@ -312,8 +310,8 @@ protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.
 <A NAME="collectNotInterestedResources(java.util.List, java.util.List)"><!-- --></A><H3>
 collectNotInterestedResources</H3>
 <PRE>
-protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>collectNotInterestedResources</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> allResources,
-                                                    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)</PRE>
+protected static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> <B>collectNotInterestedResources</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitroni [...]
+                                                                           <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</PRE>
 <DL>
 <DD><DL>
 </DL>
@@ -380,6 +378,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/Committer.html b/doc/api/bitronix/tm/twopc/Committer.html
index d92a34b..cb7bb84 100644
--- a/doc/api/bitronix/tm/twopc/Committer.html
+++ b/doc/api/bitronix/tm/twopc/Committer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Committer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Committer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Committer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Committer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Committer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -99,7 +99,7 @@ Class Committer</H2>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>Committer</B><DT>extends <A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A></DL>
+<DT><PRE>public final class <B>Committer</B><DT>extends <A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A></DL>
 </PRE>
 
 <P>
@@ -143,7 +143,7 @@ Phase 2 Commit logic engine.
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/twopc/Committer.html#commit(bitronix.tm.BitronixTransaction, java.util.List)">commit</A></B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
-       <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)</CODE>
+       <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
 
 <BR>
           Execute phase 2 commit.</TD>
@@ -217,10 +217,11 @@ public <B>Committer</B>(<A HREF="../../../bitronix/tm/twopc/executor/Executor.ht
 commit</H3>
 <PRE>
 public void <B>commit</B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
-                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)
+                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)
             throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/HeuristicMixedException.html?is-external=true" title="class or interface in javax.transaction">HeuristicMixedException</A>,
                    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/HeuristicRollbackException.html?is-external=true" title="class or interface in javax.transaction">HeuristicRollbackException</A>,
-                   <A HREF="../../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal">BitronixSystemException</A></PRE>
+                   <A HREF="../../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal">BitronixSystemException</A>,
+                   <A HREF="../../../bitronix/tm/internal/BitronixRollbackException.html" title="class in bitronix.tm.internal">BitronixRollbackException</A></PRE>
 <DL>
 <DD>Execute phase 2 commit.
 <P>
@@ -229,7 +230,8 @@ public void <B>commit</B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html
 <DT><B>Throws:</B>
 <DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/HeuristicRollbackException.html?is-external=true" title="class or interface in javax.transaction">HeuristicRollbackException</A></CODE> - when all resources committed instead.
 <DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/HeuristicMixedException.html?is-external=true" title="class or interface in javax.transaction">HeuristicMixedException</A></CODE> - when some resources committed and some rolled back.
-<DD><CODE><A HREF="../../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal">BitronixSystemException</A></CODE> - when an internal error occured.</DL>
+<DD><CODE><A HREF="../../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal">BitronixSystemException</A></CODE> - when an internal error occured.
+<DD><CODE><A HREF="../../../bitronix/tm/internal/BitronixRollbackException.html" title="class in bitronix.tm.internal">BitronixRollbackException</A></CODE> - during 1PC when resource fails to commit</DL>
 </DD>
 </DL>
 <HR>
@@ -330,6 +332,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/PhaseException.html b/doc/api/bitronix/tm/twopc/PhaseException.html
index 961846c..0624f28 100644
--- a/doc/api/bitronix/tm/twopc/PhaseException.html
+++ b/doc/api/bitronix/tm/twopc/PhaseException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PhaseException (Bitronix Transaction Manager :: Core 2.1.2 API)
+PhaseException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PhaseException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PhaseException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PhaseException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -128,8 +128,8 @@ Thrown when a phase exection has thrown one or more exception(s).
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../bitronix/tm/twopc/PhaseException.html#PhaseException(java.util.List, java.util.List)">PhaseException</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> exceptions,
-               <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> resourceStates)</CODE>
+<TD><CODE><B><A HREF="../../../bitronix/tm/twopc/PhaseException.html#PhaseException(java.util.List, java.util.List)">PhaseException</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>> exceptions,
+               <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> resourceStates)</CODE>
 
 <BR>
            </TD>
@@ -146,7 +146,7 @@ Thrown when a phase exection has thrown one or more exception(s).
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/twopc/PhaseException.html#getExceptions()">getExceptions</A></B>()</CODE>
 
 <BR>
@@ -162,7 +162,7 @@ Thrown when a phase exection has thrown one or more exception(s).
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/twopc/PhaseException.html#getResourceStates()">getResourceStates</A></B>()</CODE>
 
 <BR>
@@ -203,8 +203,8 @@ Thrown when a phase exection has thrown one or more exception(s).
 <A NAME="PhaseException(java.util.List, java.util.List)"><!-- --></A><H3>
 PhaseException</H3>
 <PRE>
-public <B>PhaseException</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> exceptions,
-                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> resourceStates)</PRE>
+public <B>PhaseException</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>> exceptions,
+                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> resourceStates)</PRE>
 <DL>
 </DL>
 
@@ -235,7 +235,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is
 <A NAME="getExceptions()"><!-- --></A><H3>
 getExceptions</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getExceptions</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A>> <B>getExceptions</B>()</PRE>
 <DL>
 <DD>Get the list of exceptions that have been thrown during a phase execution.
 <P>
@@ -249,7 +249,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-e
 <A NAME="getResourceStates()"><!-- --></A><H3>
 getResourceStates</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getResourceStates</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> <B>getResourceStates</B>()</PRE>
 <DL>
 <DD>Get the list of resource which threw an exception during a phase execution.
  This list always contains exactly one resource per exception present in <A HREF="../../../bitronix/tm/twopc/PhaseException.html#getExceptions()"><CODE>getExceptions()</CODE></A> list.
@@ -321,6 +321,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/Preparer.html b/doc/api/bitronix/tm/twopc/Preparer.html
index 43b4115..b1af688 100644
--- a/doc/api/bitronix/tm/twopc/Preparer.html
+++ b/doc/api/bitronix/tm/twopc/Preparer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Preparer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Preparer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Preparer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Preparer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Preparer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -99,7 +99,7 @@ Class Preparer</H2>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>Preparer</B><DT>extends <A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A></DL>
+<DT><PRE>public final class <B>Preparer</B><DT>extends <A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A></DL>
 </PRE>
 
 <P>
@@ -157,7 +157,7 @@ Phase 1 Prepare logic engine.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/twopc/Preparer.html#prepare(bitronix.tm.BitronixTransaction)">prepare</A></B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction)</CODE>
 
 <BR>
@@ -215,9 +215,9 @@ public <B>Preparer</B>(<A HREF="../../../bitronix/tm/twopc/executor/Executor.htm
 <A NAME="prepare(bitronix.tm.BitronixTransaction)"><!-- --></A><H3>
 prepare</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>prepare</B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction)
-             throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/RollbackException.html?is-external=true" title="class or interface in javax.transaction">RollbackException</A>,
-                    <A HREF="../../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal">BitronixSystemException</A></PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> <B>prepare</B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction)
+                                    throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/RollbackException.html?is-external=true" title="class or interface in javax.transaction">RollbackException</A>,
+                                           <A HREF="../../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal">BitronixSystemException</A></PRE>
 <DL>
 <DD>Execute phase 1 prepare.
 <P>
@@ -328,6 +328,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/Rollbacker.html b/doc/api/bitronix/tm/twopc/Rollbacker.html
index e77e8c6..42cce59 100644
--- a/doc/api/bitronix/tm/twopc/Rollbacker.html
+++ b/doc/api/bitronix/tm/twopc/Rollbacker.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Rollbacker (Bitronix Transaction Manager :: Core 2.1.2 API)
+Rollbacker (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Rollbacker (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Rollbacker (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Rollbacker (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -99,7 +99,7 @@ Class Rollbacker</H2>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>Rollbacker</B><DT>extends <A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A></DL>
+<DT><PRE>public final class <B>Rollbacker</B><DT>extends <A HREF="../../../bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A></DL>
 </PRE>
 
 <P>
@@ -159,7 +159,7 @@ Phase 1 & 2 Rollback logic engine.
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/twopc/Rollbacker.html#rollback(bitronix.tm.BitronixTransaction, java.util.List)">rollback</A></B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
-         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)</CODE>
+         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)</CODE>
 
 <BR>
           Rollback the current XA transaction.</TD>
@@ -217,14 +217,13 @@ public <B>Rollbacker</B>(<A HREF="../../../bitronix/tm/twopc/executor/Executor.h
 rollback</H3>
 <PRE>
 public void <B>rollback</B>(<A HREF="../../../bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A> transaction,
-                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> interestedResources)
+                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> interestedResources)
               throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/HeuristicMixedException.html?is-external=true" title="class or interface in javax.transaction">HeuristicMixedException</A>,
                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/HeuristicCommitException.html?is-external=true" title="class or interface in javax.transaction">HeuristicCommitException</A>,
                      <A HREF="../../../bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal">BitronixSystemException</A></PRE>
 <DL>
-<DD>Rollback the current XA transaction. <A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><CODE>TransactionTimeoutException</CODE></A> won't be thrown
- while changing status but rather by some extra logic that will manually throw the exception after doing as much
- cleanup as possible.
+<DD>Rollback the current XA transaction. Transaction will not timeout while changing status but rather by some
+ extra logic that will manually throw the exception after doing as much cleanup as possible.
 <P>
 <DD><DL>
 <DT><B>Parameters:</B><DD><CODE>transaction</CODE> - the transaction to rollback.<DD><CODE>interestedResources</CODE> - resources that should be rolled back.
@@ -332,6 +331,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/class-use/AbstractPhaseEngine.html b/doc/api/bitronix/tm/twopc/class-use/AbstractPhaseEngine.html
index a5c3ea4..b548a5e 100644
--- a/doc/api/bitronix/tm/twopc/class-use/AbstractPhaseEngine.html
+++ b/doc/api/bitronix/tm/twopc/class-use/AbstractPhaseEngine.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.twopc.AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.AbstractPhaseEngine (Bitronix Transaction Manage
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.twopc.AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -193,6 +193,6 @@ Uses of <A HREF="../../../../bitronix/tm/twopc/AbstractPhaseEngine.html" title="
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/class-use/Committer.html b/doc/api/bitronix/tm/twopc/class-use/Committer.html
index 4974308..81cff0e 100644
--- a/doc/api/bitronix/tm/twopc/class-use/Committer.html
+++ b/doc/api/bitronix/tm/twopc/class-use/Committer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.Committer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.twopc.Committer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.Committer (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.Committer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.twopc.Committer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.twopc.Committer
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/class-use/PhaseException.html b/doc/api/bitronix/tm/twopc/class-use/PhaseException.html
index a461d19..865371c 100644
--- a/doc/api/bitronix/tm/twopc/class-use/PhaseException.html
+++ b/doc/api/bitronix/tm/twopc/class-use/PhaseException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.PhaseException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.twopc.PhaseException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.PhaseException (Bitronix Transaction Manager ::
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.PhaseException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.twopc.PhaseException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -194,6 +194,6 @@ Uses of <A HREF="../../../../bitronix/tm/twopc/PhaseException.html" title="class
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/class-use/Preparer.html b/doc/api/bitronix/tm/twopc/class-use/Preparer.html
index 6d374c4..d0f1a34 100644
--- a/doc/api/bitronix/tm/twopc/class-use/Preparer.html
+++ b/doc/api/bitronix/tm/twopc/class-use/Preparer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.Preparer (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.twopc.Preparer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.Preparer (Bitronix Transaction Manager :: Core 2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.Preparer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.twopc.Preparer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.twopc.Preparer
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/class-use/Rollbacker.html b/doc/api/bitronix/tm/twopc/class-use/Rollbacker.html
index f125cc8..01244fb 100644
--- a/doc/api/bitronix/tm/twopc/class-use/Rollbacker.html
+++ b/doc/api/bitronix/tm/twopc/class-use/Rollbacker.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.Rollbacker (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.twopc.Rollbacker (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.Rollbacker (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.Rollbacker (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.twopc.Rollbacker (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.twopc.Rollbacker
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/SimpleAsyncExecutor.html b/doc/api/bitronix/tm/twopc/executor/AsyncExecutor.html
similarity index 77%
rename from doc/api/bitronix/tm/twopc/executor/SimpleAsyncExecutor.html
rename to doc/api/bitronix/tm/twopc/executor/AsyncExecutor.html
index f850561..6f91365 100644
--- a/doc/api/bitronix/tm/twopc/executor/SimpleAsyncExecutor.html
+++ b/doc/api/bitronix/tm/twopc/executor/AsyncExecutor.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-SimpleAsyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
+AsyncExecutor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ SimpleAsyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="SimpleAsyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="AsyncExecutor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -41,7 +41,7 @@ function windowTitle()
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/SimpleAsyncExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AsyncExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -56,11 +56,11 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
+ PREV CLASS 
+ <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="SimpleAsyncExecutor.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/twopc/executor/AsyncExecutor.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="AsyncExecutor.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -91,21 +91,21 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <FONT SIZE="-1">
 bitronix.tm.twopc.executor</FONT>
 <BR>
-Class SimpleAsyncExecutor</H2>
+Class AsyncExecutor</H2>
 <PRE>
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.twopc.executor.SimpleAsyncExecutor</B>
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.twopc.executor.AsyncExecutor</B>
 </PRE>
 <DL>
 <DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>, <A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DD>
 </DL>
 <HR>
 <DL>
-<DT><PRE>public class <B>SimpleAsyncExecutor</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></DL>
+<DT><PRE>public class <B>AsyncExecutor</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></DL>
 </PRE>
 
 <P>
-This implementation spawns a new thread per request.
+This implementation executes submitted jobs using a <code>java.util.concurrent</code> cached thread pool.
 <P>
 
 <P>
@@ -126,7 +126,7 @@ This implementation spawns a new thread per request.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#SimpleAsyncExecutor()">SimpleAsyncExecutor</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html#AsyncExecutor()">AsyncExecutor</A></B>()</CODE>
 
 <BR>
            </TD>
@@ -144,23 +144,15 @@ This implementation spawns a new thread per request.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#isDone(java.lang.Object)">isDone</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> future)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html#isDone(java.lang.Object)">isDone</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> future)</CODE>
 
 <BR>
           Check if the thread pool has terminated the execution of the job represented by a future.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#isUsable()">isUsable</A></B>()</CODE>
-
-<BR>
-          Check if the thread pool can be used.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#shutdown()">shutdown</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html#shutdown()">shutdown</A></B>()</CODE>
 
 <BR>
           Shutdown the thead pool.</TD>
@@ -168,7 +160,7 @@ This implementation spawns a new thread per request.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A></B>(<A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A> job)</CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A></B>(<A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A> job)</CODE>
 
 <BR>
           Submit a job to be executed by the thread pool.</TD>
@@ -176,7 +168,7 @@ This implementation spawns a new thread per request.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#waitFor(java.lang.Object, long)">waitFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> future,
+<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html#waitFor(java.lang.Object, long)">waitFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> future,
         long timeout)</CODE>
 
 <BR>
@@ -205,10 +197,10 @@ This implementation spawns a new thread per request.
 </TR>
 </TABLE>
 
-<A NAME="SimpleAsyncExecutor()"><!-- --></A><H3>
-SimpleAsyncExecutor</H3>
+<A NAME="AsyncExecutor()"><!-- --></A><H3>
+AsyncExecutor</H3>
 <PRE>
-public <B>SimpleAsyncExecutor</B>()</PRE>
+public <B>AsyncExecutor</B>()</PRE>
 <DL>
 </DL>
 
@@ -277,25 +269,6 @@ public boolean <B>isDone</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/ja
 </DL>
 <HR>
 
-<A NAME="isUsable()"><!-- --></A><H3>
-isUsable</H3>
-<PRE>
-public boolean <B>isUsable</B>()</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isUsable()">Executor</A></CODE></B></DD>
-<DD>Check if the thread pool can be used. The thread pool migh rely on an underlying implementation that may not be
- available. All other methods will throw a <A HREF="../../../../bitronix/tm/internal/BitronixRuntimeException.html" title="class in bitronix.tm.internal"><CODE>BitronixRuntimeException</CODE></A> when called if this method returns false.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isUsable()">isUsable</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>true if the <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><CODE>Executor</CODE></A> can be used, false otherwise.</DL>
-</DD>
-</DL>
-<HR>
-
 <A NAME="shutdown()"><!-- --></A><H3>
 shutdown</H3>
 <PRE>
@@ -327,7 +300,7 @@ public void <B>shutdown</B>()</PRE>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/SimpleAsyncExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AsyncExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -342,11 +315,11 @@ public void <B>shutdown</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
+ PREV CLASS 
+ <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="SimpleAsyncExecutor.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/twopc/executor/AsyncExecutor.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="AsyncExecutor.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -372,6 +345,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/BackportConcurrentExecutor.html b/doc/api/bitronix/tm/twopc/executor/BackportConcurrentExecutor.html
deleted file mode 100644
index 7e32b51..0000000
--- a/doc/api/bitronix/tm/twopc/executor/BackportConcurrentExecutor.html
+++ /dev/null
@@ -1,247 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>
-BackportConcurrentExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
-</TITLE>
-
-<META NAME="date" CONTENT="2011-10-30">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="BackportConcurrentExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)";
-    }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/BackportConcurrentExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV CLASS 
- <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="BackportConcurrentExecutor.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_bitronix.tm.twopc.executor.ConcurrentExecutor">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-bitronix.tm.twopc.executor</FONT>
-<BR>
-Class BackportConcurrentExecutor</H2>
-<PRE>
-<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">bitronix.tm.twopc.executor.ConcurrentExecutor</A>
-      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.twopc.executor.BackportConcurrentExecutor</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>, <A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public class <B>BackportConcurrentExecutor</B><DT>extends <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A></DL>
-</PRE>
-
-<P>
-Abstraction of the <code>java.util.concurrent</code>
- <a href="http://www.dcl.mathcs.emory.edu/util/backport-util-concurrent/">backport</a> implementation.
-<P>
-
-<P>
-<DL>
-<DT><B>Author:</B></DT>
-  <DD>lorban</DD>
-</DL>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html#BackportConcurrentExecutor()">BackportConcurrentExecutor</A></B>()</CODE>
-
-<BR>
-           </TD>
-</TR>
-</TABLE>
- 
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_bitronix.tm.twopc.executor.ConcurrentExecutor"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A></B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#isDone(java.lang.Object)">isDone</A>, <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#isUsable()">isUsable</A>, <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#shutdown()">shutdown</A>, <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A>, <A HREF="../../../../bitronix/tm/twopc/executor/Conc [...]
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http: [...]
-</TR>
-</TABLE>
- 
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="BackportConcurrentExecutor()"><!-- --></A><H3>
-BackportConcurrentExecutor</H3>
-<PRE>
-public <B>BackportConcurrentExecutor</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/BackportConcurrentExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV CLASS 
- <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="BackportConcurrentExecutor.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_bitronix.tm.twopc.executor.ConcurrentExecutor">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
-</BODY>
-</HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/ConcurrentExecutor.html b/doc/api/bitronix/tm/twopc/executor/ConcurrentExecutor.html
deleted file mode 100644
index 64d192d..0000000
--- a/doc/api/bitronix/tm/twopc/executor/ConcurrentExecutor.html
+++ /dev/null
@@ -1,398 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>
-ConcurrentExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
-</TITLE>
-
-<META NAME="date" CONTENT="2011-10-30">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ConcurrentExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)";
-    }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ConcurrentExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/twopc/executor/ConcurrentExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="ConcurrentExecutor.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-bitronix.tm.twopc.executor</FONT>
-<BR>
-Class ConcurrentExecutor</H2>
-<PRE>
-<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.twopc.executor.ConcurrentExecutor</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>, <A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DD>
-</DL>
-<DL>
-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public class <B>ConcurrentExecutor</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></DL>
-</PRE>
-
-<P>
-Abstraction of the <code>java.util.concurrent</code> JDK 1.5+ implementation.
-<P>
-
-<P>
-<DL>
-<DT><B>Author:</B></DT>
-  <DD>lorban</DD>
-</DL>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> </CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#ConcurrentExecutor()">ConcurrentExecutor</A></B>()</CODE>
-
-<BR>
-           </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected </CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#ConcurrentExecutor(java.lang.String[])">ConcurrentExecutor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] implementations)</CODE>
-
-<BR>
-           </TD>
-</TR>
-</TABLE>
- 
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#isDone(java.lang.Object)">isDone</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> future)</CODE>
-
-<BR>
-          Check if the thread pool has terminated the execution of the job represented by a future.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#isUsable()">isUsable</A></B>()</CODE>
-
-<BR>
-          Check if the thread pool can be used.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#shutdown()">shutdown</A></B>()</CODE>
-
-<BR>
-          Shutdown the thead pool.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A></B>(<A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A> job)</CODE>
-
-<BR>
-          Submit a job to be executed by the thread pool.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#waitFor(java.lang.Object, long)">waitFor</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> future,
-        long timeout)</CODE>
-
-<BR>
-          Wait for the job represented by the future to terminate.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http: [...]
-</TR>
-</TABLE>
- 
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="ConcurrentExecutor()"><!-- --></A><H3>
-ConcurrentExecutor</H3>
-<PRE>
-public <B>ConcurrentExecutor</B>()</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="ConcurrentExecutor(java.lang.String[])"><!-- --></A><H3>
-ConcurrentExecutor</H3>
-<PRE>
-protected <B>ConcurrentExecutor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] implementations)</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="submit(bitronix.tm.twopc.executor.Job)"><!-- --></A><H3>
-submit</H3>
-<PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>submit</B>(<A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A> job)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#submit(bitronix.tm.twopc.executor.Job)">Executor</A></CODE></B></DD>
-<DD>Submit a job to be executed by the thread pool.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></CODE></DL>
-</DD>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>job</CODE> - the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><CODE>Runnable</CODE></A> to execute.
-<DT><B>Returns:</B><DD>an object used to monitor the execution of the submitted <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><CODE>Runnable</CODE></A>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="waitFor(java.lang.Object, long)"><!-- --></A><H3>
-waitFor</H3>
-<PRE>
-public void <B>waitFor</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> future,
-                    long timeout)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#waitFor(java.lang.Object, long)">Executor</A></CODE></B></DD>
-<DD>Wait for the job represented by the future to terminate. The call to this method will block until the job
- finished its execution or the specified timeout elapsed.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#waitFor(java.lang.Object, long)">waitFor</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></CODE></DL>
-</DD>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>future</CODE> - the future representing the job as returned by <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#submit(bitronix.tm.twopc.executor.Job)"><CODE>Executor.submit(bitronix.tm.twopc.executor.Job)</CODE></A>.<DD><CODE>timeout</CODE> - if the job did not finish during the specified timeout in milliseconds, this method returns anyway.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isDone(java.lang.Object)"><!-- --></A><H3>
-isDone</H3>
-<PRE>
-public boolean <B>isDone</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> future)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isDone(java.lang.Object)">Executor</A></CODE></B></DD>
-<DD>Check if the thread pool has terminated the execution of the job represented by a future.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isDone(java.lang.Object)">isDone</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></CODE></DL>
-</DD>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>future</CODE> - the future representing the job as returned by <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#submit(bitronix.tm.twopc.executor.Job)"><CODE>Executor.submit(bitronix.tm.twopc.executor.Job)</CODE></A>.
-<DT><B>Returns:</B><DD>true if the job is done, false otherwise.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isUsable()"><!-- --></A><H3>
-isUsable</H3>
-<PRE>
-public boolean <B>isUsable</B>()</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isUsable()">Executor</A></CODE></B></DD>
-<DD>Check if the thread pool can be used. The thread pool migh rely on an underlying implementation that may not be
- available. All other methods will throw a <A HREF="../../../../bitronix/tm/internal/BitronixRuntimeException.html" title="class in bitronix.tm.internal"><CODE>BitronixRuntimeException</CODE></A> when called if this method returns false.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isUsable()">isUsable</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>true if the <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><CODE>Executor</CODE></A> can be used, false otherwise.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="shutdown()"><!-- --></A><H3>
-shutdown</H3>
-<PRE>
-public void <B>shutdown</B>()</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#shutdown()">Executor</A></CODE></B></DD>
-<DD>Shutdown the thead pool.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#shutdown()">shutdown</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/utils/Service.html#shutdown()">shutdown</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in bitro [...]
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ConcurrentExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/twopc/executor/ConcurrentExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="ConcurrentExecutor.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
-</BODY>
-</HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/Executor.html b/doc/api/bitronix/tm/twopc/executor/Executor.html
index dbfe854..5cbc763 100644
--- a/doc/api/bitronix/tm/twopc/executor/Executor.html
+++ b/doc/api/bitronix/tm/twopc/executor/Executor.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Executor (Bitronix Transaction Manager :: Core 2.1.2 API)
+Executor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Executor (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Executor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Executor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -56,7 +56,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
+ <A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
  <A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/twopc/executor/Executor.html" target="_top"><B>FRAMES</B></A>   
@@ -96,7 +96,7 @@ Interface Executor</H2>
 <DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DD>
 </DL>
 <DL>
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A>, <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>, <A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A>, <A H [...]
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A>, <A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A></DD>
 </DL>
 <HR>
 <DL>
@@ -134,14 +134,6 @@ Thread pool interface required by the two-phase commit logic.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isUsable()">isUsable</A></B>()</CODE>
-
-<BR>
-          Check if the thread pool can be used.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#shutdown()">shutdown</A></B>()</CODE>
 
@@ -231,24 +223,6 @@ boolean <B>isDone</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang
 </DL>
 <HR>
 
-<A NAME="isUsable()"><!-- --></A><H3>
-isUsable</H3>
-<PRE>
-boolean <B>isUsable</B>()</PRE>
-<DL>
-<DD>Check if the thread pool can be used. The thread pool migh rely on an underlying implementation that may not be
- available. All other methods will throw a <A HREF="../../../../bitronix/tm/internal/BitronixRuntimeException.html" title="class in bitronix.tm.internal"><CODE>BitronixRuntimeException</CODE></A> when called if this method returns false.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>true if the <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><CODE>Executor</CODE></A> can be used, false otherwise.</DL>
-</DD>
-</DL>
-<HR>
-
 <A NAME="shutdown()"><!-- --></A><H3>
 shutdown</H3>
 <PRE>
@@ -294,7 +268,7 @@ void <B>shutdown</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
+ <A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
  <A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/twopc/executor/Executor.html" target="_top"><B>FRAMES</B></A>   
@@ -324,6 +298,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/Job.html b/doc/api/bitronix/tm/twopc/executor/Job.html
index bdce3eb..03b81da 100644
--- a/doc/api/bitronix/tm/twopc/executor/Job.html
+++ b/doc/api/bitronix/tm/twopc/executor/Job.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Job (Bitronix Transaction Manager :: Core 2.1.2 API)
+Job (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Job (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Job (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Job (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -57,7 +57,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/twopc/executor/Job.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="Job.html" target="_top"><B>NO FRAMES</B></A>   
@@ -248,7 +248,7 @@ Abstract job definition executable by the 2PC thread pools.
 <A NAME="xaException"><!-- --></A><H3>
 xaException</H3>
 <PRE>
-protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa">XAException</A> <B>xaException</B></PRE>
+protected volatile <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa">XAException</A> <B>xaException</B></PRE>
 <DL>
 <DL>
 </DL>
@@ -258,7 +258,7 @@ protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/
 <A NAME="runtimeException"><!-- --></A><H3>
 runtimeException</H3>
 <PRE>
-protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</A> <B>runtimeException</B></PRE>
+protected volatile <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</A> <B>runtimeException</B></PRE>
 <DL>
 <DL>
 </DL>
@@ -419,7 +419,7 @@ protected abstract void <B>execute</B>()</PRE>
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
- <A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/twopc/executor/Job.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="Job.html" target="_top"><B>NO FRAMES</B></A>   
@@ -448,6 +448,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/SyncExecutor.html b/doc/api/bitronix/tm/twopc/executor/SyncExecutor.html
index 8a22367..db1bb8a 100644
--- a/doc/api/bitronix/tm/twopc/executor/SyncExecutor.html
+++ b/doc/api/bitronix/tm/twopc/executor/SyncExecutor.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-SyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
+SyncExecutor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ SyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="SyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="SyncExecutor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -56,7 +56,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
+ <A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
  NEXT CLASS</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/twopc/executor/SyncExecutor.html" target="_top"><B>FRAMES</B></A>   
@@ -151,14 +151,6 @@ This implementation executes submitted jobs synchronously.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html#isUsable()">isUsable</A></B>()</CODE>
-
-<BR>
-          Check if the thread pool can be used.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html#shutdown()">shutdown</A></B>()</CODE>
 
@@ -277,25 +269,6 @@ public boolean <B>isDone</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/ja
 </DL>
 <HR>
 
-<A NAME="isUsable()"><!-- --></A><H3>
-isUsable</H3>
-<PRE>
-public boolean <B>isUsable</B>()</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isUsable()">Executor</A></CODE></B></DD>
-<DD>Check if the thread pool can be used. The thread pool migh rely on an underlying implementation that may not be
- available. All other methods will throw a <A HREF="../../../../bitronix/tm/internal/BitronixRuntimeException.html" title="class in bitronix.tm.internal"><CODE>BitronixRuntimeException</CODE></A> when called if this method returns false.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html#isUsable()">isUsable</A></CODE> in interface <CODE><A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>true if the <A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><CODE>Executor</CODE></A> can be used, false otherwise.</DL>
-</DD>
-</DL>
-<HR>
-
 <A NAME="shutdown()"><!-- --></A><H3>
 shutdown</H3>
 <PRE>
@@ -342,7 +315,7 @@ public void <B>shutdown</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
+ <A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor"><B>PREV CLASS</B></A> 
  NEXT CLASS</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../../index.html?bitronix/tm/twopc/executor/SyncExecutor.html" target="_top"><B>FRAMES</B></A>   
@@ -372,6 +345,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/class-use/SimpleAsyncExecutor.html b/doc/api/bitronix/tm/twopc/executor/class-use/AsyncExecutor.html
similarity index 81%
rename from doc/api/bitronix/tm/twopc/executor/class-use/SimpleAsyncExecutor.html
rename to doc/api/bitronix/tm/twopc/executor/class-use/AsyncExecutor.html
index eb5004a..6bd1b78 100644
--- a/doc/api/bitronix/tm/twopc/executor/class-use/SimpleAsyncExecutor.html
+++ b/doc/api/bitronix/tm/twopc/executor/class-use/AsyncExecutor.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.executor.SimpleAsyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.twopc.executor.AsyncExecutor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.executor.SimpleAsyncExecutor (Bitronix Transacti
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.executor.SimpleAsyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.twopc.executor.AsyncExecutor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -40,7 +40,7 @@ function windowTitle()
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -59,8 +59,8 @@ function windowTitle()
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../../index.html?bitronix/tm/twopc/executor//class-useSimpleAsyncExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="SimpleAsyncExecutor.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../../index.html?bitronix/tm/twopc/executor//class-useAsyncExecutor.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="AsyncExecutor.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -82,9 +82,9 @@ function windowTitle()
 <HR>
 <CENTER>
 <H2>
-<B>Uses of Class<br>bitronix.tm.twopc.executor.SimpleAsyncExecutor</B></H2>
+<B>Uses of Class<br>bitronix.tm.twopc.executor.AsyncExecutor</B></H2>
 </CENTER>
-No usage of bitronix.tm.twopc.executor.SimpleAsyncExecutor
+No usage of bitronix.tm.twopc.executor.AsyncExecutor
 <P>
 <HR>
 
@@ -100,7 +100,7 @@ No usage of bitronix.tm.twopc.executor.SimpleAsyncExecutor
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -119,8 +119,8 @@ No usage of bitronix.tm.twopc.executor.SimpleAsyncExecutor
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../../index.html?bitronix/tm/twopc/executor//class-useSimpleAsyncExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="SimpleAsyncExecutor.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../../index.html?bitronix/tm/twopc/executor//class-useAsyncExecutor.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="AsyncExecutor.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -140,6 +140,6 @@ No usage of bitronix.tm.twopc.executor.SimpleAsyncExecutor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/class-use/BackportConcurrentExecutor.html b/doc/api/bitronix/tm/twopc/executor/class-use/BackportConcurrentExecutor.html
deleted file mode 100644
index 4d20c3d..0000000
--- a/doc/api/bitronix/tm/twopc/executor/class-use/BackportConcurrentExecutor.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>
-Uses of Class bitronix.tm.twopc.executor.BackportConcurrentExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
-</TITLE>
-
-<META NAME="date" CONTENT="2011-10-30">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.executor.BackportConcurrentExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)";
-    }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../../index.html?bitronix/tm/twopc/executor//class-useBackportConcurrentExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="BackportConcurrentExecutor.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>bitronix.tm.twopc.executor.BackportConcurrentExecutor</B></H2>
-</CENTER>
-No usage of bitronix.tm.twopc.executor.BackportConcurrentExecutor
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../../index.html?bitronix/tm/twopc/executor//class-useBackportConcurrentExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="BackportConcurrentExecutor.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
-</BODY>
-</HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/class-use/ConcurrentExecutor.html b/doc/api/bitronix/tm/twopc/executor/class-use/ConcurrentExecutor.html
deleted file mode 100644
index d80f9b2..0000000
--- a/doc/api/bitronix/tm/twopc/executor/class-use/ConcurrentExecutor.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>
-Uses of Class bitronix.tm.twopc.executor.ConcurrentExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
-</TITLE>
-
-<META NAME="date" CONTENT="2011-10-30">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.executor.ConcurrentExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)";
-    }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../../index.html?bitronix/tm/twopc/executor//class-useConcurrentExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="ConcurrentExecutor.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>bitronix.tm.twopc.executor.ConcurrentExecutor</B></H2>
-</CENTER>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#bitronix.tm.twopc.executor"><B>bitronix.tm.twopc.executor</B></A></TD>
-<TD>
-        Two-phase commit commands executors. </TD>
-</TR>
-</TABLE>
- 
-<P>
-<A NAME="bitronix.tm.twopc.executor"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Uses of <A HREF="../../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A> in <A HREF="../../../../../bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A></FONT></TH>
-</TR>
-</TABLE>
- 
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A> in <A HREF="../../../../../bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A></B></CODE>
-
-<BR>
-          Abstraction of the <code>java.util.concurrent</code>
- <a href="http://www.dcl.mathcs.emory.edu/util/backport-util-concurrent/">backport</a> implementation.</TD>
-</TR>
-</TABLE>
- 
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV 
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../../index.html?bitronix/tm/twopc/executor//class-useConcurrentExecutor.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="ConcurrentExecutor.html" target="_top"><B>NO FRAMES</B></A>   
- <SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
-</BODY>
-</HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/class-use/Executor.html b/doc/api/bitronix/tm/twopc/executor/class-use/Executor.html
index 3d64fa9..9be1014 100644
--- a/doc/api/bitronix/tm/twopc/executor/class-use/Executor.html
+++ b/doc/api/bitronix/tm/twopc/executor/class-use/Executor.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.twopc.executor.Executor (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.twopc.executor.Executor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.twopc.executor.Executor (Bitronix Transaction Mana
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.twopc.executor.Executor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.twopc.executor.Executor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -191,27 +191,10 @@ Uses of <A HREF="../../../../../bitronix/tm/twopc/executor/Executor.html" title=
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A></B></CODE>
+<TD><CODE><B><A HREF="../../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A></B></CODE>
 
 <BR>
-          Abstraction of the <code>java.util.concurrent</code>
- <a href="http://www.dcl.mathcs.emory.edu/util/backport-util-concurrent/">backport</a> implementation.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A></B></CODE>
-
-<BR>
-          Abstraction of the <code>java.util.concurrent</code> JDK 1.5+ implementation.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A></B></CODE>
-
-<BR>
-          This implementation spawns a new thread per request.</TD>
+          This implementation executes submitted jobs using a <code>java.util.concurrent</code> cached thread pool.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -278,6 +261,6 @@ Uses of <A HREF="../../../../../bitronix/tm/twopc/executor/Executor.html" title=
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/class-use/Job.html b/doc/api/bitronix/tm/twopc/executor/class-use/Job.html
index 780e919..8383069 100644
--- a/doc/api/bitronix/tm/twopc/executor/class-use/Job.html
+++ b/doc/api/bitronix/tm/twopc/executor/class-use/Job.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.executor.Job (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.twopc.executor.Job (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.executor.Job (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.executor.Job (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.twopc.executor.Job (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -177,14 +177,6 @@ Uses of <A HREF="../../../../../bitronix/tm/twopc/executor/Job.html" title="clas
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B>SimpleAsyncExecutor.</B><B><A HREF="../../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A></B>(<A HREF="../../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A> job)</CODE>
-
-<BR>
-           </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
 <TD><CODE><B>Executor.</B><B><A HREF="../../../../../bitronix/tm/twopc/executor/Executor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A></B>(<A HREF="../../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A> job)</CODE>
 
 <BR>
@@ -193,7 +185,7 @@ Uses of <A HREF="../../../../../bitronix/tm/twopc/executor/Job.html" title="clas
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B>ConcurrentExecutor.</B><B><A HREF="../../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A></B>(<A HREF="../../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A> job)</CODE>
+<TD><CODE><B>AsyncExecutor.</B><B><A HREF="../../../../../bitronix/tm/twopc/executor/AsyncExecutor.html#submit(bitronix.tm.twopc.executor.Job)">submit</A></B>(<A HREF="../../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A> job)</CODE>
 
 <BR>
            </TD>
@@ -255,6 +247,6 @@ Uses of <A HREF="../../../../../bitronix/tm/twopc/executor/Job.html" title="clas
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/class-use/SyncExecutor.html b/doc/api/bitronix/tm/twopc/executor/class-use/SyncExecutor.html
index c43447c..f31f71c 100644
--- a/doc/api/bitronix/tm/twopc/executor/class-use/SyncExecutor.html
+++ b/doc/api/bitronix/tm/twopc/executor/class-use/SyncExecutor.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.executor.SyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.twopc.executor.SyncExecutor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.executor.SyncExecutor (Bitronix Transaction Mana
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.executor.SyncExecutor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.twopc.executor.SyncExecutor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.twopc.executor.SyncExecutor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/package-frame.html b/doc/api/bitronix/tm/twopc/executor/package-frame.html
index 207a071..26010db 100644
--- a/doc/api/bitronix/tm/twopc/executor/package-frame.html
+++ b/doc/api/bitronix/tm/twopc/executor/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -35,14 +35,10 @@ Interfaces</FONT> 
 Classes</FONT> 
 <FONT CLASS="FrameItemFont">
 <BR>
-<A HREF="BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">BackportConcurrentExecutor</A>
-<BR>
-<A HREF="ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">ConcurrentExecutor</A>
+<A HREF="AsyncExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">AsyncExecutor</A>
 <BR>
 <A HREF="Job.html" title="class in bitronix.tm.twopc.executor" target="classFrame">Job</A>
 <BR>
-<A HREF="SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">SimpleAsyncExecutor</A>
-<BR>
 <A HREF="SyncExecutor.html" title="class in bitronix.tm.twopc.executor" target="classFrame">SyncExecutor</A></FONT></TD>
 </TR>
 </TABLE>
diff --git a/doc/api/bitronix/tm/twopc/executor/package-summary.html b/doc/api/bitronix/tm/twopc/executor/package-summary.html
index ec74de8..db09f59 100644
--- a/doc/api/bitronix/tm/twopc/executor/package-summary.html
+++ b/doc/api/bitronix/tm/twopc/executor/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -111,23 +111,14 @@ Package bitronix.tm.twopc.executor
 <B>Class Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A></B></TD>
-<TD>Abstraction of the <code>java.util.concurrent</code>
- <a href="http://www.dcl.mathcs.emory.edu/util/backport-util-concurrent/">backport</a> implementation.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A></B></TD>
-<TD>Abstraction of the <code>java.util.concurrent</code> JDK 1.5+ implementation.</TD>
+<TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A></B></TD>
+<TD>This implementation executes submitted jobs using a <code>java.util.concurrent</code> cached thread pool.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A></B></TD>
 <TD>Abstract job definition executable by the 2PC thread pools.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A></B></TD>
-<TD>This implementation spawns a new thread per request.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A></B></TD>
 <TD>This implementation executes submitted jobs synchronously.</TD>
 </TR>
@@ -202,6 +193,6 @@ Package bitronix.tm.twopc.executor Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/package-tree.html b/doc/api/bitronix/tm/twopc/executor/package-tree.html
index bcd8811..d9a6394 100644
--- a/doc/api/bitronix/tm/twopc/executor/package-tree.html
+++ b/doc/api/bitronix/tm/twopc/executor/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.twopc.executor Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.twopc.executor Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.twopc.executor Class Hierarchy (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.twopc.executor Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.twopc.executor Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -93,11 +93,8 @@ Class Hierarchy
 </H2>
 <UL>
 <LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
-<LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>ConcurrentExecutor</B></A> (implements bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>)
-<UL>
-<LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>BackportConcurrentExecutor</B></A></UL>
+<LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>AsyncExecutor</B></A> (implements bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>)
 <LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor"><B>Job</B></A> (implements java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
-<LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>SimpleAsyncExecutor</B></A> (implements bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>)
 <LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>SyncExecutor</B></A> (implements bitronix.tm.twopc.executor.<A HREF="../../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>)
 </UL>
 </UL>
@@ -162,6 +159,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/executor/package-use.html b/doc/api/bitronix/tm/twopc/executor/package-use.html
index 199c964..1c36ff2 100644
--- a/doc/api/bitronix/tm/twopc/executor/package-use.html
+++ b/doc/api/bitronix/tm/twopc/executor/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.twopc.executor (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -151,12 +151,6 @@ Classes in <A HREF="../../../../bitronix/tm/twopc/executor/package-summary.html"
 Classes in <A HREF="../../../../bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A> used by <A HREF="../../../../bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><B><A HREF="../../../../bitronix/tm/twopc/executor/class-use/ConcurrentExecutor.html#bitronix.tm.twopc.executor"><B>ConcurrentExecutor</B></A></B>
-
-<BR>
-          Abstraction of the <code>java.util.concurrent</code> JDK 1.5+ implementation.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><B><A HREF="../../../../bitronix/tm/twopc/executor/class-use/Executor.html#bitronix.tm.twopc.executor"><B>Executor</B></A></B>
 
 <BR>
@@ -225,6 +219,6 @@ Classes in <A HREF="../../../../bitronix/tm/twopc/executor/package-summary.html"
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/package-frame.html b/doc/api/bitronix/tm/twopc/package-frame.html
index 4505f47..5146c0e 100644
--- a/doc/api/bitronix/tm/twopc/package-frame.html
+++ b/doc/api/bitronix/tm/twopc/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/bitronix/tm/twopc/package-summary.html b/doc/api/bitronix/tm/twopc/package-summary.html
index 2d1d954..9d863bf 100644
--- a/doc/api/bitronix/tm/twopc/package-summary.html
+++ b/doc/api/bitronix/tm/twopc/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -197,6 +197,6 @@ Package bitronix.tm.twopc Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/package-tree.html b/doc/api/bitronix/tm/twopc/package-tree.html
index 380f568..3a297a2 100644
--- a/doc/api/bitronix/tm/twopc/package-tree.html
+++ b/doc/api/bitronix/tm/twopc/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.twopc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.twopc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.twopc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 AP
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.twopc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.twopc Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -156,6 +156,6 @@ Class Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/package-use.html b/doc/api/bitronix/tm/twopc/package-use.html
index fa865b6..ff312e4 100644
--- a/doc/api/bitronix/tm/twopc/package-use.html
+++ b/doc/api/bitronix/tm/twopc/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.2 AP
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.twopc (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -173,6 +173,6 @@ Classes in <A HREF="../../../bitronix/tm/twopc/package-summary.html">bitronix.tm
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/ClassLoaderUtils.html b/doc/api/bitronix/tm/utils/ClassLoaderUtils.html
index 3e08f50..9e0f8aa 100644
--- a/doc/api/bitronix/tm/utils/ClassLoaderUtils.html
+++ b/doc/api/bitronix/tm/utils/ClassLoaderUtils.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
+ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -303,6 +303,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/CollectionUtils.html b/doc/api/bitronix/tm/utils/CollectionUtils.html
index 50af2aa..23d0487 100644
--- a/doc/api/bitronix/tm/utils/CollectionUtils.html
+++ b/doc/api/bitronix/tm/utils/CollectionUtils.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-CollectionUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
+CollectionUtils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ CollectionUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="CollectionUtils (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="CollectionUtils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -141,7 +141,7 @@ Class CollectionUtils</H2>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/CollectionUtils.html#containsByIdentity(java.util.Collection, java.lang.Object)">containsByIdentity</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A> collection,
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/CollectionUtils.html#containsByIdentity(java.util.Collection, java.lang.Object)">containsByIdentity</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><?> collection,
                    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> toBeFound)</CODE>
 
 <BR>
@@ -191,7 +191,7 @@ public <B>CollectionUtils</B>()</PRE>
 <A NAME="containsByIdentity(java.util.Collection, java.lang.Object)"><!-- --></A><H3>
 containsByIdentity</H3>
 <PRE>
-public static boolean <B>containsByIdentity</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A> collection,
+public static boolean <B>containsByIdentity</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><?> collection,
                                          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> toBeFound)</PRE>
 <DL>
 <DD>Check if a collection contains a specific object by searching for it by identity
@@ -263,6 +263,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/CryptoEngine.html b/doc/api/bitronix/tm/utils/CryptoEngine.html
index 729a786..cba1a69 100644
--- a/doc/api/bitronix/tm/utils/CryptoEngine.html
+++ b/doc/api/bitronix/tm/utils/CryptoEngine.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-CryptoEngine (Bitronix Transaction Manager :: Core 2.1.2 API)
+CryptoEngine (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ CryptoEngine (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="CryptoEngine (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="CryptoEngine (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -336,6 +336,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/Decoder.html b/doc/api/bitronix/tm/utils/Decoder.html
index f5b70ff..29cab58 100644
--- a/doc/api/bitronix/tm/utils/Decoder.html
+++ b/doc/api/bitronix/tm/utils/Decoder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Decoder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Decoder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Decoder (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Decoder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Decoder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -57,7 +57,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../bitronix/tm/utils/CryptoEngine.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/Decoder.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="Decoder.html" target="_top"><B>NO FRAMES</B></A>   
@@ -141,7 +141,7 @@ Constant to string decoder.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Decoder.html#collectResourcesNames(java.util.Collection)">collectResourcesNames</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A> resources)</CODE>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Decoder.html#collectResourcesNames(java.util.Collection)">collectResourcesNames</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> resources)</CODE>
 
 <BR>
           Create a String representation of a list of <A HREF="../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s.</TD>
@@ -303,7 +303,7 @@ public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.
 <A NAME="collectResourcesNames(java.util.Collection)"><!-- --></A><H3>
 collectResourcesNames</H3>
 <PRE>
-public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>collectResourcesNames</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A> resources)</PRE>
+public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>collectResourcesNames</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A><<A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>> resources)</PRE>
 <DL>
 <DD>Create a String representation of a list of <A HREF="../../../bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s. This
  String will contain each resource's unique name.
@@ -345,7 +345,7 @@ public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../bitronix/tm/utils/CryptoEngine.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/Decoder.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="Decoder.html" target="_top"><B>NO FRAMES</B></A>   
@@ -374,6 +374,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/resource/ResourceLoader.html b/doc/api/bitronix/tm/utils/DefaultExceptionAnalyzer.html
similarity index 67%
copy from doc/api/bitronix/tm/resource/ResourceLoader.html
copy to doc/api/bitronix/tm/utils/DefaultExceptionAnalyzer.html
index e8e5a8a..b74e5a6 100644
--- a/doc/api/bitronix/tm/resource/ResourceLoader.html
+++ b/doc/api/bitronix/tm/utils/DefaultExceptionAnalyzer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:05 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ResourceLoader (Bitronix Transaction Manager :: Core 2.1.2 API)
+DefaultExceptionAnalyzer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ResourceLoader (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ResourceLoader (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="DefaultExceptionAnalyzer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -41,7 +41,7 @@ function windowTitle()
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ResourceLoader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DefaultExceptionAnalyzer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -56,11 +56,11 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/resource/ResourceConfigurationException.html" title="class in bitronix.tm.resource"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/resource/ResourceObjectFactory.html" title="class in bitronix.tm.resource"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/resource/ResourceLoader.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="ResourceLoader.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/DefaultExceptionAnalyzer.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="DefaultExceptionAnalyzer.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -89,28 +89,23 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== START OF CLASS DATA ======== -->
 <H2>
 <FONT SIZE="-1">
-bitronix.tm.resource</FONT>
+bitronix.tm.utils</FONT>
 <BR>
-Class ResourceLoader</H2>
+Class DefaultExceptionAnalyzer</H2>
 <PRE>
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.resource.ResourceLoader</B>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.utils.DefaultExceptionAnalyzer</B>
 </PRE>
 <DL>
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DD>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A>, <A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DD>
 </DL>
 <HR>
 <DL>
-<DT><PRE>public class <B>ResourceLoader</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DL>
+<DT><PRE>public class <B>DefaultExceptionAnalyzer</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></DL>
 </PRE>
 
 <P>
-XA resources pools configurator & loader.
- <p><A HREF="../../../bitronix/tm/resource/ResourceLoader.html" title="class in bitronix.tm.resource"><CODE>ResourceLoader</CODE></A> relies on the optional <code>bitronix.tm.resource.configuration</code> propery to load the
- JDBC datasources (<A HREF="../../../bitronix/tm/resource/jdbc/PoolingDataSource.html" title="class in bitronix.tm.resource.jdbc"><CODE>PoolingDataSource</CODE></A>) and JMS connection factories
- (<A HREF="../../../bitronix/tm/resource/jms/PoolingConnectionFactory.html" title="class in bitronix.tm.resource.jms"><CODE>PoolingConnectionFactory</CODE></A>) configuration file and create the resources.</p>
- <p>When <code>bitronix.tm.resource.configuration</code> is not specified, ResourceLoader is disabled and resources
- should be manually created.</p>
+Default implementation of <A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><CODE>ExceptionAnalyzer</CODE></A>.
 <P>
 
 <P>
@@ -131,7 +126,7 @@ XA resources pools configurator & loader.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../bitronix/tm/resource/ResourceLoader.html#ResourceLoader()">ResourceLoader</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html#DefaultExceptionAnalyzer()">DefaultExceptionAnalyzer</A></B>()</CODE>
 
 <BR>
            </TD>
@@ -148,25 +143,16 @@ XA resources pools configurator & loader.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/resource/ResourceLoader.html#getResources()">getResources</A></B>()</CODE>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html#extractExtraXAExceptionDetails(javax.transaction.xa.XAException)">extractExtraXAExceptionDetails</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa">XAException</A> ex)</CODE>
 
 <BR>
-          Get a Map with the configured uniqueName as key and <A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceProducer</CODE></A> as value.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/resource/ResourceLoader.html#init()">init</A></B>()</CODE>
-
-<BR>
-          Initialize the ResourceLoader and load the resources configuration file specified in
- <code>bitronix.tm.resource.configuration</code> property.</TD>
+          Extract information from a vendor's XAException that isn't available through standard APIs.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/resource/ResourceLoader.html#shutdown()">shutdown</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html#shutdown()">shutdown</A></B>()</CODE>
 
 <BR>
           Shutdown the service and free all held resources.</TD>
@@ -194,10 +180,10 @@ XA resources pools configurator & loader.
 </TR>
 </TABLE>
 
-<A NAME="ResourceLoader()"><!-- --></A><H3>
-ResourceLoader</H3>
+<A NAME="DefaultExceptionAnalyzer()"><!-- --></A><H3>
+DefaultExceptionAnalyzer</H3>
 <PRE>
-public <B>ResourceLoader</B>()</PRE>
+public <B>DefaultExceptionAnalyzer</B>()</PRE>
 <DL>
 </DL>
 
@@ -211,37 +197,20 @@ public <B>ResourceLoader</B>()</PRE>
 </TR>
 </TABLE>
 
-<A NAME="getResources()"><!-- --></A><H3>
-getResources</H3>
+<A NAME="extractExtraXAExceptionDetails(javax.transaction.xa.XAException)"><!-- --></A><H3>
+extractExtraXAExceptionDetails</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A> <B>getResources</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>extractExtraXAExceptionDetails</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa">XAException</A> ex)</PRE>
 <DL>
-<DD>Get a Map with the configured uniqueName as key and <A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceProducer</CODE></A> as value.
+<DD><B>Description copied from interface: <CODE><A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html#extractExtraXAExceptionDetails(javax.transaction.xa.XAException)">ExceptionAnalyzer</A></CODE></B></DD>
+<DD>Extract information from a vendor's XAException that isn't available through standard APIs.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html#extractExtraXAExceptionDetails(javax.transaction.xa.XAException)">extractExtraXAExceptionDetails</A></CODE> in interface <CODE><A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></CODE></DL>
 </DD>
 <DD><DL>
-
-<DT><B>Returns:</B><DD>a Map using the uniqueName as key and <A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceProducer</CODE></A> as value.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="init()"><!-- --></A><H3>
-init</H3>
-<PRE>
-public int <B>init</B>()</PRE>
-<DL>
-<DD>Initialize the ResourceLoader and load the resources configuration file specified in
- <code>bitronix.tm.resource.configuration</code> property.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>the number of resources which failed to initialize.</DL>
+<DT><B>Parameters:</B><DD><CODE>ex</CODE> - the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa"><CODE>XAException</CODE></A> to analyze.
+<DT><B>Returns:</B><DD>extra error details as a human-readable string, or null if nothing extra was found.</DL>
 </DD>
 </DL>
 <HR>
@@ -277,7 +246,7 @@ public void <B>shutdown</B>()</PRE>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ResourceLoader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DefaultExceptionAnalyzer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -292,11 +261,11 @@ public void <B>shutdown</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/resource/ResourceConfigurationException.html" title="class in bitronix.tm.resource"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/resource/ResourceObjectFactory.html" title="class in bitronix.tm.resource"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/resource/ResourceLoader.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="ResourceLoader.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/DefaultExceptionAnalyzer.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="DefaultExceptionAnalyzer.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -322,6 +291,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/Encoder.html b/doc/api/bitronix/tm/utils/Encoder.html
index e4085af..3ce86e8 100644
--- a/doc/api/bitronix/tm/utils/Encoder.html
+++ b/doc/api/bitronix/tm/utils/Encoder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Encoder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Encoder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Encoder (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Encoder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Encoder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -56,8 +56,8 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/InitializationException.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/Encoder.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="Encoder.html" target="_top"><B>NO FRAMES</B></A>   
@@ -306,8 +306,8 @@ public static int <B>bytesToInt</B>(byte[] bytes,
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/InitializationException.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/Encoder.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="Encoder.html" target="_top"><B>NO FRAMES</B></A>   
@@ -336,6 +336,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/Service.html b/doc/api/bitronix/tm/utils/ExceptionAnalyzer.html
similarity index 60%
copy from doc/api/bitronix/tm/utils/Service.html
copy to doc/api/bitronix/tm/utils/ExceptionAnalyzer.html
index 673a7f5..0b19f24 100644
--- a/doc/api/bitronix/tm/utils/Service.html
+++ b/doc/api/bitronix/tm/utils/ExceptionAnalyzer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Service (Bitronix Transaction Manager :: Core 2.1.2 API)
+ExceptionAnalyzer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Service (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Service (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ExceptionAnalyzer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -41,7 +41,7 @@ function windowTitle()
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Service.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ExceptionAnalyzer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -56,11 +56,11 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/utils/Service.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Service.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/ExceptionAnalyzer.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="ExceptionAnalyzer.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -91,27 +91,27 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <FONT SIZE="-1">
 bitronix.tm.utils</FONT>
 <BR>
-Interface Service</H2>
+Interface ExceptionAnalyzer</H2>
 <DL>
-<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>, <A HREF="../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A></DD>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DD>
 </DL>
 <DL>
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A>, <A HREF="../../../bitronix/tm/BitronixTransactionManager.html" title="class in bitronix.tm">BitronixTransactionManager</A>, <A HREF="../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>, <A HREF="../../../bitronix/tm [...]
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils">DefaultExceptionAnalyzer</A></DD>
 </DL>
 <HR>
 <DL>
-<DT><PRE>public interface <B>Service</B></DL>
+<DT><PRE>public interface <B>ExceptionAnalyzer</B><DT>extends <A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></DL>
 </PRE>
 
 <P>
-All internal services implement this interface.
+Exception analyzers are used to extract non-standard information from vendor exceptions.
 <P>
 
 <P>
 <DL>
 <DT><B>Author:</B></DT>
   <DD>lorban</DD>
-<DT><B>See Also:</B><DD><A HREF="../../../bitronix/tm/TransactionManagerServices.html" title="class in bitronix.tm"><CODE>TransactionManagerServices</CODE></A></DL>
+</DL>
 <HR>
 
 <P>
@@ -126,11 +126,20 @@ All internal services implement this interface.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Service.html#shutdown()">shutdown</A></B>()</CODE>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html#extractExtraXAExceptionDetails(javax.transaction.xa.XAException)">extractExtraXAExceptionDetails</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa">XAException</A> ex)</CODE>
 
 <BR>
-          Shutdown the service and free all held resources.</TD>
+          Extract information from a vendor's XAException that isn't available through standard APIs.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_bitronix.tm.utils.Service"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../bitronix/tm/utils/Service.html#shutdown()">shutdown</A></CODE></TD>
 </TR>
 </TABLE>
  
@@ -146,16 +155,20 @@ All internal services implement this interface.
 </TR>
 </TABLE>
 
-<A NAME="shutdown()"><!-- --></A><H3>
-shutdown</H3>
+<A NAME="extractExtraXAExceptionDetails(javax.transaction.xa.XAException)"><!-- --></A><H3>
+extractExtraXAExceptionDetails</H3>
 <PRE>
-void <B>shutdown</B>()</PRE>
+<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>extractExtraXAExceptionDetails</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa">XAException</A> ex)</PRE>
 <DL>
-<DD>Shutdown the service and free all held resources.
+<DD>Extract information from a vendor's XAException that isn't available through standard APIs.
 <P>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ex</CODE> - the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa"><CODE>XAException</CODE></A> to analyze.
+<DT><B>Returns:</B><DD>extra error details as a human-readable string, or null if nothing extra was found.</DL>
+</DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
@@ -173,7 +186,7 @@ void <B>shutdown</B>()</PRE>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Service.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ExceptionAnalyzer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -188,11 +201,11 @@ void <B>shutdown</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/utils/Service.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Service.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/ExceptionAnalyzer.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="ExceptionAnalyzer.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -218,6 +231,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/IncrementalRecoverer.html b/doc/api/bitronix/tm/utils/ExceptionUtils.html
similarity index 64%
copy from doc/api/bitronix/tm/recovery/IncrementalRecoverer.html
copy to doc/api/bitronix/tm/utils/ExceptionUtils.html
index a871ffa..a7927f1 100644
--- a/doc/api/bitronix/tm/recovery/IncrementalRecoverer.html
+++ b/doc/api/bitronix/tm/utils/ExceptionUtils.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
+ExceptionUtils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ExceptionUtils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -41,7 +41,7 @@ function windowTitle()
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IncrementalRecoverer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ExceptionUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -56,11 +56,11 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/recovery/DanglingTransaction.html" title="class in bitronix.tm.recovery"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/recovery/Recoverer.html" title="class in bitronix.tm.recovery"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/InitializationException.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/recovery/IncrementalRecoverer.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="IncrementalRecoverer.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/ExceptionUtils.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="ExceptionUtils.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -77,9 +77,9 @@ function windowTitle()
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -89,47 +89,31 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== START OF CLASS DATA ======== -->
 <H2>
 <FONT SIZE="-1">
-bitronix.tm.recovery</FONT>
+bitronix.tm.utils</FONT>
 <BR>
-Class IncrementalRecoverer</H2>
+Class ExceptionUtils</H2>
 <PRE>
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.recovery.IncrementalRecoverer</B>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.utils.ExceptionUtils</B>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>IncrementalRecoverer</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+<DT><PRE>public final class <B>ExceptionUtils</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
 </PRE>
 
 <P>
-Incremental resource recoverer.
+Exception related utilities.
 <P>
 
 <P>
 <DL>
 <DT><B>Author:</B></DT>
-  <DD>lorban</DD>
+  <DD>Stephane Nicoll</DD>
 </DL>
 <HR>
 
 <P>
 
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../bitronix/tm/recovery/IncrementalRecoverer.html#IncrementalRecoverer()">IncrementalRecoverer</A></B>()</CODE>
-
-<BR>
-           </TD>
-</TR>
-</TABLE>
- 
 <!-- ========== METHOD SUMMARY =========== -->
 
 <A NAME="method_summary"><!-- --></A>
@@ -140,11 +124,11 @@ Incremental resource recoverer.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/recovery/IncrementalRecoverer.html#recover(bitronix.tm.resource.common.XAResourceProducer)">recover</A></B>(<A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A> xaResourceProducer)</CODE>
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/ExceptionUtils.html#getStackTrace(java.lang.Throwable)">getStackTrace</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A> t)</CODE>
 
 <BR>
-          Run incremental recovery on the specified resource.</TD>
+          Returns the stack trace of the specified <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A>.</TD>
 </TR>
 </TABLE>
  <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -159,23 +143,6 @@ Incremental resource recoverer.
  
 <P>
 
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="IncrementalRecoverer()"><!-- --></A><H3>
-IncrementalRecoverer</H3>
-<PRE>
-public <B>IncrementalRecoverer</B>()</PRE>
-<DL>
-</DL>
-
 <!-- ============ METHOD DETAIL ========== -->
 
 <A NAME="method_detail"><!-- --></A>
@@ -186,18 +153,16 @@ public <B>IncrementalRecoverer</B>()</PRE>
 </TR>
 </TABLE>
 
-<A NAME="recover(bitronix.tm.resource.common.XAResourceProducer)"><!-- --></A><H3>
-recover</H3>
+<A NAME="getStackTrace(java.lang.Throwable)"><!-- --></A><H3>
+getStackTrace</H3>
 <PRE>
-public static void <B>recover</B>(<A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A> xaResourceProducer)
-                    throws <A HREF="../../../bitronix/tm/recovery/RecoveryException.html" title="class in bitronix.tm.recovery">RecoveryException</A></PRE>
+public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getStackTrace</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A> t)</PRE>
 <DL>
-<DD>Run incremental recovery on the specified resource.
+<DD>Returns the stack trace of the specified <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A>.
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>xaResourceProducer</CODE> - the resource to recover.
-<DT><B>Throws:</B>
-<DD><CODE><A HREF="../../../bitronix/tm/recovery/RecoveryException.html" title="class in bitronix.tm.recovery">RecoveryException</A></CODE> - when an error preventing recovery happens.</DL>
+<DT><B>Parameters:</B><DD><CODE>t</CODE> - the throwable
+<DT><B>Returns:</B><DD>the string representation of the stack trace</DL>
 </DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
@@ -216,7 +181,7 @@ public static void <B>recover</B>(<A HREF="../../../bitronix/tm/resource/common/
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IncrementalRecoverer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ExceptionUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -231,11 +196,11 @@ public static void <B>recover</B>(<A HREF="../../../bitronix/tm/resource/common/
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/recovery/DanglingTransaction.html" title="class in bitronix.tm.recovery"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/recovery/Recoverer.html" title="class in bitronix.tm.recovery"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/InitializationException.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/recovery/IncrementalRecoverer.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="IncrementalRecoverer.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/ExceptionUtils.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="ExceptionUtils.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -252,15 +217,15 @@ public static void <B>recover</B>(<A HREF="../../../bitronix/tm/resource/common/
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/InitializationException.html b/doc/api/bitronix/tm/utils/InitializationException.html
index 1487c2d..b5e65f1 100644
--- a/doc/api/bitronix/tm/utils/InitializationException.html
+++ b/doc/api/bitronix/tm/utils/InitializationException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-InitializationException (Bitronix Transaction Manager :: Core 2.1.2 API)
+InitializationException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ InitializationException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="InitializationException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="InitializationException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -56,7 +56,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
  <A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/InitializationException.html" target="_top"><B>FRAMES</B></A>   
@@ -229,7 +229,7 @@ public <B>InitializationException</B>(<A HREF="http://java.sun.com/j2se/1.5.0/do
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
  <A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/InitializationException.html" target="_top"><B>FRAMES</B></A>   
@@ -259,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/ManagementRegistrar.html b/doc/api/bitronix/tm/utils/ManagementRegistrar.html
index 76aec80..09742d8 100644
--- a/doc/api/bitronix/tm/utils/ManagementRegistrar.html
+++ b/doc/api/bitronix/tm/utils/ManagementRegistrar.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)
+ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -57,7 +57,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../bitronix/tm/utils/InitializationException.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/PropertyException.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/ManagementRegistrar.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="ManagementRegistrar.html" target="_top"><B>NO FRAMES</B></A>   
@@ -77,9 +77,9 @@ function windowTitle()
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -98,11 +98,11 @@ Class ManagementRegistrar</H2>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>ManagementRegistrar</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+<DT><PRE>public final class <B>ManagementRegistrar</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
 </PRE>
 
 <P>
-Simple JMX facade. In case there is no JMX implementation available, calling methods of this class have no effect.
+Simple JMX facade. In case JMX is disabled, calling methods of this class have no effect.
 <P>
 
 <P>
@@ -114,22 +114,6 @@ Simple JMX facade. In case there is no JMX implementation available, calling met
 
 <P>
 
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html#ManagementRegistrar()">ManagementRegistrar</A></B>()</CODE>
-
-<BR>
-           </TD>
-</TR>
-</TABLE>
- 
 <!-- ========== METHOD SUMMARY =========== -->
 
 <A NAME="method_summary"><!-- --></A>
@@ -176,23 +160,6 @@ Simple JMX facade. In case there is no JMX implementation available, calling met
  
 <P>
 
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="ManagementRegistrar()"><!-- --></A><H3>
-ManagementRegistrar</H3>
-<PRE>
-public <B>ManagementRegistrar</B>()</PRE>
-<DL>
-</DL>
-
 <!-- ============ METHOD DETAIL ========== -->
 
 <A NAME="method_detail"><!-- --></A>
@@ -274,7 +241,7 @@ public static void <B>unregister</B>(<A HREF="http://java.sun.com/j2se/1.5.0/doc
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../bitronix/tm/utils/InitializationException.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/PropertyException.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/ManagementRegistrar.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="ManagementRegistrar.html" target="_top"><B>NO FRAMES</B></A>   
@@ -294,15 +261,15 @@ public static void <B>unregister</B>(<A HREF="http://java.sun.com/j2se/1.5.0/doc
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/recovery/IncrementalRecoverer.html b/doc/api/bitronix/tm/utils/MonotonicClock.html
similarity index 74%
copy from doc/api/bitronix/tm/recovery/IncrementalRecoverer.html
copy to doc/api/bitronix/tm/utils/MonotonicClock.html
index a871ffa..9b15ebb 100644
--- a/doc/api/bitronix/tm/recovery/IncrementalRecoverer.html
+++ b/doc/api/bitronix/tm/utils/MonotonicClock.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:04 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
+MonotonicClock (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="IncrementalRecoverer (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="MonotonicClock (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -41,7 +41,7 @@ function windowTitle()
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IncrementalRecoverer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MonotonicClock.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -56,11 +56,11 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/recovery/DanglingTransaction.html" title="class in bitronix.tm.recovery"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/recovery/Recoverer.html" title="class in bitronix.tm.recovery"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/PropertyException.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/recovery/IncrementalRecoverer.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="IncrementalRecoverer.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/MonotonicClock.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="MonotonicClock.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -89,20 +89,20 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== START OF CLASS DATA ======== -->
 <H2>
 <FONT SIZE="-1">
-bitronix.tm.recovery</FONT>
+bitronix.tm.utils</FONT>
 <BR>
-Class IncrementalRecoverer</H2>
+Class MonotonicClock</H2>
 <PRE>
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.recovery.IncrementalRecoverer</B>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.utils.MonotonicClock</B>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>IncrementalRecoverer</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+<DT><PRE>public class <B>MonotonicClock</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
 </PRE>
 
 <P>
-Incremental resource recoverer.
+A System.currentTimeMillis() replacement which guarantees monotonic time increment.
 <P>
 
 <P>
@@ -123,7 +123,7 @@ Incremental resource recoverer.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../bitronix/tm/recovery/IncrementalRecoverer.html#IncrementalRecoverer()">IncrementalRecoverer</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/MonotonicClock.html#MonotonicClock()">MonotonicClock</A></B>()</CODE>
 
 <BR>
            </TD>
@@ -140,11 +140,11 @@ Incremental resource recoverer.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/recovery/IncrementalRecoverer.html#recover(bitronix.tm.resource.common.XAResourceProducer)">recover</A></B>(<A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A> xaResourceProducer)</CODE>
+<CODE>static long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/MonotonicClock.html#currentTimeMillis()">currentTimeMillis</A></B>()</CODE>
 
 <BR>
-          Run incremental recovery on the specified resource.</TD>
+          Return the current time in milliseconds, guaranteeing monotonic time increment.</TD>
 </TR>
 </TABLE>
  <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -169,10 +169,10 @@ Incremental resource recoverer.
 </TR>
 </TABLE>
 
-<A NAME="IncrementalRecoverer()"><!-- --></A><H3>
-IncrementalRecoverer</H3>
+<A NAME="MonotonicClock()"><!-- --></A><H3>
+MonotonicClock</H3>
 <PRE>
-public <B>IncrementalRecoverer</B>()</PRE>
+public <B>MonotonicClock</B>()</PRE>
 <DL>
 </DL>
 
@@ -186,18 +186,16 @@ public <B>IncrementalRecoverer</B>()</PRE>
 </TR>
 </TABLE>
 
-<A NAME="recover(bitronix.tm.resource.common.XAResourceProducer)"><!-- --></A><H3>
-recover</H3>
+<A NAME="currentTimeMillis()"><!-- --></A><H3>
+currentTimeMillis</H3>
 <PRE>
-public static void <B>recover</B>(<A HREF="../../../bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common">XAResourceProducer</A> xaResourceProducer)
-                    throws <A HREF="../../../bitronix/tm/recovery/RecoveryException.html" title="class in bitronix.tm.recovery">RecoveryException</A></PRE>
+public static long <B>currentTimeMillis</B>()</PRE>
 <DL>
-<DD>Run incremental recovery on the specified resource.
+<DD>Return the current time in milliseconds, guaranteeing monotonic time increment.
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>xaResourceProducer</CODE> - the resource to recover.
-<DT><B>Throws:</B>
-<DD><CODE><A HREF="../../../bitronix/tm/recovery/RecoveryException.html" title="class in bitronix.tm.recovery">RecoveryException</A></CODE> - when an error preventing recovery happens.</DL>
+
+<DT><B>Returns:</B><DD>the current time in milliseconds.</DL>
 </DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
@@ -216,7 +214,7 @@ public static void <B>recover</B>(<A HREF="../../../bitronix/tm/resource/common/
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IncrementalRecoverer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MonotonicClock.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -231,11 +229,11 @@ public static void <B>recover</B>(<A HREF="../../../bitronix/tm/resource/common/
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/recovery/DanglingTransaction.html" title="class in bitronix.tm.recovery"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/recovery/Recoverer.html" title="class in bitronix.tm.recovery"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/PropertyException.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/recovery/IncrementalRecoverer.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="IncrementalRecoverer.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/MonotonicClock.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="MonotonicClock.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -261,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/PropertyException.html b/doc/api/bitronix/tm/utils/PropertyException.html
index c478b26..d6e7af8 100644
--- a/doc/api/bitronix/tm/utils/PropertyException.html
+++ b/doc/api/bitronix/tm/utils/PropertyException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PropertyException (Bitronix Transaction Manager :: Core 2.1.2 API)
+PropertyException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PropertyException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PropertyException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PropertyException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -56,7 +56,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
  <A HREF="../../../bitronix/tm/utils/PropertyUtils.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/PropertyException.html" target="_top"><B>FRAMES</B></A>   
@@ -229,7 +229,7 @@ public <B>PropertyException</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
  <A HREF="../../../bitronix/tm/utils/PropertyUtils.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/PropertyException.html" target="_top"><B>FRAMES</B></A>   
@@ -259,6 +259,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/PropertyUtils.html b/doc/api/bitronix/tm/utils/PropertyUtils.html
index 7def55e..73e79f8 100644
--- a/doc/api/bitronix/tm/utils/PropertyUtils.html
+++ b/doc/api/bitronix/tm/utils/PropertyUtils.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-PropertyUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
+PropertyUtils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ PropertyUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="PropertyUtils (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="PropertyUtils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -368,6 +368,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/Scheduler.html b/doc/api/bitronix/tm/utils/Scheduler.html
index 28545d0..31bae52 100644
--- a/doc/api/bitronix/tm/utils/Scheduler.html
+++ b/doc/api/bitronix/tm/utils/Scheduler.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Scheduler (Bitronix Transaction Manager :: Core 2.1.2 API)
+Scheduler (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Scheduler (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Scheduler (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Scheduler (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -91,14 +91,17 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <FONT SIZE="-1">
 bitronix.tm.utils</FONT>
 <BR>
-Class Scheduler</H2>
+Class Scheduler<T></H2>
 <PRE>
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.utils.Scheduler</B>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.utils.Scheduler<T></B>
 </PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</A><T></DD>
+</DL>
 <HR>
 <DL>
-<DT><PRE>public class <B>Scheduler</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+<DT><PRE>public class <B>Scheduler<T></B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</A><T></DL>
 </PRE>
 
 <P>
@@ -125,7 +128,7 @@ Positional object container. Objects can be added to a scheduler at a certain po
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#ALWAYS_FIRST_POSITION">ALWAYS_FIRST_POSITION</A></B></CODE>
 
 <BR>
@@ -133,15 +136,7 @@ Positional object container. Objects can be added to a scheduler at a certain po
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#ALWAYS_FIRST_POSITION_KEY">ALWAYS_FIRST_POSITION_KEY</A></B></CODE>
-
-<BR>
-           </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#ALWAYS_LAST_POSITION">ALWAYS_LAST_POSITION</A></B></CODE>
 
 <BR>
@@ -149,28 +144,12 @@ Positional object container. Objects can be added to a scheduler at a certain po
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#ALWAYS_LAST_POSITION_KEY">ALWAYS_LAST_POSITION_KEY</A></B></CODE>
-
-<BR>
-           </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
+<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#DEFAULT_POSITION">DEFAULT_POSITION</A></B></CODE>
 
 <BR>
            </TD>
 </TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#DEFAULT_POSITION_KEY">DEFAULT_POSITION_KEY</A></B></CODE>
-
-<BR>
-           </TD>
-</TR>
 </TABLE>
  
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
@@ -200,31 +179,31 @@ Positional object container. Objects can be added to a scheduler at a certain po
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#add(java.lang.Object, int)">add</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj,
-    int position)</CODE>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#add(T, java.lang.Integer)">add</A></B>(<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A> obj,
+    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#getByNaturalOrderForPosition(java.lang.Object)">getByNaturalOrderForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> positionKey)</CODE>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#getByNaturalOrderForPosition(java.lang.Integer)">getByNaturalOrderForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#getByReverseOrderForPosition(java.lang.Object)">getByReverseOrderForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> positionKey)</CODE>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#getByReverseOrderForPosition(java.lang.Integer)">getByReverseOrderForPosition</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#getNaturalOrderPositions()">getNaturalOrderPositions</A></B>()</CODE>
 
 <BR>
@@ -232,7 +211,7 @@ Positional object container. Objects can be added to a scheduler at a certain po
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#getReverseOrderPositions()">getReverseOrderPositions</A></B>()</CODE>
 
 <BR>
@@ -240,7 +219,7 @@ Positional object container. Objects can be added to a scheduler at a certain po
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#iterator()">iterator</A></B>()</CODE>
 
 <BR>
@@ -249,14 +228,14 @@ Positional object container. Objects can be added to a scheduler at a certain po
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#remove(java.lang.Object)">remove</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj)</CODE>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#remove(T)">remove</A></B>(<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A> obj)</CODE>
 
 <BR>
            </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../bitronix/tm/utils/Scheduler.html#reverseIterator()">reverseIterator</A></B>()</CODE>
 
 <BR>
@@ -304,57 +283,27 @@ Positional object container. Objects can be added to a scheduler at a certain po
 <A NAME="DEFAULT_POSITION"><!-- --></A><H3>
 DEFAULT_POSITION</H3>
 <PRE>
-public static final int <B>DEFAULT_POSITION</B></PRE>
+public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> <B>DEFAULT_POSITION</B></PRE>
 <DL>
 <DL>
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#bitronix.tm.utils.Scheduler.DEFAULT_POSITION">Constant Field Values</A></DL>
+</DL>
 </DL>
 <HR>
 
 <A NAME="ALWAYS_FIRST_POSITION"><!-- --></A><H3>
 ALWAYS_FIRST_POSITION</H3>
 <PRE>
-public static final int <B>ALWAYS_FIRST_POSITION</B></PRE>
+public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> <B>ALWAYS_FIRST_POSITION</B></PRE>
 <DL>
 <DL>
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#bitronix.tm.utils.Scheduler.ALWAYS_FIRST_POSITION">Constant Field Values</A></DL>
+</DL>
 </DL>
 <HR>
 
 <A NAME="ALWAYS_LAST_POSITION"><!-- --></A><H3>
 ALWAYS_LAST_POSITION</H3>
 <PRE>
-public static final int <B>ALWAYS_LAST_POSITION</B></PRE>
-<DL>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#bitronix.tm.utils.Scheduler.ALWAYS_LAST_POSITION">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="DEFAULT_POSITION_KEY"><!-- --></A><H3>
-DEFAULT_POSITION_KEY</H3>
-<PRE>
-public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>DEFAULT_POSITION_KEY</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="ALWAYS_FIRST_POSITION_KEY"><!-- --></A><H3>
-ALWAYS_FIRST_POSITION_KEY</H3>
-<PRE>
-public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>ALWAYS_FIRST_POSITION_KEY</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="ALWAYS_LAST_POSITION_KEY"><!-- --></A><H3>
-ALWAYS_LAST_POSITION_KEY</H3>
-<PRE>
-public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>ALWAYS_LAST_POSITION_KEY</B></PRE>
+public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> <B>ALWAYS_LAST_POSITION</B></PRE>
 <DL>
 <DL>
 </DL>
@@ -387,70 +336,88 @@ public <B>Scheduler</B>()</PRE>
 </TR>
 </TABLE>
 
-<A NAME="add(java.lang.Object, int)"><!-- --></A><H3>
+<A NAME="add(java.lang.Object,java.lang.Integer)"><!-- --></A><A NAME="add(T, java.lang.Integer)"><!-- --></A><H3>
 add</H3>
 <PRE>
-public void <B>add</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj,
-                int position)</PRE>
+public void <B>add</B>(<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A> obj,
+                <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
-<A NAME="remove(java.lang.Object)"><!-- --></A><H3>
+<A NAME="remove(java.lang.Object)"><!-- --></A><A NAME="remove(T)"><!-- --></A><H3>
 remove</H3>
 <PRE>
-public void <B>remove</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> obj)</PRE>
+public void <B>remove</B>(<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A> obj)</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
 <A NAME="getNaturalOrderPositions()"><!-- --></A><H3>
 getNaturalOrderPositions</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A> <B>getNaturalOrderPositions</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>> <B>getNaturalOrderPositions</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
 <A NAME="getReverseOrderPositions()"><!-- --></A><H3>
 getReverseOrderPositions</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A> <B>getReverseOrderPositions</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A>> <B>getReverseOrderPositions</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
-<A NAME="getByNaturalOrderForPosition(java.lang.Object)"><!-- --></A><H3>
+<A NAME="getByNaturalOrderForPosition(java.lang.Integer)"><!-- --></A><H3>
 getByNaturalOrderForPosition</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getByNaturalOrderForPosition</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> positionKey)</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>> <B>getByNaturalOrderForPosition</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
-<A NAME="getByReverseOrderForPosition(java.lang.Object)"><!-- --></A><H3>
+<A NAME="getByReverseOrderForPosition(java.lang.Integer)"><!-- --></A><H3>
 getByReverseOrderForPosition</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getByReverseOrderForPosition</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> positionKey)</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>> <B>getByReverseOrderForPosition</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> position)</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
@@ -462,15 +429,21 @@ public int <B>size</B>()</PRE>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
 <A NAME="iterator()"><!-- --></A><H3>
 iterator</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A> <B>iterator</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>> <B>iterator</B>()</PRE>
 <DL>
 <DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang">iterator</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>></CODE></DL>
+</DD>
+<DD><DL>
 </DL>
 </DD>
 </DL>
@@ -479,11 +452,14 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?
 <A NAME="reverseIterator()"><!-- --></A><H3>
 reverseIterator</H3>
 <PRE>
-public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A> <B>reverseIterator</B>()</PRE>
+public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A><<A HREF="../../../bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>> <B>reverseIterator</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
+<DD><DL>
+</DL>
+</DD>
 </DL>
 <HR>
 
@@ -560,6 +536,6 @@ DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/Service.html b/doc/api/bitronix/tm/utils/Service.html
index 673a7f5..275a04d 100644
--- a/doc/api/bitronix/tm/utils/Service.html
+++ b/doc/api/bitronix/tm/utils/Service.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Service (Bitronix Transaction Manager :: Core 2.1.2 API)
+Service (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Service (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Service (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Service (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -57,7 +57,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/Service.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="Service.html" target="_top"><B>NO FRAMES</B></A>   
@@ -93,10 +93,10 @@ bitronix.tm.utils</FONT>
 <BR>
 Interface Service</H2>
 <DL>
-<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>, <A HREF="../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A></DD>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A>, <A HREF="../../../bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>, <A HREF="../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A></DD>
 </DL>
 <DL>
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A>, <A HREF="../../../bitronix/tm/BitronixTransactionManager.html" title="class in bitronix.tm">BitronixTransactionManager</A>, <A HREF="../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>, <A HREF="../../../bitronix/tm [...]
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A>, <A HREF="../../../bitronix/tm/BitronixTransactionManager.html" title="class in bitronix.tm">BitronixTransactionManager</A>, <A HREF="../../../bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>, <A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm. [...]
 </DL>
 <HR>
 <DL>
@@ -189,7 +189,7 @@ void <B>shutdown</B>()</PRE>
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/Service.html" target="_top"><B>FRAMES</B></A>   
  <A HREF="Service.html" target="_top"><B>NO FRAMES</B></A>   
@@ -218,6 +218,6 @@ DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHO
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/internal/TransactionTimeoutException.html b/doc/api/bitronix/tm/utils/StackTrace.html
similarity index 74%
rename from doc/api/bitronix/tm/internal/TransactionTimeoutException.html
rename to doc/api/bitronix/tm/utils/StackTrace.html
index d678113..432d1e5 100644
--- a/doc/api/bitronix/tm/internal/TransactionTimeoutException.html
+++ b/doc/api/bitronix/tm/utils/StackTrace.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:03 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-TransactionTimeoutException (Bitronix Transaction Manager :: Core 2.1.2 API)
+StackTrace (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ TransactionTimeoutException (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="TransactionTimeoutException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="StackTrace (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -41,7 +41,7 @@ function windowTitle()
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/TransactionTimeoutException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StackTrace.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -56,11 +56,11 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/internal/TransactionStatusChangeListener.html" title="interface in bitronix.tm.internal"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/internal/TransactionTimeoutException.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="TransactionTimeoutException.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/StackTrace.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="StackTrace.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -89,32 +89,31 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== START OF CLASS DATA ======== -->
 <H2>
 <FONT SIZE="-1">
-bitronix.tm.internal</FONT>
+bitronix.tm.utils</FONT>
 <BR>
-Class TransactionTimeoutException</H2>
+Class StackTrace</H2>
 <PRE>
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
   <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</A>
-      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</A>
-          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.internal.TransactionTimeoutException</B>
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>bitronix.tm.utils.StackTrace</B>
 </PRE>
 <DL>
 <DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
 </DL>
 <HR>
 <DL>
-<DT><PRE>public class <B>TransactionTimeoutException</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></DL>
+<DT><PRE>public class <B>StackTrace</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A></DL>
 </PRE>
 
 <P>
-Thrown when a transaction times out.
+A dummy <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A> used to build a call stack.
 <P>
 
 <P>
 <DL>
 <DT><B>Author:</B></DT>
-  <DD>lorban</DD>
-<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#bitronix.tm.internal.TransactionTimeoutException">Serialized Form</A></DL>
+  <DD>Ludovic Orban</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#bitronix.tm.utils.StackTrace">Serialized Form</A></DL>
 <HR>
 
 <P>
@@ -128,14 +127,7 @@ Thrown when a transaction times out.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html#TransactionTimeoutException(java.lang.String)">TransactionTimeoutException</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> message)</CODE>
-
-<BR>
-           </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../bitronix/tm/internal/TransactionTimeoutException.html#TransactionTimeoutException(java.lang.String, java.lang.Throwable)">TransactionTimeoutException</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> message,
-                            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A> cause)</CODE>
+<TD><CODE><B><A HREF="../../../bitronix/tm/utils/StackTrace.html#StackTrace()">StackTrace</A></B>()</CODE>
 
 <BR>
            </TD>
@@ -182,19 +174,10 @@ Thrown when a transaction times out.
 </TR>
 </TABLE>
 
-<A NAME="TransactionTimeoutException(java.lang.String)"><!-- --></A><H3>
-TransactionTimeoutException</H3>
-<PRE>
-public <B>TransactionTimeoutException</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> message)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TransactionTimeoutException(java.lang.String, java.lang.Throwable)"><!-- --></A><H3>
-TransactionTimeoutException</H3>
+<A NAME="StackTrace()"><!-- --></A><H3>
+StackTrace</H3>
 <PRE>
-public <B>TransactionTimeoutException</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> message,
-                                   <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A> cause)</PRE>
+public <B>StackTrace</B>()</PRE>
 <DL>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
@@ -213,7 +196,7 @@ public <B>TransactionTimeoutException</B>(<A HREF="http://java.sun.com/j2se/1.5.
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/TransactionTimeoutException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StackTrace.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
@@ -228,11 +211,11 @@ public <B>TransactionTimeoutException</B>(<A HREF="http://java.sun.com/j2se/1.5.
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/internal/TransactionStatusChangeListener.html" title="interface in bitronix.tm.internal"><B>PREV CLASS</B></A> 
- <A HREF="../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><B>NEXT CLASS</B></A></FONT></TD>
+ <A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?bitronix/tm/internal/TransactionTimeoutException.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="TransactionTimeoutException.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../index.html?bitronix/tm/utils/StackTrace.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="StackTrace.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -258,6 +241,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/Uid.html b/doc/api/bitronix/tm/utils/Uid.html
index eca1f3c..5db24df 100644
--- a/doc/api/bitronix/tm/utils/Uid.html
+++ b/doc/api/bitronix/tm/utils/Uid.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uid (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uid (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uid (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uid (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uid (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -56,7 +56,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
  <A HREF="../../../bitronix/tm/utils/UidGenerator.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/Uid.html" target="_top"><B>FRAMES</B></A>   
@@ -349,7 +349,7 @@ public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils"><B>PREV CLASS</B></A> 
+ <A HREF="../../../bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><B>PREV CLASS</B></A> 
  <A HREF="../../../bitronix/tm/utils/UidGenerator.html" title="class in bitronix.tm.utils"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?bitronix/tm/utils/Uid.html" target="_top"><B>FRAMES</B></A>   
@@ -379,6 +379,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/UidGenerator.html b/doc/api/bitronix/tm/utils/UidGenerator.html
index c06b0a2..cfb9cc2 100644
--- a/doc/api/bitronix/tm/utils/UidGenerator.html
+++ b/doc/api/bitronix/tm/utils/UidGenerator.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-UidGenerator (Bitronix Transaction Manager :: Core 2.1.2 API)
+UidGenerator (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ UidGenerator (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="UidGenerator (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="UidGenerator (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -159,14 +159,6 @@ Helper that offers UID generation (GTRID, XID, sequences) needed by the transact
 <BR>
           Generate a XID with the specified globalTransactionId.</TD>
 </TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../bitronix/tm/utils/UidGenerator.html#getNextSequenceNumber()">getNextSequenceNumber</A></B>()</CODE>
-
-<BR>
-          Atomically generate general-purpose sequence numbers starting at 0.</TD>
-</TR>
 </TABLE>
  <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
@@ -221,21 +213,6 @@ public static <A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitr
 </DL>
 <HR>
 
-<A NAME="getNextSequenceNumber()"><!-- --></A><H3>
-getNextSequenceNumber</H3>
-<PRE>
-public static int <B>getNextSequenceNumber</B>()</PRE>
-<DL>
-<DD>Atomically generate general-purpose sequence numbers starting at 0. The counter is reset at every
- JVM startup.
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>a sequence number unique for the lifespan of this JVM.</DL>
-</DD>
-</DL>
-<HR>
-
 <A NAME="generateXid(bitronix.tm.utils.Uid)"><!-- --></A><H3>
 generateXid</H3>
 <PRE>
@@ -309,6 +286,6 @@ DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> |&n
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/ClassLoaderUtils.html b/doc/api/bitronix/tm/utils/class-use/ClassLoaderUtils.html
index 59b8dc8..70effcb 100644
--- a/doc/api/bitronix/tm/utils/class-use/ClassLoaderUtils.html
+++ b/doc/api/bitronix/tm/utils/class-use/ClassLoaderUtils.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.ClassLoaderUtils (Bitronix Transaction Manager :
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.ClassLoaderUtils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.ClassLoaderUtils
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/CollectionUtils.html b/doc/api/bitronix/tm/utils/class-use/CollectionUtils.html
index dd88f5f..69af7a1 100644
--- a/doc/api/bitronix/tm/utils/class-use/CollectionUtils.html
+++ b/doc/api/bitronix/tm/utils/class-use/CollectionUtils.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.CollectionUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.CollectionUtils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.CollectionUtils (Bitronix Transaction Manager ::
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.CollectionUtils (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.CollectionUtils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.CollectionUtils
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/CryptoEngine.html b/doc/api/bitronix/tm/utils/class-use/CryptoEngine.html
index 5dc7d9b..abb5c29 100644
--- a/doc/api/bitronix/tm/utils/class-use/CryptoEngine.html
+++ b/doc/api/bitronix/tm/utils/class-use/CryptoEngine.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.CryptoEngine (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.CryptoEngine (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.CryptoEngine (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.CryptoEngine (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.CryptoEngine (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.CryptoEngine
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/Decoder.html b/doc/api/bitronix/tm/utils/class-use/Decoder.html
index f49a10c..1c39461 100644
--- a/doc/api/bitronix/tm/utils/class-use/Decoder.html
+++ b/doc/api/bitronix/tm/utils/class-use/Decoder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.Decoder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.Decoder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.Decoder (Bitronix Transaction Manager :: Core 2.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.Decoder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.Decoder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.Decoder
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/Decoder.html b/doc/api/bitronix/tm/utils/class-use/DefaultExceptionAnalyzer.html
similarity index 82%
copy from doc/api/bitronix/tm/utils/class-use/Decoder.html
copy to doc/api/bitronix/tm/utils/class-use/DefaultExceptionAnalyzer.html
index f49a10c..6441704 100644
--- a/doc/api/bitronix/tm/utils/class-use/Decoder.html
+++ b/doc/api/bitronix/tm/utils/class-use/DefaultExceptionAnalyzer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.Decoder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.DefaultExceptionAnalyzer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.Decoder (Bitronix Transaction Manager :: Core 2.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.Decoder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.DefaultExceptionAnalyzer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -40,7 +40,7 @@ function windowTitle()
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -59,8 +59,8 @@ function windowTitle()
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/utils//class-useDecoder.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Decoder.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useDefaultExceptionAnalyzer.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="DefaultExceptionAnalyzer.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -82,9 +82,9 @@ function windowTitle()
 <HR>
 <CENTER>
 <H2>
-<B>Uses of Class<br>bitronix.tm.utils.Decoder</B></H2>
+<B>Uses of Class<br>bitronix.tm.utils.DefaultExceptionAnalyzer</B></H2>
 </CENTER>
-No usage of bitronix.tm.utils.Decoder
+No usage of bitronix.tm.utils.DefaultExceptionAnalyzer
 <P>
 <HR>
 
@@ -100,7 +100,7 @@ No usage of bitronix.tm.utils.Decoder
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -119,8 +119,8 @@ No usage of bitronix.tm.utils.Decoder
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/utils//class-useDecoder.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Decoder.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useDefaultExceptionAnalyzer.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="DefaultExceptionAnalyzer.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.Decoder
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/Encoder.html b/doc/api/bitronix/tm/utils/class-use/Encoder.html
index c4091dd..2a03c8f 100644
--- a/doc/api/bitronix/tm/utils/class-use/Encoder.html
+++ b/doc/api/bitronix/tm/utils/class-use/Encoder.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.Encoder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.Encoder (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.Encoder (Bitronix Transaction Manager :: Core 2.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.Encoder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.Encoder (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.Encoder
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/journal/class-use/Journal.html b/doc/api/bitronix/tm/utils/class-use/ExceptionAnalyzer.html
similarity index 68%
copy from doc/api/bitronix/tm/journal/class-use/Journal.html
copy to doc/api/bitronix/tm/utils/class-use/ExceptionAnalyzer.html
index db8fcda..3f78195 100644
--- a/doc/api/bitronix/tm/journal/class-use/Journal.html
+++ b/doc/api/bitronix/tm/utils/class-use/ExceptionAnalyzer.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.journal.Journal (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.utils.ExceptionAnalyzer (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.journal.Journal (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.journal.Journal (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.utils.ExceptionAnalyzer (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -40,7 +40,7 @@ function windowTitle()
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -59,8 +59,8 @@ function windowTitle()
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/journal//class-useJournal.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Journal.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useExceptionAnalyzer.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="ExceptionAnalyzer.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -82,13 +82,13 @@ function windowTitle()
 <HR>
 <CENTER>
 <H2>
-<B>Uses of Interface<br>bitronix.tm.journal.Journal</B></H2>
+<B>Uses of Interface<br>bitronix.tm.utils.ExceptionAnalyzer</B></H2>
 </CENTER>
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A></FONT></TH>
+Packages that use <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><A HREF="#bitronix.tm"><B>bitronix.tm</B></A></TD>
@@ -96,9 +96,9 @@ Packages that use <A HREF="../../../../bitronix/tm/journal/Journal.html" title="
         JTA interfaces implementations and global services. </TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#bitronix.tm.journal"><B>bitronix.tm.journal</B></A></TD>
+<TD><A HREF="#bitronix.tm.utils"><B>bitronix.tm.utils</B></A></TD>
 <TD>
-        Transactions disk journal. </TD>
+        Misc utility classes. </TD>
 </TR>
 </TABLE>
  
@@ -107,7 +107,7 @@ Packages that use <A HREF="../../../../bitronix/tm/journal/Journal.html" title="
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Uses of <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A> in <A HREF="../../../../bitronix/tm/package-summary.html">bitronix.tm</A></FONT></TH>
+Uses of <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A> in <A HREF="../../../../bitronix/tm/package-summary.html">bitronix.tm</A></FONT></TH>
 </TR>
 </TABLE>
  
@@ -115,24 +115,24 @@ Uses of <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/package-summary.html">bitronix.tm</A> that return <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A></FONT></TH>
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/package-summary.html">bitronix.tm</A> that return <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A></CODE></FONT></TD>
-<TD><CODE><B>TransactionManagerServices.</B><B><A HREF="../../../../bitronix/tm/TransactionManagerServices.html#getJournal()">getJournal</A></B>()</CODE>
+<CODE>static <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></CODE></FONT></TD>
+<TD><CODE><B>TransactionManagerServices.</B><B><A HREF="../../../../bitronix/tm/TransactionManagerServices.html#getExceptionAnalyzer()">getExceptionAnalyzer</A></B>()</CODE>
 
 <BR>
-          Create the transactions journal.</TD>
+          Create the exception analyzer.</TD>
 </TR>
 </TABLE>
  
 <P>
-<A NAME="bitronix.tm.journal"><!-- --></A>
+<A NAME="bitronix.tm.utils"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Uses of <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A> in <A HREF="../../../../bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A></FONT></TH>
+Uses of <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A> in <A HREF="../../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A></FONT></TH>
 </TR>
 </TABLE>
  
@@ -140,23 +140,15 @@ Uses of <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A> that implement <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A></FONT></TH>
+<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A> that implement <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/journal/DiskJournal.html" title="class in bitronix.tm.journal">DiskJournal</A></B></CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils">DefaultExceptionAnalyzer</A></B></CODE>
 
 <BR>
-          Simple implementation of a journal that writes on a two-files disk log.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/journal/NullJournal.html" title="class in bitronix.tm.journal">NullJournal</A></B></CODE>
-
-<BR>
-          No-op journal.</TD>
+          Default implementation of <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><CODE>ExceptionAnalyzer</CODE></A>.</TD>
 </TR>
 </TABLE>
  
@@ -175,7 +167,7 @@ Uses of <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -194,8 +186,8 @@ Uses of <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/journal//class-useJournal.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Journal.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useExceptionAnalyzer.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="ExceptionAnalyzer.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -215,6 +207,6 @@ Uses of <A HREF="../../../../bitronix/tm/journal/Journal.html" title="interface
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/Encoder.html b/doc/api/bitronix/tm/utils/class-use/ExceptionUtils.html
similarity index 81%
copy from doc/api/bitronix/tm/utils/class-use/Encoder.html
copy to doc/api/bitronix/tm/utils/class-use/ExceptionUtils.html
index c4091dd..c8260a7 100644
--- a/doc/api/bitronix/tm/utils/class-use/Encoder.html
+++ b/doc/api/bitronix/tm/utils/class-use/ExceptionUtils.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.Encoder (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.ExceptionUtils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.Encoder (Bitronix Transaction Manager :: Core 2.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.Encoder (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.ExceptionUtils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -40,7 +40,7 @@ function windowTitle()
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -59,8 +59,8 @@ function windowTitle()
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/utils//class-useEncoder.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Encoder.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useExceptionUtils.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="ExceptionUtils.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -82,9 +82,9 @@ function windowTitle()
 <HR>
 <CENTER>
 <H2>
-<B>Uses of Class<br>bitronix.tm.utils.Encoder</B></H2>
+<B>Uses of Class<br>bitronix.tm.utils.ExceptionUtils</B></H2>
 </CENTER>
-No usage of bitronix.tm.utils.Encoder
+No usage of bitronix.tm.utils.ExceptionUtils
 <P>
 <HR>
 
@@ -100,7 +100,7 @@ No usage of bitronix.tm.utils.Encoder
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -119,8 +119,8 @@ No usage of bitronix.tm.utils.Encoder
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/utils//class-useEncoder.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Encoder.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useExceptionUtils.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="ExceptionUtils.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.Encoder
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/InitializationException.html b/doc/api/bitronix/tm/utils/class-use/InitializationException.html
index b8b6621..19e7171 100644
--- a/doc/api/bitronix/tm/utils/class-use/InitializationException.html
+++ b/doc/api/bitronix/tm/utils/class-use/InitializationException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.InitializationException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.InitializationException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.InitializationException (Bitronix Transaction Ma
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.InitializationException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.InitializationException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.InitializationException
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/ManagementRegistrar.html b/doc/api/bitronix/tm/utils/class-use/ManagementRegistrar.html
index cee4f52..d553fc0 100644
--- a/doc/api/bitronix/tm/utils/class-use/ManagementRegistrar.html
+++ b/doc/api/bitronix/tm/utils/class-use/ManagementRegistrar.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.ManagementRegistrar (Bitronix Transaction Manage
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.ManagementRegistrar (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.ManagementRegistrar
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/gui/class-use/ResourcesPanel.html b/doc/api/bitronix/tm/utils/class-use/MonotonicClock.html
similarity index 80%
copy from doc/api/bitronix/tm/gui/class-use/ResourcesPanel.html
copy to doc/api/bitronix/tm/utils/class-use/MonotonicClock.html
index c915e15..013f660 100644
--- a/doc/api/bitronix/tm/gui/class-use/ResourcesPanel.html
+++ b/doc/api/bitronix/tm/utils/class-use/MonotonicClock.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.gui.ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.MonotonicClock (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.gui.ResourcesPanel (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.gui.ResourcesPanel (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.MonotonicClock (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -40,7 +40,7 @@ function windowTitle()
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/gui/ResourcesPanel.html" title="class in bitronix.tm.gui"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -59,8 +59,8 @@ function windowTitle()
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/gui//class-useResourcesPanel.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="ResourcesPanel.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useMonotonicClock.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="MonotonicClock.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -82,9 +82,9 @@ function windowTitle()
 <HR>
 <CENTER>
 <H2>
-<B>Uses of Class<br>bitronix.tm.gui.ResourcesPanel</B></H2>
+<B>Uses of Class<br>bitronix.tm.utils.MonotonicClock</B></H2>
 </CENTER>
-No usage of bitronix.tm.gui.ResourcesPanel
+No usage of bitronix.tm.utils.MonotonicClock
 <P>
 <HR>
 
@@ -100,7 +100,7 @@ No usage of bitronix.tm.gui.ResourcesPanel
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/gui/ResourcesPanel.html" title="class in bitronix.tm.gui"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -119,8 +119,8 @@ No usage of bitronix.tm.gui.ResourcesPanel
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/gui//class-useResourcesPanel.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="ResourcesPanel.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useMonotonicClock.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="MonotonicClock.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -140,6 +140,6 @@ No usage of bitronix.tm.gui.ResourcesPanel
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/PropertyException.html b/doc/api/bitronix/tm/utils/class-use/PropertyException.html
index 9f9fb14..be867d5 100644
--- a/doc/api/bitronix/tm/utils/class-use/PropertyException.html
+++ b/doc/api/bitronix/tm/utils/class-use/PropertyException.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.PropertyException (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.PropertyException (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.PropertyException (Bitronix Transaction Manager
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.PropertyException (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.PropertyException (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -205,6 +205,6 @@ Uses of <A HREF="../../../../bitronix/tm/utils/PropertyException.html" title="cl
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/PropertyUtils.html b/doc/api/bitronix/tm/utils/class-use/PropertyUtils.html
index 9fe2733..e7a0f45 100644
--- a/doc/api/bitronix/tm/utils/class-use/PropertyUtils.html
+++ b/doc/api/bitronix/tm/utils/class-use/PropertyUtils.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.PropertyUtils (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.PropertyUtils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.PropertyUtils (Bitronix Transaction Manager :: C
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.PropertyUtils (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.PropertyUtils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.PropertyUtils
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/Scheduler.html b/doc/api/bitronix/tm/utils/class-use/Scheduler.html
index 67848ca..edcd3b1 100644
--- a/doc/api/bitronix/tm/utils/class-use/Scheduler.html
+++ b/doc/api/bitronix/tm/utils/class-use/Scheduler.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.Scheduler (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.Scheduler (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.Scheduler (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.Scheduler (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.Scheduler (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -114,7 +114,7 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Scheduler.html" title="class in b
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A></CODE></FONT></TD>
+<CODE> <A HREF="../../../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/Synchronization.html?is-external=true" title="class or interface in javax.transaction">Synchronization</A>></CODE></FONT></TD>
 <TD><CODE><B>BitronixTransaction.</B><B><A HREF="../../../../bitronix/tm/BitronixTransaction.html#getSynchronizationScheduler()">getSynchronizationScheduler</A></B>()</CODE>
 
 <BR>
@@ -177,6 +177,6 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Scheduler.html" title="class in b
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/Service.html b/doc/api/bitronix/tm/utils/class-use/Service.html
index c5046d4..aab5e2c 100644
--- a/doc/api/bitronix/tm/utils/class-use/Service.html
+++ b/doc/api/bitronix/tm/utils/class-use/Service.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Interface bitronix.tm.utils.Service (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Interface bitronix.tm.utils.Service (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Interface bitronix.tm.utils.Service (Bitronix Transaction Manager :: Cor
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Interface bitronix.tm.utils.Service (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Interface bitronix.tm.utils.Service (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -120,6 +120,11 @@ Packages that use <A HREF="../../../../bitronix/tm/utils/Service.html" title="in
 <TD>
         Two-phase commit commands executors. </TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#bitronix.tm.utils"><B>bitronix.tm.utils</B></A></TD>
+<TD>
+        Misc utility classes. </TD>
+</TR>
 </TABLE>
  
 <P>
@@ -314,35 +319,59 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A></B></CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A></B></CODE>
 
 <BR>
-          Abstraction of the <code>java.util.concurrent</code>
- <a href="http://www.dcl.mathcs.emory.edu/util/backport-util-concurrent/">backport</a> implementation.</TD>
+          This implementation executes submitted jobs using a <code>java.util.concurrent</code> cached thread pool.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A></B></CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A></B></CODE>
 
 <BR>
-          Abstraction of the <code>java.util.concurrent</code> JDK 1.5+ implementation.</TD>
+          This implementation executes submitted jobs synchronously.</TD>
+</TR>
+</TABLE>
+ 
+<P>
+<A NAME="bitronix.tm.utils"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A> in <A HREF="../../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A></FONT></TH>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subinterfaces of <A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A> in <A HREF="../../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A></B></CODE>
+<CODE> interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></B></CODE>
 
 <BR>
-          This implementation spawns a new thread per request.</TD>
+          Exception analyzers are used to extract non-standard information from vendor exceptions.</TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A> that implement <A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE> class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A></B></CODE>
+<TD><CODE><B><A HREF="../../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils">DefaultExceptionAnalyzer</A></B></CODE>
 
 <BR>
-          This implementation executes submitted jobs synchronously.</TD>
+          Default implementation of <A HREF="../../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><CODE>ExceptionAnalyzer</CODE></A>.</TD>
 </TR>
 </TABLE>
  
@@ -401,6 +430,6 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Service.html" title="interface in
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/twopc/class-use/Rollbacker.html b/doc/api/bitronix/tm/utils/class-use/StackTrace.html
similarity index 81%
copy from doc/api/bitronix/tm/twopc/class-use/Rollbacker.html
copy to doc/api/bitronix/tm/utils/class-use/StackTrace.html
index f125cc8..cbacb84 100644
--- a/doc/api/bitronix/tm/twopc/class-use/Rollbacker.html
+++ b/doc/api/bitronix/tm/utils/class-use/StackTrace.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.twopc.Rollbacker (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.StackTrace (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.twopc.Rollbacker (Bitronix Transaction Manager :: Core
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.twopc.Rollbacker (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.StackTrace (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -40,7 +40,7 @@ function windowTitle()
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/twopc/Rollbacker.html" title="class in bitronix.tm.twopc"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -59,8 +59,8 @@ function windowTitle()
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/twopc//class-useRollbacker.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Rollbacker.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useStackTrace.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="StackTrace.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -82,9 +82,9 @@ function windowTitle()
 <HR>
 <CENTER>
 <H2>
-<B>Uses of Class<br>bitronix.tm.twopc.Rollbacker</B></H2>
+<B>Uses of Class<br>bitronix.tm.utils.StackTrace</B></H2>
 </CENTER>
-No usage of bitronix.tm.twopc.Rollbacker
+No usage of bitronix.tm.utils.StackTrace
 <P>
 <HR>
 
@@ -100,7 +100,7 @@ No usage of bitronix.tm.twopc.Rollbacker
   <TR ALIGN="center" VALIGN="top">
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/twopc/Rollbacker.html" title="class in bitronix.tm.twopc"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">  <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
@@ -119,8 +119,8 @@ No usage of bitronix.tm.twopc.Rollbacker
  PREV 
  NEXT</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?bitronix/tm/twopc//class-useRollbacker.html" target="_top"><B>FRAMES</B></A>   
- <A HREF="Rollbacker.html" target="_top"><B>NO FRAMES</B></A>   
+  <A HREF="../../../../index.html?bitronix/tm/utils//class-useStackTrace.html" target="_top"><B>FRAMES</B></A>   
+ <A HREF="StackTrace.html" target="_top"><B>NO FRAMES</B></A>   
  <SCRIPT type="text/javascript">
   <!--
   if(window==top) {
@@ -140,6 +140,6 @@ No usage of bitronix.tm.twopc.Rollbacker
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/Uid.html b/doc/api/bitronix/tm/utils/class-use/Uid.html
index bb72480..787ef3a 100644
--- a/doc/api/bitronix/tm/utils/class-use/Uid.html
+++ b/doc/api/bitronix/tm/utils/class-use/Uid.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.Uid (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.Uid (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.Uid (Bitronix Transaction Manager :: Core 2.1.2
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.Uid (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.Uid (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -233,6 +233,38 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A> that return types with arguments of type <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
+<TD><CODE><B>NullJournal.</B><B><A HREF="../../../../bitronix/tm/journal/NullJournal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
+
+<BR>
+           </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
+<TD><CODE><B>Journal.</B><B><A HREF="../../../../bitronix/tm/journal/Journal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
+
+<BR>
+          Collect all dangling records of the journal, ie: COMMITTING records with no corresponding COMMITTED record.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>></CODE></FONT></TD>
+<TD><CODE><B>DiskJournal.</B><B><A HREF="../../../../bitronix/tm/journal/DiskJournal.html#collectDanglingRecords()">collectDanglingRecords</A></B>()</CODE>
+
+<BR>
+          Collect all dangling records of the active log file.</TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A> with parameters of type <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -240,7 +272,7 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B>NullJournal.</B><B><A HREF="../../../../bitronix/tm/journal/NullJournal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)">log</A></B>(int status,
     <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
            </TD>
@@ -250,7 +282,7 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B>Journal.</B><B><A HREF="../../../../bitronix/tm/journal/Journal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)">log</A></B>(int status,
     <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
           Log a new transaction status to journal.</TD>
@@ -260,7 +292,7 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
 <CODE> void</CODE></FONT></TD>
 <TD><CODE><B>DiskJournal.</B><B><A HREF="../../../../bitronix/tm/journal/DiskJournal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)">log</A></B>(int status,
     <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
           Log a new transaction status to journal.</TD>
@@ -281,7 +313,7 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
                      int sequenceNumber,
                      int crc32,
                      <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames,
+                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames,
                      int endRecord)</CODE>
 
 <BR>
@@ -290,7 +322,7 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><CODE><B><A HREF="../../../../bitronix/tm/journal/TransactionLogRecord.html#TransactionLogRecord(int, bitronix.tm.utils.Uid, java.util.Set)">TransactionLogRecord</A></B>(int status,
                      <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid,
-                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A> uniqueNames)</CODE>
+                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> uniqueNames)</CODE>
 
 <BR>
           Create a new transaction log ready to be stored.</TD>
@@ -310,11 +342,35 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/resource/common/package-summary.html">bitronix.tm.resource.common</A> that return types with arguments of type <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>XAResourceHolder.</B><B><A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">getXAResourceHolderStatesForGtrid</A></B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</CODE>
+
+<BR>
+          Get all the <A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal"><CODE>XAResourceHolderState</CODE></A>s of this wrapped resource for a specific GTRID.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
+<TD><CODE><B>AbstractXAResourceHolder.</B><B><A HREF="../../../../bitronix/tm/resource/common/AbstractXAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">getXAResourceHolderStatesForGtrid</A></B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</CODE>
+
+<BR>
+           </TD>
+</TR>
+</TABLE>
+ 
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../bitronix/tm/resource/common/package-summary.html">bitronix.tm.resource.common</A> with parameters of type <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B>XAResourceHolder.</B><B><A HREF="../../../../bitronix/tm/resource/common/XAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">getXAResourceHolderStatesForGtrid</A></B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</CODE>
 
 <BR>
@@ -322,7 +378,7 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A></CODE></FONT></TD>
+<CODE> <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A><<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>,<A HREF="../../../../bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>></CODE></FONT></TD>
 <TD><CODE><B>AbstractXAResourceHolder.</B><B><A HREF="../../../../bitronix/tm/resource/common/AbstractXAResourceHolder.html#getXAResourceHolderStatesForGtrid(bitronix.tm.utils.Uid)">getXAResourceHolderStatesForGtrid</A></B>(<A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A> gtrid)</CODE>
 
 <BR>
@@ -426,6 +482,6 @@ Uses of <A HREF="../../../../bitronix/tm/utils/Uid.html" title="class in bitroni
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/class-use/UidGenerator.html b/doc/api/bitronix/tm/utils/class-use/UidGenerator.html
index c39a248..5c0f3cf 100644
--- a/doc/api/bitronix/tm/utils/class-use/UidGenerator.html
+++ b/doc/api/bitronix/tm/utils/class-use/UidGenerator.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Class bitronix.tm.utils.UidGenerator (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Class bitronix.tm.utils.UidGenerator (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Class bitronix.tm.utils.UidGenerator (Bitronix Transaction Manager :: Co
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class bitronix.tm.utils.UidGenerator (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Class bitronix.tm.utils.UidGenerator (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -140,6 +140,6 @@ No usage of bitronix.tm.utils.UidGenerator
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/package-frame.html b/doc/api/bitronix/tm/utils/package-frame.html
index f1281cc..2abe9c1 100644
--- a/doc/api/bitronix/tm/utils/package-frame.html
+++ b/doc/api/bitronix/tm/utils/package-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -24,6 +24,8 @@ bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.2 API)
 Interfaces</FONT> 
 <FONT CLASS="FrameItemFont">
 <BR>
+<A HREF="ExceptionAnalyzer.html" title="interface in bitronix.tm.utils" target="classFrame"><I>ExceptionAnalyzer</I></A>
+<BR>
 <A HREF="Service.html" title="interface in bitronix.tm.utils" target="classFrame"><I>Service</I></A></FONT></TD>
 </TR>
 </TABLE>
@@ -43,14 +45,22 @@ Classes</FONT> 
 <BR>
 <A HREF="Decoder.html" title="class in bitronix.tm.utils" target="classFrame">Decoder</A>
 <BR>
+<A HREF="DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils" target="classFrame">DefaultExceptionAnalyzer</A>
+<BR>
 <A HREF="Encoder.html" title="class in bitronix.tm.utils" target="classFrame">Encoder</A>
 <BR>
+<A HREF="ExceptionUtils.html" title="class in bitronix.tm.utils" target="classFrame">ExceptionUtils</A>
+<BR>
 <A HREF="ManagementRegistrar.html" title="class in bitronix.tm.utils" target="classFrame">ManagementRegistrar</A>
 <BR>
+<A HREF="MonotonicClock.html" title="class in bitronix.tm.utils" target="classFrame">MonotonicClock</A>
+<BR>
 <A HREF="PropertyUtils.html" title="class in bitronix.tm.utils" target="classFrame">PropertyUtils</A>
 <BR>
 <A HREF="Scheduler.html" title="class in bitronix.tm.utils" target="classFrame">Scheduler</A>
 <BR>
+<A HREF="StackTrace.html" title="class in bitronix.tm.utils" target="classFrame">StackTrace</A>
+<BR>
 <A HREF="Uid.html" title="class in bitronix.tm.utils" target="classFrame">Uid</A>
 <BR>
 <A HREF="UidGenerator.html" title="class in bitronix.tm.utils" target="classFrame">UidGenerator</A></FONT></TD>
diff --git a/doc/api/bitronix/tm/utils/package-summary.html b/doc/api/bitronix/tm/utils/package-summary.html
index c805cfc..4423f9d 100644
--- a/doc/api/bitronix/tm/utils/package-summary.html
+++ b/doc/api/bitronix/tm/utils/package-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -97,6 +97,10 @@ Package bitronix.tm.utils
 <B>Interface Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A></B></TD>
+<TD>Exception analyzers are used to extract non-standard information from vendor exceptions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A></B></TD>
 <TD>All internal services implement this interface.</TD>
 </TR>
@@ -127,22 +131,38 @@ Package bitronix.tm.utils
 <TD>Constant to string decoder.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils">DefaultExceptionAnalyzer</A></B></TD>
+<TD>Default implementation of <A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><CODE>ExceptionAnalyzer</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils">Encoder</A></B></TD>
 <TD>Number to byte array and byte array to number encoder.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils">ExceptionUtils</A></B></TD>
+<TD>Exception related utilities.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils">ManagementRegistrar</A></B></TD>
 <TD>Simple JMX facade.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils">MonotonicClock</A></B></TD>
+<TD>A System.currentTimeMillis() replacement which guarantees monotonic time increment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/PropertyUtils.html" title="class in bitronix.tm.utils">PropertyUtils</A></B></TD>
 <TD>Smart reflection helper.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A></B></TD>
+<TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler<T></A></B></TD>
 <TD>Positional object container.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils">StackTrace</A></B></TD>
+<TD>A dummy <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A> used to build a call stack.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A></B></TD>
 <TD>A constant UID byte array container optimized for use with hashed collections.</TD>
 </TR>
@@ -239,6 +259,6 @@ Package bitronix.tm.utils Description
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/package-tree.html b/doc/api/bitronix/tm/utils/package-tree.html
index 6edad0e..fa6a8b2 100644
--- a/doc/api/bitronix/tm/utils/package-tree.html
+++ b/doc/api/bitronix/tm/utils/package-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-bitronix.tm.utils Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+bitronix.tm.utils Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ bitronix.tm.utils Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 AP
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="bitronix.tm.utils Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="bitronix.tm.utils Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -93,20 +93,24 @@ Class Hierarchy
 </H2>
 <UL>
 <LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
-<LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/ClassLoaderUtils.html" title="class in bitronix.tm.utils"><B>ClassLoaderUtils</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/CollectionUtils.html" title="class in bitronix.tm.utils"><B>CollectionUtils</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/CryptoEngine.html" title="class in bitronix.tm.utils"><B>CryptoEngine</B></A><LI TYPE="circle">bitronix.tm.u [...]
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/ClassLoaderUtils.html" title="class in bitronix.tm.utils"><B>ClassLoaderUtils</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/CollectionUtils.html" title="class in bitronix.tm.utils"><B>CollectionUtils</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/CryptoEngine.html" title="class in bitronix.tm.utils"><B>CryptoEngine</B></A><LI TYPE="circle">bitronix.tm.u [...]
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>Encoder</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><B>ExceptionUtils</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>ManagementRegistrar</B></A><LI TYPE="circle">bitronix.tm.utils.< [...]
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><B>Throwable</B></A> (implements java.io.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>)
 <UL>
 <LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><B>Exception</B></A><UL>
 <LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang"><B>RuntimeException</B></A><UL>
 <LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/InitializationException.html" title="class in bitronix.tm.utils"><B>InitializationException</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/PropertyException.html" title="class in bitronix.tm.utils"><B>PropertyException</B></A></UL>
 </UL>
-</UL>
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><B>StackTrace</B></A></UL>
 <LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils"><B>Uid</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/UidGenerator.html" title="class in bitronix.tm.utils"><B>UidGenerator</B></A></UL>
 </UL>
 <H2>
 Interface Hierarchy
 </H2>
 <UL>
-<LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils"><B>Service</B></A></UL>
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils"><B>Service</B></A><UL>
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="../../../bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><B>ExceptionAnalyzer</B></A></UL>
+</UL>
 <HR>
 
 
@@ -161,6 +165,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/bitronix/tm/utils/package-use.html b/doc/api/bitronix/tm/utils/package-use.html
index 5e8e950..25f252d 100644
--- a/doc/api/bitronix/tm/utils/package-use.html
+++ b/doc/api/bitronix/tm/utils/package-use.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Uses of Package bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.2 API)
+Uses of Package bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Uses of Package bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.2 AP
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Uses of Package bitronix.tm.utils (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -145,6 +145,12 @@ Packages that use <A HREF="../../../bitronix/tm/utils/package-summary.html">bitr
 Classes in <A HREF="../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A> used by <A HREF="../../../bitronix/tm/package-summary.html">bitronix.tm</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../bitronix/tm/utils/class-use/ExceptionAnalyzer.html#bitronix.tm"><B>ExceptionAnalyzer</B></A></B>
+
+<BR>
+          Exception analyzers are used to extract non-standard information from vendor exceptions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><B><A HREF="../../../bitronix/tm/utils/class-use/Scheduler.html#bitronix.tm"><B>Scheduler</B></A></B>
 
 <BR>
@@ -283,12 +289,24 @@ Classes in <A HREF="../../../bitronix/tm/utils/package-summary.html">bitronix.tm
 Classes in <A HREF="../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A> used by <A HREF="../../../bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../bitronix/tm/utils/class-use/ExceptionAnalyzer.html#bitronix.tm.utils"><B>ExceptionAnalyzer</B></A></B>
+
+<BR>
+          Exception analyzers are used to extract non-standard information from vendor exceptions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><B><A HREF="../../../bitronix/tm/utils/class-use/PropertyException.html#bitronix.tm.utils"><B>PropertyException</B></A></B>
 
 <BR>
           Thrown by <A HREF="../../../bitronix/tm/utils/PropertyUtils.html" title="class in bitronix.tm.utils"><CODE>PropertyUtils</CODE></A> when some reflection error occurs.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../bitronix/tm/utils/class-use/Service.html#bitronix.tm.utils"><B>Service</B></A></B>
+
+<BR>
+          All internal services implement this interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD><B><A HREF="../../../bitronix/tm/utils/class-use/Uid.html#bitronix.tm.utils"><B>Uid</B></A></B>
 
 <BR>
@@ -351,6 +369,6 @@ Classes in <A HREF="../../../bitronix/tm/utils/package-summary.html">bitronix.tm
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/constant-values.html b/doc/api/constant-values.html
index 4771da6..63e44d4 100644
--- a/doc/api/constant-values.html
+++ b/doc/api/constant-values.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Constant Field Values (Bitronix Transaction Manager :: Core 2.1.2 API)
+Constant Field Values (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Constant Field Values (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Constant Field Values (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Constant Field Values (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -314,36 +314,6 @@ bitronix.tm.*</FONT></TH>
 <P>
 
 <P>
-
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="3">bitronix.tm.utils.<A HREF="bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="bitronix.tm.utils.Scheduler.ALWAYS_FIRST_POSITION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public static final int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="bitronix/tm/utils/Scheduler.html#ALWAYS_FIRST_POSITION">ALWAYS_FIRST_POSITION</A></CODE></TD>
-<TD ALIGN="right"><CODE>-2147483648</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="bitronix.tm.utils.Scheduler.ALWAYS_LAST_POSITION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public static final int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="bitronix/tm/utils/Scheduler.html#ALWAYS_LAST_POSITION">ALWAYS_LAST_POSITION</A></CODE></TD>
-<TD ALIGN="right"><CODE>2147483647</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="bitronix.tm.utils.Scheduler.DEFAULT_POSITION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public static final int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="bitronix/tm/utils/Scheduler.html#DEFAULT_POSITION">DEFAULT_POSITION</A></CODE></TD>
-<TD ALIGN="right"><CODE>0</CODE></TD>
-</TR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<P>
 <HR>
 
 
@@ -398,6 +368,6 @@ bitronix.tm.*</FONT></TH>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/deprecated-list.html b/doc/api/deprecated-list.html
index 5e09013..d8e212d 100644
--- a/doc/api/deprecated-list.html
+++ b/doc/api/deprecated-list.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Deprecated List (Bitronix Transaction Manager :: Core 2.1.2 API)
+Deprecated List (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Deprecated List (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Deprecated List (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Deprecated List (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -162,6 +162,6 @@ function windowTitle()
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/help-doc.html b/doc/api/help-doc.html
index e2f9baf..0511876 100644
--- a/doc/api/help-doc.html
+++ b/doc/api/help-doc.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-API Help (Bitronix Transaction Manager :: Core 2.1.2 API)
+API Help (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ API Help (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="API Help (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="API Help (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -219,6 +219,6 @@ This help file applies to API documentation generated using the standard doclet.
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/index-all.html b/doc/api/index-all.html
index 0202b19..d6e3120 100644
--- a/doc/api/index-all.html
+++ b/doc/api/index-all.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Index (Bitronix Transaction Manager :: Core 2.1.2 API)
+Index (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Index (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Index (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Index (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -101,7 +101,7 @@ Method in class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/RawTransactionTableMo
 <DT><A HREF="./bitronix/tm/gui/TransactionTableModel.html#acceptLog(bitronix.tm.journal.TransactionLogRecord)"><B>acceptLog(TransactionLogRecord)</B></A> - 
 Method in class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/TransactionTableModel.html" title="class in bitronix.tm.gui">TransactionTableModel</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/Scheduler.html#add(java.lang.Object, int)"><B>add(Object, int)</B></A> - 
+<DT><A HREF="./bitronix/tm/utils/Scheduler.html#add(T, java.lang.Integer)"><B>add(T, Integer)</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html#addConnectionCustomizer(bitronix.tm.resource.jdbc.ConnectionCustomizer)"><B>addConnectionCustomizer(ConnectionCustomizer)</B></A> - 
@@ -140,24 +140,17 @@ Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/comm
 <DT><A HREF="./bitronix/tm/utils/Scheduler.html#ALWAYS_FIRST_POSITION"><B>ALWAYS_FIRST_POSITION</B></A> - 
 Static variable in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/Scheduler.html#ALWAYS_FIRST_POSITION_KEY"><B>ALWAYS_FIRST_POSITION_KEY</B></A> - 
-Static variable in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/utils/Scheduler.html#ALWAYS_LAST_POSITION"><B>ALWAYS_LAST_POSITION</B></A> - 
 Static variable in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/Scheduler.html#ALWAYS_LAST_POSITION_KEY"><B>ALWAYS_LAST_POSITION_KEY</B></A> - 
-Static variable in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
+<DT><A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>AsyncExecutor</B></A> - Class in <A HREF="./bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A><DD>This implementation executes submitted jobs using a <code>java.util.concurrent</code> cached thread pool.<DT><A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html#AsyncExecutor()"><B>AsyncExecutor()</B></A> - 
+Constructor for class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A>
 <DD> 
 </DL>
 <HR>
 <A NAME="_B_"><!-- --></A><H2>
 <B>B</B></H2>
 <DL>
-<DT><A HREF="./bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>BackportConcurrentExecutor</B></A> - Class in <A HREF="./bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A><DD>Abstraction of the <code>java.util.concurrent</code>
- <a href="http://www.dcl.mathcs.emory.edu/util/backport-util-concurrent/">backport</a> implementation.<DT><A HREF="./bitronix/tm/twopc/executor/BackportConcurrentExecutor.html#BackportConcurrentExecutor()"><B>BackportConcurrentExecutor()</B></A> - 
-Constructor for class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">BackportConcurrentExecutor</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc"><B>BaseProxyHandlerClass</B></A> - Class in <A HREF="./bitronix/tm/resource/jdbc/package-summary.html">bitronix.tm.resource.jdbc</A><DD>Base class for Proxy InvocationHandlers.<DT><A HREF="./bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html#BaseProxyHandlerClass()"><B>BaseProxyHandlerClass()</B></A> - 
 Constructor for class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc">BaseProxyHandlerClass</A>
 <DD> 
@@ -366,6 +359,9 @@ Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/J
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#close()"><B>close()</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#close()"><B>close()</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#close()"><B>close()</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
 <DD> 
@@ -417,13 +413,13 @@ Method in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/NullJournal.h
 <DT><A HREF="./bitronix/tm/utils/CollectionUtils.html" title="class in bitronix.tm.utils"><B>CollectionUtils</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><CODE>Collection</CODE></A> helper functions.<DT><A HREF="./bitronix/tm/utils/CollectionUtils.html#CollectionUtils()"><B>CollectionUtils()</B></A> - 
 Constructor for class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/CollectionUtils.html" title="class in bitronix.tm.utils">CollectionUtils</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html#collectNotInterestedResources(java.util.List, java.util.List)"><B>collectNotInterestedResources(List, List)</B></A> - 
+<DT><A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html#collectNotInterestedResources(java.util.List, java.util.List)"><B>collectNotInterestedResources(List<XAResourceHolderState>, List<XAResourceHolderState>)</B></A> - 
 Static method in class bitronix.tm.twopc.<A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/Decoder.html#collectResourcesNames(java.util.Collection)"><B>collectResourcesNames(Collection)</B></A> - 
+<DT><A HREF="./bitronix/tm/utils/Decoder.html#collectResourcesNames(java.util.Collection)"><B>collectResourcesNames(Collection<XAResourceHolderState>)</B></A> - 
 Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils">Decoder</A>
 <DD>Create a String representation of a list of <A HREF="./bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s.
-<DT><A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html#collectResourcesUniqueNames(java.util.List)"><B>collectResourcesUniqueNames(List)</B></A> - 
+<DT><A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html#collectResourcesUniqueNames(java.util.List)"><B>collectResourcesUniqueNames(List<XAResourceHolderState>)</B></A> - 
 Static method in class bitronix.tm.twopc.<A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/internal/XAResourceManager.html#collectUniqueNames()"><B>collectUniqueNames()</B></A> - 
@@ -456,31 +452,28 @@ Method in class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms
 <DT><A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html#commit()"><B>commit()</B></A> - 
 Method in class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html" title="class in bitronix.tm.resource.jms.lrc">LrcXASession</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/twopc/Committer.html#commit(bitronix.tm.BitronixTransaction, java.util.List)"><B>commit(BitronixTransaction, List)</B></A> - 
+<DT><A HREF="./bitronix/tm/twopc/Committer.html#commit(bitronix.tm.BitronixTransaction, java.util.List)"><B>commit(BitronixTransaction, List<XAResourceHolderState>)</B></A> - 
 Method in class bitronix.tm.twopc.<A HREF="./bitronix/tm/twopc/Committer.html" title="class in bitronix.tm.twopc">Committer</A>
 <DD>Execute phase 2 commit.
 <DT><A HREF="./bitronix/tm/twopc/Committer.html" title="class in bitronix.tm.twopc"><B>Committer</B></A> - Class in <A HREF="./bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A><DD>Phase 2 Commit logic engine.<DT><A HREF="./bitronix/tm/twopc/Committer.html#Committer(bitronix.tm.twopc.executor.Executor)"><B>Committer(Executor)</B></A> - 
 Constructor for class bitronix.tm.twopc.<A HREF="./bitronix/tm/twopc/Committer.html" title="class in bitronix.tm.twopc">Committer</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/timer/Task.html#compareTo(bitronix.tm.timer.Task)"><B>compareTo(Task)</B></A> - 
+Method in class bitronix.tm.timer.<A HREF="./bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/jndi/BitronixContext.html#composeName(javax.naming.Name, javax.naming.Name)"><B>composeName(Name, Name)</B></A> - 
 Method in class bitronix.tm.jndi.<A HREF="./bitronix/tm/jndi/BitronixContext.html" title="class in bitronix.tm.jndi">BitronixContext</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/jndi/BitronixContext.html#composeName(java.lang.String, java.lang.String)"><B>composeName(String, String)</B></A> - 
 Method in class bitronix.tm.jndi.<A HREF="./bitronix/tm/jndi/BitronixContext.html" title="class in bitronix.tm.jndi">BitronixContext</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>ConcurrentExecutor</B></A> - Class in <A HREF="./bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A><DD>Abstraction of the <code>java.util.concurrent</code> JDK 1.5+ implementation.<DT><A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html#ConcurrentExecutor()"><B>ConcurrentExecutor()</B></A> - 
-Constructor for class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>
-<DD> 
-<DT><A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html#ConcurrentExecutor(java.lang.String[])"><B>ConcurrentExecutor(String[])</B></A> - 
-Constructor for class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm"><B>Configuration</B></A> - Class in <A HREF="./bitronix/tm/package-summary.html">bitronix.tm</A><DD>Configuration repository of the transaction manager.<DT><A HREF="./bitronix/tm/Configuration.html#Configuration()"><B>Configuration()</B></A> - 
 Constructor for class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/ConnectionCustomizer.html" title="interface in bitronix.tm.resource.jdbc"><B>ConnectionCustomizer</B></A> - Interface in <A HREF="./bitronix/tm/resource/jdbc/package-summary.html">bitronix.tm.resource.jdbc</A><DD>Listener of connections created by a PoolingDataSource.<DT><A HREF="./bitronix/tm/gui/Console.html" title="class in bitronix.tm.gui"><B>Console</B></A> - Class in <A HREF="./bitronix/tm/gui/package-summary.html">bitronix.tm.gui</A><DD><DT [...]
 Constructor for class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/Console.html" title="class in bitronix.tm.gui">Console</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/CollectionUtils.html#containsByIdentity(java.util.Collection, java.lang.Object)"><B>containsByIdentity(Collection, Object)</B></A> - 
+<DT><A HREF="./bitronix/tm/utils/CollectionUtils.html#containsByIdentity(java.util.Collection, java.lang.Object)"><B>containsByIdentity(Collection<?>, Object)</B></A> - 
 Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/CollectionUtils.html" title="class in bitronix.tm.utils">CollectionUtils</A>
 <DD>Check if a collection contains a specific object by searching for it by identity
  instead of by using equals/hashcode.
@@ -706,6 +699,9 @@ Constructor for class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/CryptoEngin
 <DT><A HREF="./bitronix/tm/journal/TransactionLogHeader.html#CURRENT_POSITION_HEADER"><B>CURRENT_POSITION_HEADER</B></A> - 
 Static variable in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/TransactionLogHeader.html" title="class in bitronix.tm.journal">TransactionLogHeader</A>
 <DD>Position of the current log position in the header.
+<DT><A HREF="./bitronix/tm/utils/MonotonicClock.html#currentTimeMillis()"><B>currentTimeMillis()</B></A> - 
+Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils">MonotonicClock</A>
+<DD>Return the current time in milliseconds, guaranteeing monotonic time increment.
 <DT><A HREF="./bitronix/tm/resource/common/TransactionContextHelper.html#currentTransaction()"><B>currentTransaction()</B></A> - 
 Static method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/TransactionContextHelper.html" title="class in bitronix.tm.resource.common">TransactionContextHelper</A>
 <DD>Get the transaction running on the current thead context.
@@ -747,8 +743,8 @@ Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/CryptoEngi
 <DT><A HREF="./bitronix/tm/utils/Scheduler.html#DEFAULT_POSITION"><B>DEFAULT_POSITION</B></A> - 
 Static variable in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/Scheduler.html#DEFAULT_POSITION_KEY"><B>DEFAULT_POSITION_KEY</B></A> - 
-Static variable in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
+<DT><A HREF="./bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils"><B>DefaultExceptionAnalyzer</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD>Default implementation of <A HREF="./bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><CODE>ExceptionAnalyzer</CODE></A>.<DT><A HREF="./bitronix/tm/utils/DefaultExceptionAnalyzer.html#DefaultExceptionAnalyzer()"><B>DefaultExceptionAnalyze [...]
+Constructor for class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils">DefaultExceptionAnalyzer</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/resource/common/DeferredReleaseSynchronization.html" title="class in bitronix.tm.resource.common"><B>DeferredReleaseSynchronization</B></A> - Class in <A HREF="./bitronix/tm/resource/common/package-summary.html">bitronix.tm.resource.common</A><DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/Synchronization.html?is-external=true" title="class or interface in javax.transaction"><CODE>Synchronization</CODE></A> used to release a <A HREF="./bi [...]
 Constructor for class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/DeferredReleaseSynchronization.html" title="class in bitronix.tm.resource.common">DeferredReleaseSynchronization</A>
@@ -793,7 +789,7 @@ Constructor for class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/DuplicatedGtrid
 <A NAME="_E_"><!-- --></A><H2>
 <B>E</B></H2>
 <DL>
-<DT><A HREF="./bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html" title="class in bitronix.tm.resource.ehcache"><B>EhCacheXAResourceHolder</B></A> - Class in <A HREF="./bitronix/tm/resource/ehcache/package-summary.html">bitronix.tm.resource.ehcache</A><DD>EHCache implementation of BTM's XAResourceHolder.<DT><A HREF="./bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html#EhCacheXAResourceHolder(javax.transaction.xa.XAResource, bitronix.tm.resource.common.ResourceBean)"><B>EhC [...]
+<DT><A HREF="./bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html" title="class in bitronix.tm.resource.ehcache"><B>EhCacheXAResourceHolder</B></A> - Class in <A HREF="./bitronix/tm/resource/ehcache/package-summary.html">bitronix.tm.resource.ehcache</A><DD>Ehcache implementation of BTM's XAResourceHolder.<DT><A HREF="./bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html#EhCacheXAResourceHolder(javax.transaction.xa.XAResource, bitronix.tm.resource.common.ResourceBean)"><B>EhC [...]
 Constructor for class bitronix.tm.resource.ehcache.<A HREF="./bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.html" title="class in bitronix.tm.resource.ehcache">EhCacheXAResourceHolder</A>
 <DD>Create a new EhCacheXAResourceHolder for a particular XAResource
 <DT><A HREF="./bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html" title="class in bitronix.tm.resource.ehcache"><B>EhCacheXAResourceProducer</B></A> - Class in <A HREF="./bitronix/tm/resource/ehcache/package-summary.html">bitronix.tm.resource.ehcache</A><DD>EHCache implementation of BTM's XAResourceProducer.<DT><A HREF="./bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>Encoder</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.t [...]
@@ -870,6 +866,12 @@ Method in class bitronix.tm.recovery.<A HREF="./bitronix/tm/recovery/DanglingTra
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle</A>
 <DD>Overridden equals() that takes all PreparedStatement attributes into
  account.
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcUncachedPreparedStatementHandle</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/lrc/LrcXAConnection.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.lrc.<A HREF="./bitronix/tm/resource/jdbc/lrc/LrcXAConnection.html" title="class in bitronix.tm.resource.jdbc.lrc">LrcXAConnection</A>
 <DD> 
@@ -879,7 +881,7 @@ Method in class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/Mes
 <DT><A HREF="./bitronix/tm/utils/Uid.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/timer/PoolShrinkingTask.html#execute()"><B>execute()</B></A> - 
+<DT><A HREF="./bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><B>ExceptionAnalyzer</B></A> - Interface in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD>Exception analyzers are used to extract non-standard information from vendor exceptions.<DT><A HREF="./bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><B>ExceptionUtils</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm [...]
 Method in class bitronix.tm.timer.<A HREF="./bitronix/tm/timer/PoolShrinkingTask.html" title="class in bitronix.tm.timer">PoolShrinkingTask</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/timer/RecoveryTask.html#execute()"><B>execute()</B></A> - 
@@ -897,7 +899,22 @@ Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor
 <DT><A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html#executePhase(bitronix.tm.internal.XAResourceManager, boolean)"><B>executePhase(XAResourceManager, boolean)</B></A> - 
 Method in class bitronix.tm.twopc.<A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html" title="class in bitronix.tm.twopc">AbstractPhaseEngine</A>
 <DD>Execute the phase.
-<DT><A HREF="./bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>Executor</B></A> - Interface in <A HREF="./bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A><DD>Thread pool interface required by the two-phase commit logic.<DT><A HREF="./bitronix/tm/utils/Uid.html#extractSequence()"><B>extractSequence()</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#executeQuery(java.lang.String)"><B>executeQuery(String)</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#executeQuery(java.lang.String)"><B>executeQuery(String)</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcUncachedPreparedStatementHandle</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#executeQuery()"><B>executeQuery()</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcUncachedPreparedStatementHandle</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>Executor</B></A> - Interface in <A HREF="./bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A><DD>Thread pool interface required by the two-phase commit logic.<DT><A HREF="./bitronix/tm/utils/DefaultExceptionAnalyzer.html#extractExtraXAExceptionDetails(javax.transaction.xa.XAException)"><B>extractExtraXAExceptionDetails(XAException)</B></A> - 
+Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils">DefaultExceptionAnalyzer</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/utils/ExceptionAnalyzer.html#extractExtraXAExceptionDetails(javax.transaction.xa.XAException)"><B>extractExtraXAExceptionDetails(XAException)</B></A> - 
+Method in interface bitronix.tm.utils.<A HREF="./bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils">ExceptionAnalyzer</A>
+<DD>Extract information from a vendor's XAException that isn't available through standard APIs.
+<DT><A HREF="./bitronix/tm/utils/Uid.html#extractSequence()"><B>extractSequence()</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Uid.html" title="class in bitronix.tm.utils">Uid</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/utils/Uid.html#extractServerId()"><B>extractServerId()</B></A> - 
@@ -1036,10 +1053,10 @@ Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixXid.html" title="clas
 <DT><A HREF="./bitronix/tm/BitronixXid.html#getBranchQualifierUid()"><B>getBranchQualifierUid()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixXid.html" title="class in bitronix.tm">BitronixXid</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/Scheduler.html#getByNaturalOrderForPosition(java.lang.Object)"><B>getByNaturalOrderForPosition(Object)</B></A> - 
+<DT><A HREF="./bitronix/tm/utils/Scheduler.html#getByNaturalOrderForPosition(java.lang.Integer)"><B>getByNaturalOrderForPosition(Integer)</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/Scheduler.html#getByReverseOrderForPosition(java.lang.Object)"><B>getByReverseOrderForPosition(Object)</B></A> - 
+<DT><A HREF="./bitronix/tm/utils/Scheduler.html#getByReverseOrderForPosition(java.lang.Integer)"><B>getByReverseOrderForPosition(Integer)</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcPooledConnection.html#getCachedStatement(bitronix.tm.resource.jdbc.JdbcPreparedStatementHandle)"><B>getCachedStatement(JdbcPreparedStatementHandle)</B></A> - 
@@ -1197,6 +1214,12 @@ Method in interface bitronix.tm.<A HREF="./bitronix/tm/BitronixTransactionMBean.
 <DT><A HREF="./bitronix/tm/jndi/BitronixContext.html#getEnvironment()"><B>getEnvironment()</B></A> - 
 Method in class bitronix.tm.jndi.<A HREF="./bitronix/tm/jndi/BitronixContext.html" title="class in bitronix.tm.jndi">BitronixContext</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/Configuration.html#getExceptionAnalyzer()"><B>getExceptionAnalyzer()</B></A> - 
+Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
+<DD>Get the exception analyzer implementation.
+<DT><A HREF="./bitronix/tm/TransactionManagerServices.html#getExceptionAnalyzer()"><B>getExceptionAnalyzer()</B></A> - 
+Static method in class bitronix.tm.<A HREF="./bitronix/tm/TransactionManagerServices.html" title="class in bitronix.tm">TransactionManagerServices</A>
+<DD>Create the exception analyzer.
 <DT><A HREF="./bitronix/tm/resource/jms/JmsConnectionHandle.html#getExceptionListener()"><B>getExceptionListener()</B></A> - 
 Method in class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/JmsConnectionHandle.html" title="class in bitronix.tm.resource.jms">JmsConnectionHandle</A>
 <DD> 
@@ -1233,6 +1256,12 @@ Method in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/TransactionLo
 <DT><A HREF="./bitronix/tm/twopc/executor/Job.html#getFuture()"><B>getFuture()</B></A> - 
 Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor">Job</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#getGeneratedKeys()"><B>getGeneratedKeys()</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#getGeneratedKeys()"><B>getGeneratedKeys()</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcUncachedPreparedStatementHandle</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/BitronixXid.html#getGlobalTransactionId()"><B>getGlobalTransactionId()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixXid.html" title="class in bitronix.tm">BitronixXid</A>
 <DD>Get the GTRID of the XID.
@@ -1421,12 +1450,9 @@ Method in class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/XAResourceM
 <DT><A HREF="./bitronix/tm/utils/Scheduler.html#getNaturalOrderPositions()"><B>getNaturalOrderPositions()</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/internal/XAResourceManager.html#getNaturalOrderResourcesForPosition(java.lang.Object)"><B>getNaturalOrderResourcesForPosition(Object)</B></A> - 
+<DT><A HREF="./bitronix/tm/internal/XAResourceManager.html#getNaturalOrderResourcesForPosition(java.lang.Integer)"><B>getNaturalOrderResourcesForPosition(Integer)</B></A> - 
 Method in class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/XAResourceManager.html" title="class in bitronix.tm.internal">XAResourceManager</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/UidGenerator.html#getNextSequenceNumber()"><B>getNextSequenceNumber()</B></A> - 
-Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/UidGenerator.html" title="class in bitronix.tm.utils">UidGenerator</A>
-<DD>Atomically generate general-purpose sequence numbers starting at 0.
 <DT><A HREF="./bitronix/tm/resource/common/XAPool.html#getNextShrinkDate()"><B>getNextShrinkDate()</B></A> - 
 Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/XAPool.html" title="class in bitronix.tm.resource.common">XAPool</A>
 <DD> 
@@ -1445,15 +1471,15 @@ Method in class bitronix.tm.timer.<A HREF="./bitronix/tm/timer/Task.html" title=
 <DT><A HREF="./bitronix/tm/timer/TransactionTimeoutTask.html#getObject()"><B>getObject()</B></A> - 
 Method in class bitronix.tm.timer.<A HREF="./bitronix/tm/timer/TransactionTimeoutTask.html" title="class in bitronix.tm.timer">TransactionTimeoutTask</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/BitronixTransactionManagerObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)"><B>getObjectInstance(Object, Name, Context, Hashtable)</B></A> - 
+<DT><A HREF="./bitronix/tm/BitronixTransactionManagerObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)"><B>getObjectInstance(Object, Name, Context, Hashtable<?, ?>)</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixTransactionManagerObjectFactory.html" title="class in bitronix.tm">BitronixTransactionManagerObjectFactory</A>
 <DD>Since there can be only one transaction manager per VM instance, this method always returns a reference
  to the unique BitronixTransactionManager object.
-<DT><A HREF="./bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)"><B>getObjectInstance(Object, Name, Context, Hashtable)</B></A> - 
+<DT><A HREF="./bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)"><B>getObjectInstance(Object, Name, Context, Hashtable<?, ?>)</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.html" title="class in bitronix.tm">BitronixTransactionSynchronizationRegistryObjectFactory</A>
 <DD>Since there can be only one synchronization registry per VM instance, this method always returns a reference
  to the unique BitronixTransactionSynchronizationRegistry object.
-<DT><A HREF="./bitronix/tm/resource/ResourceObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)"><B>getObjectInstance(Object, Name, Context, Hashtable)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/ResourceObjectFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)"><B>getObjectInstance(Object, Name, Context, Hashtable<?, ?>)</B></A> - 
 Method in class bitronix.tm.resource.<A HREF="./bitronix/tm/resource/ResourceObjectFactory.html" title="class in bitronix.tm.resource">ResourceObjectFactory</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/BitronixTransactionManager.html#getOldestInFlightTransactionTimestamp()"><B>getOldestInFlightTransactionTimestamp()</B></A> - 
@@ -1516,6 +1542,9 @@ Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/J
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#getProxiedDelegate()"><B>getProxiedDelegate()</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#getProxiedDelegate()"><B>getProxiedDelegate()</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#getProxiedDelegate()"><B>getProxiedDelegate()</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
 <DD> 
@@ -1585,6 +1614,9 @@ Static method in class bitronix.tm.<A HREF="./bitronix/tm/TransactionManagerServ
 <DT><A HREF="./bitronix/tm/BitronixTransaction.html#getResourceManager()"><B>getResourceManager()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/internal/ThreadContext.html#getResources()"><B>getResources()</B></A> - 
+Method in class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/ThreadContext.html" title="class in bitronix.tm.internal">ThreadContext</A>
+<DD>Get this context's resources, in the JTA 1.1 TransactionSynchronizationRegistry sense.
 <DT><A HREF="./bitronix/tm/resource/ResourceLoader.html#getResources()"><B>getResources()</B></A> - 
 Method in class bitronix.tm.resource.<A HREF="./bitronix/tm/resource/ResourceLoader.html" title="class in bitronix.tm.resource">ResourceLoader</A>
 <DD>Get a Map with the configured uniqueName as key and <A HREF="./bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceProducer</CODE></A> as value.
@@ -1597,13 +1629,19 @@ Method in exception bitronix.tm.twopc.<A HREF="./bitronix/tm/twopc/PhaseExceptio
 <DT><A HREF="./bitronix/tm/resource/ResourceRegistrar.html#getResourcesUniqueNames()"><B>getResourcesUniqueNames()</B></A> - 
 Static method in class bitronix.tm.resource.<A HREF="./bitronix/tm/resource/ResourceRegistrar.html" title="class in bitronix.tm.resource">ResourceRegistrar</A>
 <DD>Get all <A HREF="./bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceProducer</CODE></A>s unique names.
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#getResultSet()"><B>getResultSet()</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#getResultSet()"><B>getResultSet()</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcUncachedPreparedStatementHandle</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/internal/XAResourceManager.html#getReverseOrderPositions()"><B>getReverseOrderPositions()</B></A> - 
 Method in class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/XAResourceManager.html" title="class in bitronix.tm.internal">XAResourceManager</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/utils/Scheduler.html#getReverseOrderPositions()"><B>getReverseOrderPositions()</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/internal/XAResourceManager.html#getReverseOrderResourcesForPosition(java.lang.Object)"><B>getReverseOrderResourcesForPosition(Object)</B></A> - 
+<DT><A HREF="./bitronix/tm/internal/XAResourceManager.html#getReverseOrderResourcesForPosition(java.lang.Integer)"><B>getReverseOrderResourcesForPosition(Integer)</B></A> - 
 Method in class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/XAResourceManager.html" title="class in bitronix.tm.internal">XAResourceManager</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/BitronixTransactionSynchronizationRegistry.html#getRollbackOnly()"><B>getRollbackOnly()</B></A> - 
@@ -1660,6 +1698,9 @@ Method in class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms
 <DT><A HREF="./bitronix/tm/resource/common/ResourceBean.html#getShareTransactionConnections()"><B>getShareTransactionConnections()</B></A> - 
 Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/ResourceBean.html" title="class in bitronix.tm.resource.common">ResourceBean</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/utils/ExceptionUtils.html#getStackTrace(java.lang.Throwable)"><B>getStackTrace(Throwable)</B></A> - 
+Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils">ExceptionUtils</A>
+<DD>Returns the stack trace of the specified <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A>.
 <DT><A HREF="./bitronix/tm/BitronixTransaction.html#getStartDate()"><B>getStartDate()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A>
 <DD> 
@@ -1693,6 +1734,9 @@ Method in class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/Jms
 <DT><A HREF="./bitronix/tm/resource/jms/JmsPooledConnectionMBean.html#getStateDescription()"><B>getStateDescription()</B></A> - 
 Method in interface bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/JmsPooledConnectionMBean.html" title="interface in bitronix.tm.resource.jms">JmsPooledConnectionMBean</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#getStatement()"><B>getStatement()</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/BitronixTransaction.html#getStatus()"><B>getStatus()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A>
 <DD> 
@@ -1903,9 +1947,6 @@ Method in class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/XAResourceH
 <DT><A HREF="./bitronix/tm/resource/common/RecoveryXAResourceHolder.html#getXAResourceHolders()"><B>getXAResourceHolders()</B></A> - 
 Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/RecoveryXAResourceHolder.html" title="class in bitronix.tm.resource.common">RecoveryXAResourceHolder</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/common/XAPool.html#getXAResourceHolders()"><B>getXAResourceHolders()</B></A> - 
-Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/XAPool.html" title="class in bitronix.tm.resource.common">XAPool</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/resource/common/XAStatefulHolder.html#getXAResourceHolders()"><B>getXAResourceHolders()</B></A> - 
 Method in interface bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/XAStatefulHolder.html" title="interface in bitronix.tm.resource.common">XAStatefulHolder</A>
 <DD>Get the list of <A HREF="./bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><CODE>XAResourceHolder</CODE></A>s created by this
@@ -2037,9 +2078,12 @@ Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/B
 <DT><A HREF="./bitronix/tm/Configuration.html#isAllowMultipleLrc()"><B>isAllowMultipleLrc()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
 <DD>Should the transaction manager allow enlistment of multiple LRC resources in a single transaction?
+ This is highly unsafe but could be useful for testing.
 <DT><A HREF="./bitronix/tm/Configuration.html#isAsynchronous2Pc()"><B>isAsynchronous2Pc()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
-<DD>Should two phase commit be executed asynchronously?
+<DD>Should two phase commit be executed asynchronously? Asynchronous two phase commit can improve performance when
+ there are many resources enlisted in transactions but is more CPU intensive due to the dynamic thread spawning
+ requirements.
 <DT><A HREF="./bitronix/tm/gui/PendingTransactionTableModel.html#isCellEditable(int, int)"><B>isCellEditable(int, int)</B></A> - 
 Method in class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/PendingTransactionTableModel.html" title="class in bitronix.tm.gui">PendingTransactionTableModel</A>
 <DD> 
@@ -2060,7 +2104,12 @@ Method in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/TransactionLo
 <DD>Recalculate the CRC32 value of this record (using <A HREF="./bitronix/tm/journal/TransactionLogRecord.html#calculateCrc32()"><CODE>TransactionLogRecord.calculateCrc32()</CODE></A>) and compare it with the stored value.
 <DT><A HREF="./bitronix/tm/Configuration.html#isCurrentNodeOnlyRecovery()"><B>isCurrentNodeOnlyRecovery()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
-<DD>Should the recovery process <b>not</b> recover XIDs generated with another JVM unique ID?
+<DD>Should the recovery process <b>not</b> recover XIDs generated with another JVM unique ID? Setting this property to true
+ is useful in clustered environments where multiple instances of BTM are running on different nodes.
+<DT><A HREF="./bitronix/tm/Configuration.html#isDebugZeroResourceTransaction()"><B>isDebugZeroResourceTransaction()</B></A> - 
+Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
+<DD>Should creation and commit call stacks of transactions executed without a single enlisted tracked and logged
+ or not?
 <DT><A HREF="./bitronix/tm/resource/common/ResourceBean.html#isDisabled()"><B>isDisabled()</B></A> - 
 Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/ResourceBean.html" title="class in bitronix.tm.resource.common">ResourceBean</A>
 <DD> 
@@ -2073,15 +2122,12 @@ Method in interface bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms
 <DT><A HREF="./bitronix/tm/Configuration.html#isDisableJmx()"><B>isDisableJmx()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
 <DD>Should JMX Mbeans not be registered even if a JMX MBean server is detected?
-<DT><A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html#isDone(java.lang.Object)"><B>isDone(Object)</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>
+<DT><A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html#isDone(java.lang.Object)"><B>isDone(Object)</B></A> - 
+Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/twopc/executor/Executor.html#isDone(java.lang.Object)"><B>isDone(Object)</B></A> - 
 Method in interface bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>
 <DD>Check if the thread pool has terminated the execution of the job represented by a future.
-<DT><A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#isDone(java.lang.Object)"><B>isDone(Object)</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html#isDone(java.lang.Object)"><B>isDone(Object)</B></A> - 
 Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A>
 <DD> 
@@ -2114,13 +2160,15 @@ Method in interface bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms
 <DD> 
 <DT><A HREF="./bitronix/tm/Configuration.html#isFilterLogStatus()"><B>isFilterLogStatus()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
-<DD>Should only mandatory logs be written?
+<DD>Should only mandatory logs be written? Enabling this parameter lowers space usage of the fragments but makes
+ debugging more complex.
 <DT><A HREF="./bitronix/tm/Configuration.html#isForceBatchingEnabled()"><B>isForceBatchingEnabled()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
-<DD>Are disk forces batched?
+<DD>Are disk forces batched? Disabling batching can seriously lower the transaction manager's throughput.
 <DT><A HREF="./bitronix/tm/Configuration.html#isForcedWriteEnabled()"><B>isForcedWriteEnabled()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
-<DD>Are logs forced to disk?
+<DD>Are logs forced to disk?  Do not set to false in production since without disk force, integrity is not
+ guaranteed.
 <DT><A HREF="./bitronix/tm/gui/ResourcesTreeModel.html#isLeaf(java.lang.Object)"><B>isLeaf(Object)</B></A> - 
 Method in class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/ResourcesTreeModel.html" title="class in bitronix.tm.gui">ResourcesTreeModel</A>
 <DD> 
@@ -2176,37 +2224,29 @@ Method in exception bitronix.tm.internal.<A HREF="./bitronix/tm/internal/Bitroni
 <DT><A HREF="./bitronix/tm/internal/BitronixXAException.html#isUnilateralRollback(javax.transaction.xa.XAException)"><B>isUnilateralRollback(XAException)</B></A> - 
 Static method in exception bitronix.tm.internal.<A HREF="./bitronix/tm/internal/BitronixXAException.html" title="class in bitronix.tm.internal">BitronixXAException</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html#isUsable()"><B>isUsable()</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>
-<DD> 
-<DT><A HREF="./bitronix/tm/twopc/executor/Executor.html#isUsable()"><B>isUsable()</B></A> - 
-Method in interface bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>
-<DD>Check if the thread pool can be used.
-<DT><A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#isUsable()"><B>isUsable()</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A>
-<DD> 
-<DT><A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html#isUsable()"><B>isUsable()</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/Configuration.html#isWarnAboutZeroResourceTransaction()"><B>isWarnAboutZeroResourceTransaction()</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
-<DD>Should transactions executed without a single enlisted resource result in a warning or not?
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class)</B></A> - 
+<DD>Should transactions executed without a single enlisted resource result in a warning or not? Most of the time
+ transactions executed with no enlisted resource reflect a bug or a mis-configuration somewhere.
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class<?>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcCallableStatementHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class<?>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcConnectionHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class<?>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class<?>)</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class<?>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class<?>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcUncachedPreparedStatementHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html#isWrapperFor(java.lang.Class)"><B>isWrapperFor(Class<?>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html" title="class in bitronix.tm.resource.jdbc">PoolingDataSource</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/utils/Scheduler.html#iterator()"><B>iterator()</B></A> - 
@@ -2244,6 +2284,9 @@ Constructor for class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#JdbcPreparedStatementHandle(java.lang.String, java.lang.String[])"><B>JdbcPreparedStatementHandle(String, String[])</B></A> - 
 Constructor for class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcResultSetHandle</B></A> - Class in <A HREF="./bitronix/tm/resource/jdbc/package-summary.html">bitronix.tm.resource.jdbc</A><DD>ResultSet <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql"><CODE>ResultSet</CODE></A> wrapper.<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#JdbcRes [...]
+Constructor for class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcStatementHandle</B></A> - Class in <A HREF="./bitronix/tm/resource/jdbc/package-summary.html">bitronix.tm.resource.jdbc</A><DD>Statement <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html?is-external=true" title="class or interface in java.sql"><CODE>Statement</CODE></A> wrapper.<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#JdbcSta [...]
 Constructor for class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
 <DD> 
@@ -2284,13 +2327,13 @@ Method in class bitronix.tm.jndi.<A HREF="./bitronix/tm/jndi/BitronixContext.htm
 <DT><A HREF="./bitronix/tm/utils/ClassLoaderUtils.html#loadClass(java.lang.String)"><B>loadClass(String)</B></A> - 
 Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/ClassLoaderUtils.html" title="class in bitronix.tm.utils">ClassLoaderUtils</A>
 <DD>Load a class by name.
-<DT><A HREF="./bitronix/tm/journal/DiskJournal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)"><B>log(int, Uid, Set)</B></A> - 
+<DT><A HREF="./bitronix/tm/journal/DiskJournal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)"><B>log(int, Uid, Set<String>)</B></A> - 
 Method in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/DiskJournal.html" title="class in bitronix.tm.journal">DiskJournal</A>
 <DD>Log a new transaction status to journal.
-<DT><A HREF="./bitronix/tm/journal/Journal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)"><B>log(int, Uid, Set)</B></A> - 
+<DT><A HREF="./bitronix/tm/journal/Journal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)"><B>log(int, Uid, Set<String>)</B></A> - 
 Method in interface bitronix.tm.journal.<A HREF="./bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A>
 <DD>Log a new transaction status to journal.
-<DT><A HREF="./bitronix/tm/journal/NullJournal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)"><B>log(int, Uid, Set)</B></A> - 
+<DT><A HREF="./bitronix/tm/journal/NullJournal.html#log(int, bitronix.tm.utils.Uid, java.util.Set)"><B>log(int, Uid, Set<String>)</B></A> - 
 Method in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/NullJournal.html" title="class in bitronix.tm.journal">NullJournal</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/twopc/AbstractPhaseEngine.html#logFailedResources(bitronix.tm.twopc.PhaseException)"><B>logFailedResources(PhaseException)</B></A> - 
@@ -2335,7 +2378,7 @@ Constructor for class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resour
 <DT><A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html" title="class in bitronix.tm.resource.jms.lrc"><B>LrcXASession</B></A> - Class in <A HREF="./bitronix/tm/resource/jms/lrc/package-summary.html">bitronix.tm.resource.jms.lrc</A><DD>XASession implementation for a non-XA JMS resource emulating XA with Last Resource Commit.<DT><A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html#LrcXASession(javax.jms.Session)"><B>LrcXASession(Session)</B></A> - 
 Constructor for class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html" title="class in bitronix.tm.resource.jms.lrc">LrcXASession</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/LruEvictionListener.html" title="interface in bitronix.tm.resource.jdbc"><B>LruEvictionListener</B></A> - Interface in <A HREF="./bitronix/tm/resource/jdbc/package-summary.html">bitronix.tm.resource.jdbc</A><DD>Eviction listener interface for <A HREF="./bitronix/tm/resource/jdbc/LruStatementCache.html" title="class in bitronix.tm.resource.jdbc"><CODE>LruStatementCache</CODE></A>.<DT><A HREF="./bitronix/tm/resource/jdbc/LruStatementCache.html" titl [...]
+<DT><A HREF="./bitronix/tm/resource/jdbc/LruEvictionListener.html" title="interface in bitronix.tm.resource.jdbc"><B>LruEvictionListener</B></A> - Interface in <A HREF="./bitronix/tm/resource/jdbc/package-summary.html">bitronix.tm.resource.jdbc</A><DD>Eviction listener interface for <A HREF="./bitronix/tm/resource/jdbc/LruStatementCache.html" title="class in bitronix.tm.resource.jdbc"><CODE>LruStatementCache</CODE></A>.<DT><A HREF="./bitronix/tm/resource/jdbc/LruStatementCache.html" titl [...]
  support implementation.<DT><A HREF="./bitronix/tm/resource/jdbc/LruStatementCache.html#LruStatementCache(int)"><B>LruStatementCache(int)</B></A> - 
 Constructor for class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/LruStatementCache.html" title="class in bitronix.tm.resource.jdbc">LruStatementCache</A>
 <DD> 
@@ -2353,10 +2396,7 @@ Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/CryptoEngi
 <DT><A HREF="./bitronix/tm/utils/ManagementRegistrar.html#makeValidName(java.lang.String)"><B>makeValidName(String)</B></A> - 
 Static method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils">ManagementRegistrar</A>
 <DD>Replace characters considered illegal in a management object's name.
-<DT><A HREF="./bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>ManagementRegistrar</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD>Simple JMX facade.<DT><A HREF="./bitronix/tm/utils/ManagementRegistrar.html#ManagementRegistrar()"><B>ManagementRegistrar()</B></A> - 
-Constructor for class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils">ManagementRegistrar</A>
-<DD> 
-<DT><A HREF="./bitronix/tm/resource/jms/MessageConsumerWrapper.html" title="class in bitronix.tm.resource.jms"><B>MessageConsumerWrapper</B></A> - Class in <A HREF="./bitronix/tm/resource/jms/package-summary.html">bitronix.tm.resource.jms</A><DD><CODE>MessageConsumer</CODE> wrapper that adds XA enlistment semantics.<DT><A HREF="./bitronix/tm/resource/jms/MessageConsumerWrapper.html#MessageConsumerWrapper(javax.jms.MessageConsumer, bitronix.tm.resource.jms.DualSessionWrapper, bitronix.tm. [...]
+<DT><A HREF="./bitronix/tm/utils/ManagementRegistrar.html" title="class in bitronix.tm.utils"><B>ManagementRegistrar</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD>Simple JMX facade.<DT><A HREF="./bitronix/tm/resource/jms/MessageConsumerWrapper.html" title="class in bitronix.tm.resource.jms"><B>MessageConsumerWrapper</B></A> - Class in <A HREF="./bitronix/tm/resource/jms/package-summary.html">bitronix.tm.resource.jms</A><DD><CODE>MessageCon [...]
 Constructor for class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/MessageConsumerWrapper.html" title="class in bitronix.tm.resource.jms">MessageConsumerWrapper</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/resource/jms/MessageProducerConsumerKey.html" title="class in bitronix.tm.resource.jms"><B>MessageProducerConsumerKey</B></A> - Class in <A HREF="./bitronix/tm/resource/jms/package-summary.html">bitronix.tm.resource.jms</A><DD>JMS destination wrapper optimized for use with hashed collections where it is the key and a
@@ -2372,6 +2412,9 @@ Constructor for class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/j
 <DT><A HREF="./bitronix/tm/resource/jms/MessageProducerWrapper.html" title="class in bitronix.tm.resource.jms"><B>MessageProducerWrapper</B></A> - Class in <A HREF="./bitronix/tm/resource/jms/package-summary.html">bitronix.tm.resource.jms</A><DD><CODE>MessageProducer</CODE> wrapper that adds XA enlistment semantics.<DT><A HREF="./bitronix/tm/resource/jms/MessageProducerWrapper.html#MessageProducerWrapper(javax.jms.MessageProducer, bitronix.tm.resource.jms.DualSessionWrapper, bitronix.tm. [...]
 Constructor for class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/MessageProducerWrapper.html" title="class in bitronix.tm.resource.jms">MessageProducerWrapper</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils"><B>MonotonicClock</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD>A System.currentTimeMillis() replacement which guarantees monotonic time increment.<DT><A HREF="./bitronix/tm/utils/MonotonicClock.html#MonotonicClock()"><B>MonotonicClock()</B></A> - 
+Constructor for class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils">MonotonicClock</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/gui/TransactionTableMouseListener.html#mouseClicked(java.awt.event.MouseEvent)"><B>mouseClicked(MouseEvent)</B></A> - 
 Method in class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/TransactionTableMouseListener.html" title="class in bitronix.tm.gui">TransactionTableMouseListener</A>
 <DD> 
@@ -2420,7 +2463,7 @@ Method in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/NullJournal.h
 <DT><A HREF="./bitronix/tm/gui/PendingTransactionTableModel.html" title="class in bitronix.tm.gui"><B>PendingTransactionTableModel</B></A> - Class in <A HREF="./bitronix/tm/gui/package-summary.html">bitronix.tm.gui</A><DD><DT><A HREF="./bitronix/tm/gui/PendingTransactionTableModel.html#PendingTransactionTableModel(java.io.File)"><B>PendingTransactionTableModel(File)</B></A> - 
 Constructor for class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/PendingTransactionTableModel.html" title="class in bitronix.tm.gui">PendingTransactionTableModel</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/twopc/PhaseException.html" title="class in bitronix.tm.twopc"><B>PhaseException</B></A> - Exception in <A HREF="./bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A><DD>Thrown when a phase exection has thrown one or more exception(s).<DT><A HREF="./bitronix/tm/twopc/PhaseException.html#PhaseException(java.util.List, java.util.List)"><B>PhaseException(List, List)</B></A> - 
+<DT><A HREF="./bitronix/tm/twopc/PhaseException.html" title="class in bitronix.tm.twopc"><B>PhaseException</B></A> - Exception in <A HREF="./bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A><DD>Thrown when a phase exection has thrown one or more exception(s).<DT><A HREF="./bitronix/tm/twopc/PhaseException.html#PhaseException(java.util.List, java.util.List)"><B>PhaseException(List<Exception>, List<XAResourceHolderState>)</B></A> - 
 Constructor for exception bitronix.tm.twopc.<A HREF="./bitronix/tm/twopc/PhaseException.html" title="class in bitronix.tm.twopc">PhaseException</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/gui/Console.html#pickCurrentLogFile(java.io.File, java.io.File)"><B>pickCurrentLogFile(File, File)</B></A> - 
@@ -2612,7 +2655,7 @@ Method in class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/Jms
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#releaseSavepoint(java.sql.Savepoint)"><B>releaseSavepoint(Savepoint)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcConnectionHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/utils/Scheduler.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
+<DT><A HREF="./bitronix/tm/utils/Scheduler.html#remove(T)"><B>remove(T)</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html#removeConnectionCustomizer(bitronix.tm.resource.jdbc.ConnectionCustomizer)"><B>removeConnectionCustomizer(ConnectionCustomizer)</B></A> - 
@@ -2642,9 +2685,6 @@ Method in class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/RawTransactionTableMo
 <DT><A HREF="./bitronix/tm/gui/ResourcesTreeModel.html#removeTreeModelListener(javax.swing.event.TreeModelListener)"><B>removeTreeModelListener(TreeModelListener)</B></A> - 
 Method in class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/ResourcesTreeModel.html" title="class in bitronix.tm.gui">ResourcesTreeModel</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/journal/TransactionLogRecord.html#removeUniqueNames(java.util.Collection)"><B>removeUniqueNames(Collection)</B></A> - 
-Method in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/resource/common/AbstractXAResourceHolder.html#removeXAResourceHolderState(bitronix.tm.BitronixXid)"><B>removeXAResourceHolderState(BitronixXid)</B></A> - 
 Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/AbstractXAResourceHolder.html" title="class in bitronix.tm.resource.common">AbstractXAResourceHolder</A>
 <DD> 
@@ -2745,7 +2785,7 @@ Method in class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms
 <DT><A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html#rollback()"><B>rollback()</B></A> - 
 Method in class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html" title="class in bitronix.tm.resource.jms.lrc">LrcXASession</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/twopc/Rollbacker.html#rollback(bitronix.tm.BitronixTransaction, java.util.List)"><B>rollback(BitronixTransaction, List)</B></A> - 
+<DT><A HREF="./bitronix/tm/twopc/Rollbacker.html#rollback(bitronix.tm.BitronixTransaction, java.util.List)"><B>rollback(BitronixTransaction, List<XAResourceHolderState>)</B></A> - 
 Method in class bitronix.tm.twopc.<A HREF="./bitronix/tm/twopc/Rollbacker.html" title="class in bitronix.tm.twopc">Rollbacker</A>
 <DD>Rollback the current XA transaction.
 <DT><A HREF="./bitronix/tm/twopc/Rollbacker.html" title="class in bitronix.tm.twopc"><B>Rollbacker</B></A> - Class in <A HREF="./bitronix/tm/twopc/package-summary.html">bitronix.tm.twopc</A><DD>Phase 1 & 2 Rollback logic engine.<DT><A HREF="./bitronix/tm/twopc/Rollbacker.html#Rollbacker(bitronix.tm.twopc.executor.Executor)"><B>Rollbacker(Executor)</B></A> - 
@@ -2783,7 +2823,7 @@ Variable in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/execut
 <DT><A HREF="./bitronix/tm/timer/TaskScheduler.html#schedulePoolShrinking(bitronix.tm.resource.common.XAPool)"><B>schedulePoolShrinking(XAPool)</B></A> - 
 Method in class bitronix.tm.timer.<A HREF="./bitronix/tm/timer/TaskScheduler.html" title="class in bitronix.tm.timer">TaskScheduler</A>
 <DD>Schedule a task that will tell a XA pool to close idle connections.
-<DT><A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils"><B>Scheduler</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD>Positional object container.<DT><A HREF="./bitronix/tm/utils/Scheduler.html#Scheduler()"><B>Scheduler()</B></A> - 
+<DT><A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils"><B>Scheduler</B></A><<A HREF="./bitronix/tm/utils/Scheduler.html" title="type parameter in Scheduler">T</A>> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD>Positional object container.<DT><A HREF="./bitronix/tm/utils/Scheduler.html#Scheduler()"><B>Scheduler()</B></A> - 
 Constructor for class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/timer/TaskScheduler.html#scheduleRecovery(bitronix.tm.recovery.Recoverer, java.util.Date)"><B>scheduleRecovery(Recoverer, Date)</B></A> - 
@@ -2875,6 +2915,10 @@ Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="cl
 <DT><A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html#setCursorHoldability(java.lang.String)"><B>setCursorHoldability(String)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html" title="class in bitronix.tm.resource.jdbc">PoolingDataSource</A>
 <DD>Set the default cursor holdability for connections.
+<DT><A HREF="./bitronix/tm/Configuration.html#setDebugZeroResourceTransaction(boolean)"><B>setDebugZeroResourceTransaction(boolean)</B></A> - 
+Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
+<DD>Set if creation and commit call stacks of transactions executed without a single enlisted resource should be
+ tracked and logged.
 <DT><A HREF="./bitronix/tm/Configuration.html#setDefaultTransactionTimeout(int)"><B>setDefaultTransactionTimeout(int)</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
 <DD>Set the default transaction timeout in seconds.
@@ -2916,15 +2960,15 @@ Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/comm
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html" title="class in bitronix.tm.resource.jdbc">PoolingDataSource</A>
 <DD>When set and the underlying JDBC driver supports JDBC 4 isValid(), a Connection.isValid() call
  is performed to test the connection before handing it to the caller.
+<DT><A HREF="./bitronix/tm/Configuration.html#setExceptionAnalyzer(java.lang.String)"><B>setExceptionAnalyzer(String)</B></A> - 
+Method in class bitronix.tm.<A HREF="./bitronix/tm/Configuration.html" title="class in bitronix.tm">Configuration</A>
+<DD>Set the exception analyzer implementation.
 <DT><A HREF="./bitronix/tm/resource/jms/JmsConnectionHandle.html#setExceptionListener(javax.jms.ExceptionListener)"><B>setExceptionListener(ExceptionListener)</B></A> - 
 Method in class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/JmsConnectionHandle.html" title="class in bitronix.tm.resource.jms">JmsConnectionHandle</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/resource/jms/lrc/LrcXAConnection.html#setExceptionListener(javax.jms.ExceptionListener)"><B>setExceptionListener(ExceptionListener)</B></A> - 
 Method in class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms/lrc/LrcXAConnection.html" title="class in bitronix.tm.resource.jms.lrc">LrcXAConnection</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/timer/Task.html#setExecutionTime(java.util.Date)"><B>setExecutionTime(Date)</B></A> - 
-Method in class bitronix.tm.timer.<A HREF="./bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer">Task</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/resource/jms/JndiXAConnectionFactory.html#setExtraJndiProperties(java.util.Properties)"><B>setExtraJndiProperties(Properties)</B></A> - 
 Method in class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/JndiXAConnectionFactory.html" title="class in bitronix.tm.resource.jms">JndiXAConnectionFactory</A>
 <DD>Set the extra JNDI environment properties added the the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/InitialContext.html?is-external=true" title="class or interface in javax.naming"><CODE>InitialContext</CODE></A>'s environment upon creation.
@@ -3116,7 +3160,7 @@ Method in interface bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/
 <DT><A HREF="./bitronix/tm/BitronixTransaction.html#setStatus(int)"><B>setStatus(int)</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/BitronixTransaction.html#setStatus(int, java.util.Set)"><B>setStatus(int, Set)</B></A> - 
+<DT><A HREF="./bitronix/tm/BitronixTransaction.html#setStatus(int, java.util.Set)"><B>setStatus(int, Set<String>)</B></A> - 
 Method in class bitronix.tm.<A HREF="./bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm">BitronixTransaction</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/resource/jms/PoolingConnectionFactory.html#setTestConnections(boolean)"><B>setTestConnections(boolean)</B></A> - 
@@ -3215,24 +3259,21 @@ Method in class bitronix.tm.resource.<A HREF="./bitronix/tm/resource/ResourceLoa
 <DT><A HREF="./bitronix/tm/timer/TaskScheduler.html#shutdown()"><B>shutdown()</B></A> - 
 Method in class bitronix.tm.timer.<A HREF="./bitronix/tm/timer/TaskScheduler.html" title="class in bitronix.tm.timer">TaskScheduler</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html#shutdown()"><B>shutdown()</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>
+<DT><A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html#shutdown()"><B>shutdown()</B></A> - 
+Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/twopc/executor/Executor.html#shutdown()"><B>shutdown()</B></A> - 
 Method in interface bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>
 <DD>Shutdown the thead pool.
-<DT><A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#shutdown()"><B>shutdown()</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html#shutdown()"><B>shutdown()</B></A> - 
 Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/utils/DefaultExceptionAnalyzer.html#shutdown()"><B>shutdown()</B></A> - 
+Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/DefaultExceptionAnalyzer.html" title="class in bitronix.tm.utils">DefaultExceptionAnalyzer</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/utils/Service.html#shutdown()"><B>shutdown()</B></A> - 
 Method in interface bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A>
 <DD>Shutdown the service and free all held resources.
-<DT><A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>SimpleAsyncExecutor</B></A> - Class in <A HREF="./bitronix/tm/twopc/executor/package-summary.html">bitronix.tm.twopc.executor</A><DD>This implementation spawns a new thread per request.<DT><A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#SimpleAsyncExecutor()"><B>SimpleAsyncExecutor()</B></A> - 
-Constructor for class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/internal/XAResourceManager.html#size()"><B>size()</B></A> - 
 Method in class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/XAResourceManager.html" title="class in bitronix.tm.internal">XAResourceManager</A>
 <DD>Get the enlisted resources count.
@@ -3242,6 +3283,9 @@ Method in class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/DiskForceWait
 <DT><A HREF="./bitronix/tm/utils/Scheduler.html#size()"><B>size()</B></A> - 
 Method in class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils">Scheduler</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><B>StackTrace</B></A> - Class in <A HREF="./bitronix/tm/utils/package-summary.html">bitronix.tm.utils</A><DD>A dummy <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><CODE>Throwable</CODE></A> used to build a call stack.<DT><A HREF="./bitronix/tm/utils/StackTrace.html#StackTrace()"><B>StackTrace()</B></A> - 
+Constructor for class bitronix.tm.utils.<A HREF="./bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils">StackTrace</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/internal/XAResourceHolderState.html#start(int)"><B>start(int)</B></A> - 
 Method in class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/XAResourceHolderState.html" title="class in bitronix.tm.internal">XAResourceHolderState</A>
 <DD> 
@@ -3323,15 +3367,12 @@ Method in class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/Jms
 <DT><A HREF="./bitronix/tm/resource/jms/lrc/LrcXAConnection.html#stop()"><B>stop()</B></A> - 
 Method in class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms/lrc/LrcXAConnection.html" title="class in bitronix.tm.resource.jms.lrc">LrcXAConnection</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html#submit(bitronix.tm.twopc.executor.Job)"><B>submit(Job)</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>
+<DT><A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html#submit(bitronix.tm.twopc.executor.Job)"><B>submit(Job)</B></A> - 
+Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/twopc/executor/Executor.html#submit(bitronix.tm.twopc.executor.Job)"><B>submit(Job)</B></A> - 
 Method in interface bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>
 <DD>Submit a job to be executed by the thread pool.
-<DT><A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#submit(bitronix.tm.twopc.executor.Job)"><B>submit(Job)</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html#submit(bitronix.tm.twopc.executor.Job)"><B>submit(Job)</B></A> - 
 Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A>
 <DD> 
@@ -3424,6 +3465,9 @@ Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/comm
 <DT><A HREF="./bitronix/tm/resource/common/XAPool.html#toString()"><B>toString()</B></A> - 
 Method in class bitronix.tm.resource.common.<A HREF="./bitronix/tm/resource/common/XAPool.html" title="class in bitronix.tm.resource.common">XAPool</A>
 <DD> 
+<DT><A HREF="./bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html#toString()"><B>toString()</B></A> - 
+Method in class bitronix.tm.resource.ehcache.<A HREF="./bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.html" title="class in bitronix.tm.resource.ehcache">EhCacheXAResourceProducer</A>
+<DD> 
 <DT><A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#toString()"><B>toString()</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcConnectionHandle</A>
 <DD> 
@@ -3514,16 +3558,16 @@ Constructor for class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/Transac
 <DT><A HREF="./bitronix/tm/gui/TransactionLogDialog.html" title="class in bitronix.tm.gui"><B>TransactionLogDialog</B></A> - Class in <A HREF="./bitronix/tm/gui/package-summary.html">bitronix.tm.gui</A><DD><DT><A HREF="./bitronix/tm/gui/TransactionLogDialog.html#TransactionLogDialog(javax.swing.JFrame, bitronix.tm.journal.TransactionLogRecord)"><B>TransactionLogDialog(JFrame, TransactionLogRecord)</B></A> - 
 Constructor for class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/TransactionLogDialog.html" title="class in bitronix.tm.gui">TransactionLogDialog</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/journal/TransactionLogHeader.html" title="class in bitronix.tm.journal"><B>TransactionLogHeader</B></A> - Class in <A HREF="./bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A><DD>Used to control a log file's header.<DT><A HREF="./bitronix/tm/journal/TransactionLogHeader.html#TransactionLogHeader(java.io.RandomAccessFile, long)"><B>TransactionLogHeader(RandomAccessFile, long)</B></A> - 
+<DT><A HREF="./bitronix/tm/journal/TransactionLogHeader.html" title="class in bitronix.tm.journal"><B>TransactionLogHeader</B></A> - Class in <A HREF="./bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A><DD>Used to control a log file's header.<DT><A HREF="./bitronix/tm/journal/TransactionLogHeader.html#TransactionLogHeader(java.nio.channels.FileChannel, long)"><B>TransactionLogHeader(FileChannel, long)</B></A> - 
 Constructor for class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/TransactionLogHeader.html" title="class in bitronix.tm.journal">TransactionLogHeader</A>
 <DD>TransactionLogHeader are used to control headers of the specified RandomAccessFile.
 <DT><A HREF="./bitronix/tm/gui/TransactionLogHeaderPanel.html" title="class in bitronix.tm.gui"><B>TransactionLogHeaderPanel</B></A> - Class in <A HREF="./bitronix/tm/gui/package-summary.html">bitronix.tm.gui</A><DD><DT><A HREF="./bitronix/tm/gui/TransactionLogHeaderPanel.html#TransactionLogHeaderPanel()"><B>TransactionLogHeaderPanel()</B></A> - 
 Constructor for class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/TransactionLogHeaderPanel.html" title="class in bitronix.tm.gui">TransactionLogHeaderPanel</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal"><B>TransactionLogRecord</B></A> - Class in <A HREF="./bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A><DD>Representation of a transaction log record on disk.<DT><A HREF="./bitronix/tm/journal/TransactionLogRecord.html#TransactionLogRecord(int, int, int, long, int, int, bitronix.tm.utils.Uid, java.util.Set, int)"><B>TransactionLogRecord(int, int, int, long, int, int, Uid, Se [...]
+<DT><A HREF="./bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal"><B>TransactionLogRecord</B></A> - Class in <A HREF="./bitronix/tm/journal/package-summary.html">bitronix.tm.journal</A><DD>Representation of a transaction log record on disk.<DT><A HREF="./bitronix/tm/journal/TransactionLogRecord.html#TransactionLogRecord(int, int, int, long, int, int, bitronix.tm.utils.Uid, java.util.Set, int)"><B>TransactionLogRecord(int, int, int, long, int, int, Uid, Se [...]
 Constructor for class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>
 <DD>Use this constructor when restoring a log from the disk.
-<DT><A HREF="./bitronix/tm/journal/TransactionLogRecord.html#TransactionLogRecord(int, bitronix.tm.utils.Uid, java.util.Set)"><B>TransactionLogRecord(int, Uid, Set)</B></A> - 
+<DT><A HREF="./bitronix/tm/journal/TransactionLogRecord.html#TransactionLogRecord(int, bitronix.tm.utils.Uid, java.util.Set)"><B>TransactionLogRecord(int, Uid, Set<String>)</B></A> - 
 Constructor for class bitronix.tm.journal.<A HREF="./bitronix/tm/journal/TransactionLogRecord.html" title="class in bitronix.tm.journal">TransactionLogRecord</A>
 <DD>Create a new transaction log ready to be stored.
 <DT><A HREF="./bitronix/tm/TransactionManagerServices.html" title="class in bitronix.tm"><B>TransactionManagerServices</B></A> - Class in <A HREF="./bitronix/tm/package-summary.html">bitronix.tm</A><DD>Container for all BTM services.<DT><A HREF="./bitronix/tm/TransactionManagerServices.html#TransactionManagerServices()"><B>TransactionManagerServices()</B></A> - 
@@ -3538,12 +3582,6 @@ Constructor for class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/TransactionTabl
 <DT><A HREF="./bitronix/tm/gui/TransactionTableMouseListener.html" title="class in bitronix.tm.gui"><B>TransactionTableMouseListener</B></A> - Class in <A HREF="./bitronix/tm/gui/package-summary.html">bitronix.tm.gui</A><DD><DT><A HREF="./bitronix/tm/gui/TransactionTableMouseListener.html#TransactionTableMouseListener(javax.swing.JFrame, javax.swing.JTable)"><B>TransactionTableMouseListener(JFrame, JTable)</B></A> - 
 Constructor for class bitronix.tm.gui.<A HREF="./bitronix/tm/gui/TransactionTableMouseListener.html" title="class in bitronix.tm.gui">TransactionTableMouseListener</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><B>TransactionTimeoutException</B></A> - Exception in <A HREF="./bitronix/tm/internal/package-summary.html">bitronix.tm.internal</A><DD>Thrown when a transaction times out.<DT><A HREF="./bitronix/tm/internal/TransactionTimeoutException.html#TransactionTimeoutException(java.lang.String)"><B>TransactionTimeoutException(String)</B></A> - 
-Constructor for exception bitronix.tm.internal.<A HREF="./bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal">TransactionTimeoutException</A>
-<DD> 
-<DT><A HREF="./bitronix/tm/internal/TransactionTimeoutException.html#TransactionTimeoutException(java.lang.String, java.lang.Throwable)"><B>TransactionTimeoutException(String, Throwable)</B></A> - 
-Constructor for exception bitronix.tm.internal.<A HREF="./bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal">TransactionTimeoutException</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/timer/TransactionTimeoutTask.html" title="class in bitronix.tm.timer"><B>TransactionTimeoutTask</B></A> - Class in <A HREF="./bitronix/tm/timer/package-summary.html">bitronix.tm.timer</A><DD>This task is used to mark a transaction as timed-out.<DT><A HREF="./bitronix/tm/timer/TransactionTimeoutTask.html#TransactionTimeoutTask(bitronix.tm.BitronixTransaction, java.util.Date, bitronix.tm.timer.TaskScheduler)"><B>TransactionTimeoutTask(BitronixTransaction, Date, T [...]
 Constructor for class bitronix.tm.timer.<A HREF="./bitronix/tm/timer/TransactionTimeoutTask.html" title="class in bitronix.tm.timer">TransactionTimeoutTask</A>
 <DD> 
@@ -3585,22 +3623,25 @@ Method in class bitronix.tm.resource.jms.<A HREF="./bitronix/tm/resource/jms/Dua
 <DT><A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html#unsubscribe(java.lang.String)"><B>unsubscribe(String)</B></A> - 
 Method in class bitronix.tm.resource.jms.lrc.<A HREF="./bitronix/tm/resource/jms/lrc/LrcXASession.html" title="class in bitronix.tm.resource.jms.lrc">LrcXASession</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class<T>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcCallableStatementHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class<T>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcConnectionHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class<T>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcPreparedStatementHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class<T>)</B></A> - 
+Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcResultSetHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcResultSetHandle</A>
+<DD> 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class<T>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcStatementHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html#unwrap(java.lang.Class)"><B>unwrap(Class<T>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.html" title="class in bitronix.tm.resource.jdbc">JdbcUncachedPreparedStatementHandle</A>
 <DD> 
-<DT><A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html#unwrap(java.lang.Class)"><B>unwrap(Class)</B></A> - 
+<DT><A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html#unwrap(java.lang.Class)"><B>unwrap(Class<T>)</B></A> - 
 Method in class bitronix.tm.resource.jdbc.<A HREF="./bitronix/tm/resource/jdbc/PoolingDataSource.html" title="class in bitronix.tm.resource.jdbc">PoolingDataSource</A>
 <DD> 
 </DL>
@@ -3619,15 +3660,12 @@ Constructor for class bitronix.tm.<A HREF="./bitronix/tm/Version.html" title="cl
 <A NAME="_W_"><!-- --></A><H2>
 <B>W</B></H2>
 <DL>
-<DT><A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html#waitFor(java.lang.Object, long)"><B>waitFor(Object, long)</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor">ConcurrentExecutor</A>
+<DT><A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html#waitFor(java.lang.Object, long)"><B>waitFor(Object, long)</B></A> - 
+Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor">AsyncExecutor</A>
 <DD> 
 <DT><A HREF="./bitronix/tm/twopc/executor/Executor.html#waitFor(java.lang.Object, long)"><B>waitFor(Object, long)</B></A> - 
 Method in interface bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>
 <DD>Wait for the job represented by the future to terminate.
-<DT><A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html#waitFor(java.lang.Object, long)"><B>waitFor(Object, long)</B></A> - 
-Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor">SimpleAsyncExecutor</A>
-<DD> 
 <DT><A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html#waitFor(java.lang.Object, long)"><B>waitFor(Object, long)</B></A> - 
 Method in class bitronix.tm.twopc.executor.<A HREF="./bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor">SyncExecutor</A>
 <DD> 
@@ -3716,6 +3754,6 @@ Constructor for class bitronix.tm.internal.<A HREF="./bitronix/tm/internal/XARes
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/index.html b/doc/api/index.html
index 8f7c502..f4c7a81 100644
--- a/doc/api/index.html
+++ b/doc/api/index.html
@@ -2,17 +2,51 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc on Sun Oct 30 10:48:07 CET 2011-->
+<!-- Generated by javadoc on Sun Sep 15 17:15:13 CEST 2013-->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Bitronix Transaction Manager :: Core 2.1.2 API
+Bitronix Transaction Manager :: Core 2.1.4 API
 </TITLE>
 <SCRIPT type="text/javascript">
     targetPage = "" + window.location.search;
     if (targetPage != "" && targetPage != "undefined")
         targetPage = targetPage.substring(1);
-    if (targetPage.indexOf(":") != -1)
+    if (targetPage.indexOf(":") != -1 || (targetPage != "" && !validURL(targetPage)))
         targetPage = "undefined";
+    function validURL(url) {
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_') {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
     function loadFrames() {
         if (targetPage != "" && targetPage != "undefined")
              top.classFrame.location = top.targetPage;
diff --git a/doc/api/overview-frame.html b/doc/api/overview-frame.html
index 306da16..492c60b 100644
--- a/doc/api/overview-frame.html
+++ b/doc/api/overview-frame.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Overview List (Bitronix Transaction Manager :: Core 2.1.2 API)
+Overview List (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
diff --git a/doc/api/overview-summary.html b/doc/api/overview-summary.html
index e27a86f..e91ac7f 100644
--- a/doc/api/overview-summary.html
+++ b/doc/api/overview-summary.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Overview (Bitronix Transaction Manager :: Core 2.1.2 API)
+Overview (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Overview (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Overview (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Overview (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -82,7 +82,7 @@ function windowTitle()
 <HR>
 <CENTER>
 <H1>
-Bitronix Transaction Manager 2.1.2 API
+Bitronix Transaction Manager 2.1.4 API
 </H1>
 </CENTER>
 
@@ -233,6 +233,6 @@ Bitronix Transaction Manager 2.1.2 API
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/overview-tree.html b/doc/api/overview-tree.html
index 646b3d1..ff1427d 100644
--- a/doc/api/overview-tree.html
+++ b/doc/api/overview-tree.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:07 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
+Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Class Hierarchy (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -109,9 +109,10 @@ Class Hierarchy
 <LI TYPE="circle">bitronix.tm.resource.common.<A HREF="bitronix/tm/resource/common/RecoveryXAResourceHolder.html" title="class in bitronix.tm.resource.common"><B>RecoveryXAResourceHolder</B></A></UL>
 <LI TYPE="circle">bitronix.tm.resource.jms.<A HREF="bitronix/tm/resource/jms/JmsPooledConnection.html" title="class in bitronix.tm.resource.jms"><B>JmsPooledConnection</B></A> (implements bitronix.tm.resource.jms.<A HREF="bitronix/tm/resource/jms/JmsPooledConnectionMBean.html" title="interface in bitronix.tm.resource.jms">JmsPooledConnectionMBean</A>)
 </UL>
+<LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/AsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>AsyncExecutor</B></A> (implements bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>)
 <LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="bitronix/tm/resource/jdbc/BaseProxyHandlerClass.html" title="class in bitronix.tm.resource.jdbc"><B>BaseProxyHandlerClass</B></A> (implements java.lang.reflect.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</A>)
 <UL>
-<LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcCallableStatementHandle</B></A><LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcConnectionHandle</B></A><LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title [...]
+<LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcCallableStatementHandle</B></A><LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="bitronix/tm/resource/jdbc/JdbcConnectionHandle.html" title="class in bitronix.tm.resource.jdbc"><B>JdbcConnectionHandle</B></A><LI TYPE="circle">bitronix.tm.resource.jdbc.<A HREF="bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.html" title [...]
 <LI TYPE="circle">bitronix.tm.jndi.<A HREF="bitronix/tm/jndi/BitronixContext.html" title="class in bitronix.tm.jndi"><B>BitronixContext</B></A> (implements javax.naming.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html?is-external=true" title="class or interface in javax.naming">Context</A>)
 <LI TYPE="circle">bitronix.tm.jndi.<A HREF="bitronix/tm/jndi/BitronixInitialContextFactory.html" title="class in bitronix.tm.jndi"><B>BitronixInitialContextFactory</B></A> (implements javax.naming.spi.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/spi/InitialContextFactory.html?is-external=true" title="class or interface in javax.naming.spi">InitialContextFactory</A>)
 <LI TYPE="circle">bitronix.tm.<A HREF="bitronix/tm/BitronixTransaction.html" title="class in bitronix.tm"><B>BitronixTransaction</B></A> (implements bitronix.tm.<A HREF="bitronix/tm/BitronixTransactionMBean.html" title="interface in bitronix.tm">BitronixTransactionMBean</A>, javax.transaction.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/Transaction.html?is-external=true" title="class or interface in javax.transaction">Transaction</A>)
@@ -153,13 +154,11 @@ Class Hierarchy
 </UL>
 </UL>
 </UL>
-<LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/ConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>ConcurrentExecutor</B></A> (implements bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>)
-<UL>
-<LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/BackportConcurrentExecutor.html" title="class in bitronix.tm.twopc.executor"><B>BackportConcurrentExecutor</B></A></UL>
 <LI TYPE="circle">bitronix.tm.<A HREF="bitronix/tm/Configuration.html" title="class in bitronix.tm"><B>Configuration</B></A> (implements bitronix.tm.utils.<A HREF="bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A>)
-<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/CryptoEngine.html" title="class in bitronix.tm.utils"><B>CryptoEngine</B></A><LI TYPE="circle">bitronix.tm.recovery.<A HREF="bitronix/tm/recovery/DanglingTransaction.html" title="class in bitronix.tm.recovery"><B>DanglingTransaction</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils"><B>Decoder</B></A><LI TYPE="circle">bitronix.tm.resource.common.<A HREF="bitr [...]
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/CryptoEngine.html" title="class in bitronix.tm.utils"><B>CryptoEngine</B></A><LI TYPE="circle">bitronix.tm.recovery.<A HREF="bitronix/tm/recovery/DanglingTransaction.html" title="class in bitronix.tm.recovery"><B>DanglingTransaction</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/Decoder.html" title="class in bitronix.tm.utils"><B>Decoder</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/ut [...]
+<LI TYPE="circle">bitronix.tm.resource.common.<A HREF="bitronix/tm/resource/common/DeferredReleaseSynchronization.html" title="class in bitronix.tm.resource.common"><B>DeferredReleaseSynchronization</B></A> (implements javax.transaction.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/Synchronization.html?is-external=true" title="class or interface in javax.transaction">Synchronization</A>)
 <LI TYPE="circle">bitronix.tm.journal.<A HREF="bitronix/tm/journal/DiskForceWaitQueue.html" title="class in bitronix.tm.journal"><B>DiskForceWaitQueue</B></A><LI TYPE="circle">bitronix.tm.journal.<A HREF="bitronix/tm/journal/DiskJournal.html" title="class in bitronix.tm.journal"><B>DiskJournal</B></A> (implements bitronix.tm.journal.<A HREF="bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A>)
-<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>Encoder</B></A><LI TYPE="circle">bitronix.tm.recovery.<A HREF="bitronix/tm/recovery/IncrementalRecoverer.html" title="class in bitronix.tm.recovery"><B>IncrementalRecoverer</B></A><LI TYPE="circle">bitronix.tm.resource.jms.<A HREF="bitronix/tm/resource/jms/JmsConnectionHandle.html" title="class in bitronix.tm.resource.jms"><B>JmsConnectionHandle</B></A> (implements javax.jms [...]
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/Encoder.html" title="class in bitronix.tm.utils"><B>Encoder</B></A><LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/ExceptionUtils.html" title="class in bitronix.tm.utils"><B>ExceptionUtils</B></A><LI TYPE="circle">bitronix.tm.recovery.<A HREF="bitronix/tm/recovery/IncrementalRecoverer.html" title="class in bitronix.tm.recovery"><B>IncrementalRecoverer</B></A><LI TYPE="circle">bitronix.tm.resource.jms.<A HREF="b [...]
 <LI TYPE="circle">bitronix.tm.resource.jms.<A HREF="bitronix/tm/resource/jms/JndiXAConnectionFactory.html" title="class in bitronix.tm.resource.jms"><B>JndiXAConnectionFactory</B></A> (implements javax.jms.XAConnectionFactory)
 <LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/Job.html" title="class in bitronix.tm.twopc.executor"><B>Job</B></A> (implements java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
 <LI TYPE="circle">bitronix.tm.resource.jms.lrc.<A HREF="bitronix/tm/resource/jms/lrc/LrcXAConnection.html" title="class in bitronix.tm.resource.jms.lrc"><B>LrcXAConnection</B></A> (implements javax.jms.XAConnection)
@@ -173,7 +172,7 @@ Class Hierarchy
 <LI TYPE="circle">bitronix.tm.resource.jms.<A HREF="bitronix/tm/resource/jms/TopicSubscriberWrapper.html" title="class in bitronix.tm.resource.jms"><B>TopicSubscriberWrapper</B></A> (implements javax.jms.TopicSubscriber)
 </UL>
 <LI TYPE="circle">bitronix.tm.resource.jms.<A HREF="bitronix/tm/resource/jms/MessageProducerConsumerKey.html" title="class in bitronix.tm.resource.jms"><B>MessageProducerConsumerKey</B></A><LI TYPE="circle">bitronix.tm.resource.jms.<A HREF="bitronix/tm/resource/jms/MessageProducerWrapper.html" title="class in bitronix.tm.resource.jms"><B>MessageProducerWrapper</B></A> (implements javax.jms.MessageProducer)
-<LI TYPE="circle">java.awt.event.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/MouseAdapter.html?is-external=true" title="class or interface in java.awt.event"><B>MouseAdapter</B></A> (implements java.awt.event.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or interface in java.awt.event">MouseListener</A>, java.awt.event.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/MouseMotionListener [...]
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/MonotonicClock.html" title="class in bitronix.tm.utils"><B>MonotonicClock</B></A><LI TYPE="circle">java.awt.event.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/MouseAdapter.html?is-external=true" title="class or interface in java.awt.event"><B>MouseAdapter</B></A> (implements java.awt.event.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/MouseListener.html?is-external=true" title="class or in [...]
 <UL>
 <LI TYPE="circle">bitronix.tm.gui.<A HREF="bitronix/tm/gui/TransactionTableMouseListener.html" title="class in bitronix.tm.gui"><B>TransactionTableMouseListener</B></A></UL>
 <LI TYPE="circle">bitronix.tm.journal.<A HREF="bitronix/tm/journal/NullJournal.html" title="class in bitronix.tm.journal"><B>NullJournal</B></A> (implements bitronix.tm.journal.<A HREF="bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal">Journal</A>)
@@ -187,9 +186,10 @@ Class Hierarchy
 <LI TYPE="circle">bitronix.tm.resource.<A HREF="bitronix/tm/resource/ResourceLoader.html" title="class in bitronix.tm.resource"><B>ResourceLoader</B></A> (implements bitronix.tm.utils.<A HREF="bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils">Service</A>)
 <LI TYPE="circle">bitronix.tm.resource.<A HREF="bitronix/tm/resource/ResourceObjectFactory.html" title="class in bitronix.tm.resource"><B>ResourceObjectFactory</B></A> (implements javax.naming.spi.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/spi/ObjectFactory.html?is-external=true" title="class or interface in javax.naming.spi">ObjectFactory</A>)
 <LI TYPE="circle">bitronix.tm.resource.<A HREF="bitronix/tm/resource/ResourceRegistrar.html" title="class in bitronix.tm.resource"><B>ResourceRegistrar</B></A><LI TYPE="circle">bitronix.tm.gui.<A HREF="bitronix/tm/gui/ResourcesTreeModel.html" title="class in bitronix.tm.gui"><B>ResourcesTreeModel</B></A> (implements javax.swing.tree.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/tree/TreeModel.html?is-external=true" title="class or interface in javax.swing.tree">TreeModel</A>)
-<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils"><B>Scheduler</B></A><LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/SimpleAsyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>SimpleAsyncExecutor</B></A> (implements bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>)
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/Scheduler.html" title="class in bitronix.tm.utils"><B>Scheduler</B></A><T> (implements java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</A><T>)
 <LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/SyncExecutor.html" title="class in bitronix.tm.twopc.executor"><B>SyncExecutor</B></A> (implements bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor">Executor</A>)
-<LI TYPE="circle">bitronix.tm.timer.<A HREF="bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer"><B>Task</B></A><UL>
+<LI TYPE="circle">bitronix.tm.timer.<A HREF="bitronix/tm/timer/Task.html" title="class in bitronix.tm.timer"><B>Task</B></A> (implements java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A><T>)
+<UL>
 <LI TYPE="circle">bitronix.tm.timer.<A HREF="bitronix/tm/timer/PoolShrinkingTask.html" title="class in bitronix.tm.timer"><B>PoolShrinkingTask</B></A><LI TYPE="circle">bitronix.tm.timer.<A HREF="bitronix/tm/timer/RecoveryTask.html" title="class in bitronix.tm.timer"><B>RecoveryTask</B></A><LI TYPE="circle">bitronix.tm.timer.<A HREF="bitronix/tm/timer/TransactionTimeoutTask.html" title="class in bitronix.tm.timer"><B>TransactionTimeoutTask</B></A></UL>
 <LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang"><B>Thread</B></A> (implements java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>)
 <UL>
@@ -214,10 +214,10 @@ Class Hierarchy
 <LI TYPE="circle">bitronix.tm.internal.<A HREF="bitronix/tm/internal/BitronixSystemException.html" title="class in bitronix.tm.internal"><B>BitronixSystemException</B></A><UL>
 <LI TYPE="circle">bitronix.tm.internal.<A HREF="bitronix/tm/internal/BitronixMultiSystemException.html" title="class in bitronix.tm.internal"><B>BitronixMultiSystemException</B></A><LI TYPE="circle">bitronix.tm.internal.<A HREF="bitronix/tm/internal/BitronixRollbackSystemException.html" title="class in bitronix.tm.internal"><B>BitronixRollbackSystemException</B></A></UL>
 </UL>
-<LI TYPE="circle">bitronix.tm.timer.<A HREF="bitronix/tm/timer/TaskException.html" title="class in bitronix.tm.timer"><B>TaskException</B></A><LI TYPE="circle">bitronix.tm.internal.<A HREF="bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal"><B>TransactionTimeoutException</B></A><LI TYPE="circle">javax.transaction.xa.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface i [...]
+<LI TYPE="circle">bitronix.tm.timer.<A HREF="bitronix/tm/timer/TaskException.html" title="class in bitronix.tm.timer"><B>TaskException</B></A><LI TYPE="circle">javax.transaction.xa.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/XAException.html?is-external=true" title="class or interface in javax.transaction.xa"><B>XAException</B></A><UL>
 <LI TYPE="circle">bitronix.tm.internal.<A HREF="bitronix/tm/internal/BitronixXAException.html" title="class in bitronix.tm.internal"><B>BitronixXAException</B></A></UL>
 </UL>
-</UL>
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils"><B>StackTrace</B></A></UL>
 <LI TYPE="circle">bitronix.tm.resource.common.<A HREF="bitronix/tm/resource/common/TransactionContextHelper.html" title="class in bitronix.tm.resource.common"><B>TransactionContextHelper</B></A><LI TYPE="circle">bitronix.tm.journal.<A HREF="bitronix/tm/journal/TransactionLogAppender.html" title="class in bitronix.tm.journal"><B>TransactionLogAppender</B></A><LI TYPE="circle">bitronix.tm.journal.<A HREF="bitronix/tm/journal/TransactionLogCursor.html" title="class in bitronix.tm.journal">< [...]
 <UL>
 <LI TYPE="circle">bitronix.tm.gui.<A HREF="bitronix/tm/gui/PendingTransactionTableModel.html" title="class in bitronix.tm.gui"><B>PendingTransactionTableModel</B></A><LI TYPE="circle">bitronix.tm.gui.<A HREF="bitronix/tm/gui/RawTransactionTableModel.html" title="class in bitronix.tm.gui"><B>RawTransactionTableModel</B></A></UL>
@@ -235,7 +235,7 @@ Interface Hierarchy
 <LI TYPE="circle">bitronix.tm.resource.common.<A HREF="bitronix/tm/resource/common/XAResourceProducer.html" title="interface in bitronix.tm.resource.common"><B>XAResourceProducer</B></A> (also extends javax.naming.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Referenceable.html?is-external=true" title="class or interface in javax.naming">Referenceable</A>)
 </UL>
 <LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/Service.html" title="interface in bitronix.tm.utils"><B>Service</B></A><UL>
-<LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>Executor</B></A><LI TYPE="circle">bitronix.tm.journal.<A HREF="bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal"><B>Journal</B></A></UL>
+<LI TYPE="circle">bitronix.tm.utils.<A HREF="bitronix/tm/utils/ExceptionAnalyzer.html" title="interface in bitronix.tm.utils"><B>ExceptionAnalyzer</B></A><LI TYPE="circle">bitronix.tm.twopc.executor.<A HREF="bitronix/tm/twopc/executor/Executor.html" title="interface in bitronix.tm.twopc.executor"><B>Executor</B></A><LI TYPE="circle">bitronix.tm.journal.<A HREF="bitronix/tm/journal/Journal.html" title="interface in bitronix.tm.journal"><B>Journal</B></A></UL>
 <LI TYPE="circle">bitronix.tm.resource.common.<A HREF="bitronix/tm/resource/common/StateChangeListener.html" title="interface in bitronix.tm.resource.common"><B>StateChangeListener</B></A><LI TYPE="circle">bitronix.tm.internal.<A HREF="bitronix/tm/internal/TransactionStatusChangeListener.html" title="interface in bitronix.tm.internal"><B>TransactionStatusChangeListener</B></A><LI TYPE="circle">bitronix.tm.resource.common.<A HREF="bitronix/tm/resource/common/XAStatefulHolder.html" title=" [...]
 <LI TYPE="circle">bitronix.tm.resource.common.<A HREF="bitronix/tm/resource/common/XAResourceHolder.html" title="interface in bitronix.tm.resource.common"><B>XAResourceHolder</B></A></UL>
 </UL>
@@ -293,6 +293,6 @@ Interface Hierarchy
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/doc/api/serialized-form.html b/doc/api/serialized-form.html
index b2022e4..fd9a201 100644
--- a/doc/api/serialized-form.html
+++ b/doc/api/serialized-form.html
@@ -2,13 +2,13 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_26) on Sun Oct 30 10:48:06 CET 2011 -->
+<!-- Generated by javadoc (build 1.6.0_51) on Sun Sep 15 17:15:13 CEST 2013 -->
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <TITLE>
-Serialized Form (Bitronix Transaction Manager :: Core 2.1.2 API)
+Serialized Form (Bitronix Transaction Manager :: Core 2.1.4 API)
 </TITLE>
 
-<META NAME="date" CONTENT="2011-10-30">
+<META NAME="date" CONTENT="2013-09-15">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
 
@@ -16,7 +16,7 @@ Serialized Form (Bitronix Transaction Manager :: Core 2.1.2 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Serialized Form (Bitronix Transaction Manager :: Core 2.1.2 API)";
+        parent.document.title="Serialized Form (Bitronix Transaction Manager :: Core 2.1.4 API)";
     }
 }
 </SCRIPT>
@@ -694,17 +694,6 @@ resourceStates</H3>
 </TABLE>
 
 <P>
-
-<P>
-<A NAME="bitronix.tm.internal.TransactionTimeoutException"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Class <A HREF="bitronix/tm/internal/TransactionTimeoutException.html" title="class in bitronix.tm.internal">bitronix.tm.internal.TransactionTimeoutException</A> extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A> implements Serializable</B></FONT></TH>
-</TR>
-</TABLE>
-
-<P>
 <HR SIZE="4" NOSHADE>
 
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
@@ -980,7 +969,16 @@ boolean <B>ignoreRecoveryFailures</B></PRE>
 <H3>
 xaResourceHolders</H3>
 <PRE>
-<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">E</A>> <B>xaResourceHolders</B></PRE>
+<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</A><<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">K</A>,<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.con [...]
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+xaResourceHolderCounter</H3>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</A> <B>xaResourceHolderCounter</B></PRE>
 <DL>
 <DL>
 </DL>
@@ -1267,6 +1265,17 @@ resourceStates</H3>
 <P>
 
 <P>
+<A NAME="bitronix.tm.utils.StackTrace"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="bitronix/tm/utils/StackTrace.html" title="class in bitronix.tm.utils">bitronix.tm.utils.StackTrace</A> extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
 <HR>
 
 
@@ -1321,6 +1330,6 @@ resourceStates</H3>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 
 <HR>
-Copyright © 2006-2011 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
+Copyright © 2006-2013 <a href="http://bitronix.be/">Bitronix Software</a>. All Rights Reserved.
 </BODY>
 </HTML>
diff --git a/release-notes-2.1.2.txt b/release-notes-2.1.4.txt
similarity index 69%
rename from release-notes-2.1.2.txt
rename to release-notes-2.1.4.txt
index 323c805..da4fc7c 100644
--- a/release-notes-2.1.2.txt
+++ b/release-notes-2.1.4.txt
@@ -1,19 +1,18 @@
-BTM - Bitronix's JTA transaction manager
-========================================
-version 2.1.2, Oct 24, 2011
+BTM - Bitronix' JTA transaction manager
+=======================================
+version 2.1.4, September 15, 2013
 
 Getting started guide: http://docs.codehaus.org/display/BTM/NewUserGuide
 Best practices: http://docs.codehaus.org/display/BTM/JtaBestPractices
-API javadoc: http://btm.codehaus.org/api/2.1.2/
+API javadoc: http://btm.codehaus.org/api/2.1.4/
 
  New features and bugs fixed in this release
  --------------------------------------------
 Important note: starting with version 2.1.0, BTM does not support JDK 1.4
 anymore. You have to use at least JDK 1.5.
 
-* BTM-110	OperationNotSupportedException for Hibernate 4.x datasource lookup
-* BTM-111	Connection Customization Required
-* BTM-112	EhCacheXAResourceProducer does not cleanup after last XAResource has been unregistered
+* BTM-126 	Equality/wrapping of PreparedStatement
+* BTM-129   Crypting resource password with triple-DES (DES-EDE) does not work
 
 Using BTM
 ---------
diff --git a/src/bitronix/tm/BitronixTransaction.java b/src/bitronix/tm/BitronixTransaction.java
index 47de628..4e9ed3e 100644
--- a/src/bitronix/tm/BitronixTransaction.java
+++ b/src/bitronix/tm/BitronixTransaction.java
@@ -20,20 +20,52 @@
  */
 package bitronix.tm;
 
-import bitronix.tm.internal.*;
+import bitronix.tm.internal.BitronixMultiSystemException;
+import bitronix.tm.internal.BitronixRollbackException;
+import bitronix.tm.internal.BitronixRollbackSystemException;
+import bitronix.tm.internal.BitronixSystemException;
+import bitronix.tm.internal.BitronixXAException;
+import bitronix.tm.internal.TransactionStatusChangeListener;
+import bitronix.tm.internal.XAResourceHolderState;
+import bitronix.tm.internal.XAResourceManager;
 import bitronix.tm.journal.Journal;
-import bitronix.tm.twopc.*;
 import bitronix.tm.resource.ResourceRegistrar;
 import bitronix.tm.resource.common.XAResourceHolder;
-import bitronix.tm.utils.*;
-import org.slf4j.LoggerFactory;
+import bitronix.tm.timer.TaskScheduler;
+import bitronix.tm.twopc.Committer;
+import bitronix.tm.twopc.PhaseException;
+import bitronix.tm.twopc.Preparer;
+import bitronix.tm.twopc.Rollbacker;
+import bitronix.tm.twopc.executor.Executor;
+import bitronix.tm.utils.Decoder;
+import bitronix.tm.utils.ExceptionUtils;
+import bitronix.tm.utils.ManagementRegistrar;
+import bitronix.tm.utils.MonotonicClock;
+import bitronix.tm.utils.Scheduler;
+import bitronix.tm.utils.StackTrace;
+import bitronix.tm.utils.Uid;
+import bitronix.tm.utils.UidGenerator;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import javax.transaction.*;
+import javax.transaction.HeuristicCommitException;
+import javax.transaction.HeuristicMixedException;
+import javax.transaction.HeuristicRollbackException;
+import javax.transaction.RollbackException;
+import javax.transaction.Status;
+import javax.transaction.Synchronization;
+import javax.transaction.SystemException;
+import javax.transaction.Transaction;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * Implementation of {@link Transaction}.
@@ -44,20 +76,25 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
 
     private final static Logger log = LoggerFactory.getLogger(BitronixTransaction.class);
 
+    private final XAResourceManager resourceManager;
+    private final Scheduler<Synchronization> synchronizationScheduler = new Scheduler<Synchronization>();
+    private final List<TransactionStatusChangeListener> transactionStatusListeners = new ArrayList<TransactionStatusChangeListener>();
     private volatile int status = Status.STATUS_NO_TRANSACTION;
-    private XAResourceManager resourceManager;
-    private Scheduler synchronizationScheduler = new Scheduler();
-    private List transactionStatusListeners = new ArrayList();
-    private boolean timeout = false;
-    private Date timeoutDate;
+    private volatile boolean timeout = false;
+    private volatile Date timeoutDate;
+
+    private final Executor executor = TransactionManagerServices.getExecutor();
+    private final TaskScheduler taskScheduler = TransactionManagerServices.getTaskScheduler();
+    private final Journal journal = TransactionManagerServices.getJournal();
 
-    private Preparer preparer = new Preparer(TransactionManagerServices.getExecutor());
-    private Committer committer = new Committer(TransactionManagerServices.getExecutor());
-    private Rollbacker rollbacker = new Rollbacker(TransactionManagerServices.getExecutor());
+    private final Preparer preparer = new Preparer(executor);
+    private final Committer committer = new Committer(executor);
+    private final Rollbacker rollbacker = new Rollbacker(executor);
 
     /* management */
-    private String threadName;
-    private Date startDate;
+    private volatile String threadName;
+    private volatile Date startDate;
+    private volatile StackTrace activationStackTrace;
 
 
     public BitronixTransaction() {
@@ -92,12 +129,15 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         try {
             resourceManager.enlist(resourceHolderState);
         } catch (XAException ex) {
+            String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
             if (BitronixXAException.isUnilateralRollback(ex)) {
                 // if the resource unilaterally rolled back, the transaction will never be able to commit -> mark it as rollback only
                 setStatus(Status.STATUS_MARKED_ROLLBACK);
-                throw new BitronixRollbackException("resource " + resourceHolderState + " unilaterally rolled back, error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+                throw new BitronixRollbackException("resource " + resourceHolderState + " unilaterally rolled back, error=" +
+                        Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
             }
-            throw new BitronixSystemException("cannot enlist " + resourceHolderState + ", error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+            throw new BitronixSystemException("cannot enlist " + resourceHolderState + ", error=" +
+                    Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
         }
 
         resourceHolder.putXAResourceHolderState(resourceHolderState.getXid(), resourceHolderState);
@@ -116,14 +156,12 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         if (resourceHolder == null)
             throw new BitronixSystemException("unknown XAResource " + xaResource + ", it does not belong to a registered resource");
 
-        Map statesForGtrid = resourceHolder.getXAResourceHolderStatesForGtrid(resourceManager.getGtrid());
-        Iterator statesForGtridIt = statesForGtrid.values().iterator();
+        Map<Uid, XAResourceHolderState> statesForGtrid = resourceHolder.getXAResourceHolderStatesForGtrid(resourceManager.getGtrid());
 
-        boolean result = false;
-        List exceptions = new ArrayList();
-        List resourceStates = new ArrayList();
-        while (statesForGtridIt.hasNext()) {
-            XAResourceHolderState resourceHolderState = (XAResourceHolderState) statesForGtridIt.next();
+        boolean result = true;
+        List<Exception> exceptions = new ArrayList<Exception>();
+        List<XAResourceHolderState> resourceStates = new ArrayList<XAResourceHolderState>();
+        for (XAResourceHolderState resourceHolderState : statesForGtrid.values()) {
             try {
                 result &= delistResource(resourceHolderState, flag);
             } catch (BitronixSystemException ex) {
@@ -152,15 +190,18 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
             if (status != Status.STATUS_MARKED_ROLLBACK)
                 setStatus(Status.STATUS_MARKED_ROLLBACK);
 
+            String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
             if (BitronixXAException.isUnilateralRollback(ex)) {
                 // The resource unilaterally rolled back here. We have to throw an exception to indicate this but
                 // The signature of this method is inherited from javax.transaction.Transaction. Thereof, we have choice
                 // between creating a sub-exception of SystemException or using a RuntimeException. Is that the best way
                 // forward as this 'hidden' exception can be left throw out at unexpected locations where SystemException
                 // should be rethrown but the exception thrown here should be catched & handled... ?
-                throw new BitronixRollbackSystemException("resource " + resourceHolderState + " unilaterally rolled back, error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+                throw new BitronixRollbackSystemException("resource " + resourceHolderState + " unilaterally rolled back, error=" +
+                        Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
             }
-            throw new BitronixSystemException("cannot delist " + resourceHolderState + ", error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+            throw new BitronixSystemException("cannot delist " + resourceHolderState + ", error=" + Decoder.decodeXAExceptionErrorCode(ex) +
+                    (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
         }
     }
 
@@ -176,7 +217,7 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         synchronizationScheduler.add(synchronization, Scheduler.DEFAULT_POSITION);
     }
 
-    public Scheduler getSynchronizationScheduler() {
+    public Scheduler<Synchronization> getSynchronizationScheduler() {
         return synchronizationScheduler;
     }
 
@@ -186,11 +227,19 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         if (isDone())
             throw new IllegalStateException("transaction is done, cannot commit it");
 
-        TransactionManagerServices.getTaskScheduler().cancelTransactionTimeout(this);
+        taskScheduler.cancelTransactionTimeout(this);
 
         // beforeCompletion must be called before the check to STATUS_MARKED_ROLLBACK as the synchronization
         // can still set the status to STATUS_MARKED_ROLLBACK.
-        fireBeforeCompletionEvent();
+        try {
+            fireBeforeCompletionEvent();
+        } catch (BitronixSystemException ex) {
+            rollback();
+            throw new BitronixRollbackException("SystemException thrown during beforeCompletion cycle caused transaction rollback", ex);
+        } catch (RuntimeException ex) {
+            rollback();
+            throw new BitronixRollbackException("RuntimeException thrown during beforeCompletion cycle caused transaction rollback", ex);
+        }
 
         // The following if statements and try/catch block must not be included in the prepare try-catch block as
         // they call rollback().
@@ -206,6 +255,7 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         } catch (BitronixRollbackException ex) {
             if (log.isDebugEnabled()) log.debug("delistment error causing transaction rollback", ex);
             rollback();
+            // the caught BitronixRollbackException's message is pre-formatted to be appended to this message
             throw new BitronixRollbackException("delistment error caused transaction rollback" + ex.getMessage());
         }
 
@@ -216,7 +266,7 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         }
 
         try {
-            List interestedResources;
+            List<XAResourceHolderState> interestedResources;
 
             // prepare phase
             try {
@@ -238,6 +288,10 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
 
             committer.commit(this, interestedResources);
 
+            if (resourceManager.size() == 0 && TransactionManagerServices.getConfiguration().isDebugZeroResourceTransaction()) {
+                log.warn(buildZeroTransactionDebugMessage(activationStackTrace, new StackTrace()));
+            }
+
             if (log.isDebugEnabled()) log.debug("successfully committed " + this);
         }
         finally {
@@ -251,7 +305,7 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         if (isDone())
             throw new IllegalStateException("transaction is done, cannot roll it back");
 
-        TransactionManagerServices.getTaskScheduler().cancelTransactionTimeout(this);
+        taskScheduler.cancelTransactionTimeout(this);
 
         try {
             delistUnclosedResources(XAResource.TMSUCCESS);
@@ -263,12 +317,11 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
             try {
                 if (log.isDebugEnabled()) log.debug("rolling back, " + resourceManager.size() + " enlisted resource(s)");
 
-                List resourcesToRollback = new ArrayList();
-                List allResources = resourceManager.getAllResources();
-                for (int i = 0; i < allResources.size(); i++) {
-                    XAResourceHolderState resourceHolderState = (XAResourceHolderState) allResources.get(i);
-                    if (!resourceHolderState.isFailed())
-                        resourcesToRollback.add(resourceHolderState);
+                List<XAResourceHolderState> resourcesToRollback = new ArrayList<XAResourceHolderState>();
+                List<XAResourceHolderState> allResources = resourceManager.getAllResources();
+                for (XAResourceHolderState resource : allResources) {
+                    if (!resource.isFailed())
+                        resourcesToRollback.add(resource);
                 }
 
                 rollbacker.rollback(this, resourcesToRollback);
@@ -312,10 +365,13 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
             throw new IllegalStateException("transaction has already started");
 
         setStatus(Status.STATUS_ACTIVE);
-        this.startDate = new Date();
-        this.timeoutDate = new Date(System.currentTimeMillis() + (timeout * 1000L));
+        this.startDate = new Date(MonotonicClock.currentTimeMillis());
+        this.timeoutDate = new Date(MonotonicClock.currentTimeMillis() + (timeout * 1000L));
+        if (TransactionManagerServices.getConfiguration().isDebugZeroResourceTransaction()) {
+            this.activationStackTrace = new StackTrace();
+        }
 
-        TransactionManagerServices.getTaskScheduler().scheduleTransactionTimeout(this, timeoutDate);
+        taskScheduler.scheduleTransactionTimeout(this, timeoutDate);
     }
 
 
@@ -323,14 +379,13 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         setStatus(status, resourceManager.collectUniqueNames());
     }
 
-    public void setStatus(int status, Set uniqueNames) throws BitronixSystemException {
+    public void setStatus(int status, Set<String> uniqueNames) throws BitronixSystemException {
         try {
             boolean force = (resourceManager.size() > 1) && (status == Status.STATUS_COMMITTING);
             if (log.isDebugEnabled()) log.debug("changing transaction status to " + Decoder.decodeStatus(status) + (force ? " (forced)" : ""));
 
             int oldStatus = this.status;
             this.status = status;
-            Journal journal = TransactionManagerServices.getJournal();
             journal.log(status, resourceManager.getGtrid(), uniqueNames);
             if (force) {
                 journal.force();
@@ -349,9 +404,8 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
     private void fireTransactionStatusChangedEvent(int oldStatus, int newStatus) {
         if (log.isDebugEnabled()) log.debug("transaction status is changing from " + Decoder.decodeStatus(oldStatus) + " to " +
                 Decoder.decodeStatus(newStatus) + " - executing " + transactionStatusListeners.size() + " listener(s)");
-        
-        for (int i = 0; i < transactionStatusListeners.size(); i++) {
-            TransactionStatusChangeListener listener = (TransactionStatusChangeListener) transactionStatusListeners.get(i);
+
+        for (TransactionStatusChangeListener listener : transactionStatusListeners) {
             if (log.isDebugEnabled()) log.debug("executing TransactionStatusChangeListener " + listener);
             listener.statusChanged(oldStatus, newStatus);
             if (log.isDebugEnabled()) log.debug("executed TransactionStatusChangeListener " + listener);
@@ -391,39 +445,39 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
      * @throws bitronix.tm.internal.BitronixRollbackException if some resources unilaterally rolled back before end() call.
      */
     private void delistUnclosedResources(int flag) throws BitronixRollbackException {
-        List resources = resourceManager.getAllResources();
-        List rolledBackResources = new ArrayList();
-        List failedResources = new ArrayList();
-
-        for (int i = 0; i < resources.size(); i++) {
-            XAResourceHolderState resourceHolderState = (XAResourceHolderState) resources.get(i);
-            if (!resourceHolderState.isEnded()) {
-                if (log.isDebugEnabled()) log.debug("found unclosed resource to delist: " + resourceHolderState);
+        List<XAResourceHolderState> allResources = resourceManager.getAllResources();
+        List<XAResourceHolderState> rolledBackResources = new ArrayList<XAResourceHolderState>();
+        List<XAResourceHolderState> failedResources = new ArrayList<XAResourceHolderState>();
+
+        for (XAResourceHolderState resource : allResources) {
+            if (!resource.isEnded()) {
+                if (log.isDebugEnabled()) log.debug("found unclosed resource to delist: " + resource);
                 try {
-                    delistResource(resourceHolderState, flag);
+                    delistResource(resource, flag);
                 } catch (BitronixRollbackSystemException ex) {
-                    rolledBackResources.add(resourceHolderState);
-                    if (log.isDebugEnabled()) log.debug("resource unilaterally rolled back: " + resourceHolderState, ex);
+                    rolledBackResources.add(resource);
+                    if (log.isDebugEnabled())
+                        log.debug("resource unilaterally rolled back: " + resource, ex);
                 } catch (SystemException ex) {
-                    failedResources.add(resourceHolderState);
-                    log.warn("error delisting resource, assuming unilateral rollback: " + resourceHolderState, ex);
+                    failedResources.add(resource);
+                    log.warn("error delisting resource, assuming unilateral rollback: " + resource, ex);
                 }
-            }
-            else
-                if (log.isDebugEnabled()) log.debug("no need to delist already closed resource: " + resourceHolderState);
+            } else if (log.isDebugEnabled())
+                log.debug("no need to delist already closed resource: " + resource);
         } // for
 
         if (!rolledBackResources.isEmpty() || !failedResources.isEmpty()) {
-            StringBuffer sb = new StringBuffer();
+            String lineSeparator = System.getProperty("line.separator");
+            StringBuilder sb = new StringBuilder();
             if (!rolledBackResources.isEmpty()) {
-                sb.append(System.getProperty("line.separator"));
+                sb.append(lineSeparator);
                 sb.append("  resource(s) ");
                 sb.append(Decoder.collectResourcesNames(rolledBackResources));
                 sb.append(" unilaterally rolled back");
 
             }
             if (!failedResources.isEmpty()) {
-                sb.append(System.getProperty("line.separator"));
+                sb.append(lineSeparator);
                 sb.append("  resource(s) ");
                 sb.append(Decoder.collectResourcesNames(failedResources));
                 sb.append(" could not be delisted");
@@ -441,7 +495,7 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
      * @throws BitronixSystemException when a resource could not rollback prepapared state.
      */
     private void rollbackPrepareFailure(RollbackException rbEx) throws BitronixSystemException {
-        List interestedResources = resourceManager.getAllResources();
+        List<XAResourceHolderState> interestedResources = resourceManager.getAllResources();
         try {
             rollbacker.rollback(this, interestedResources);
             if (log.isDebugEnabled()) log.debug("rollback after prepare failure succeeded");
@@ -450,8 +504,8 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
             PhaseException preparePhaseEx = (PhaseException) rbEx.getCause();
             PhaseException rollbackPhaseEx = (PhaseException) ex.getCause();
 
-            List exceptions = new ArrayList();
-            List resources = new ArrayList();
+            List<Exception> exceptions = new ArrayList<Exception>();
+            List<XAResourceHolderState> resources = new ArrayList<XAResourceHolderState>();
 
             exceptions.addAll(preparePhaseEx.getExceptions());
             exceptions.addAll(rollbackPhaseEx.getExceptions());
@@ -489,9 +543,7 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         getResourceManager().clearXAResourceHolderStates();
 
         if (log.isDebugEnabled()) log.debug("after completion, " + synchronizationScheduler.size() + " synchronization(s) to execute");
-        Iterator it = synchronizationScheduler.iterator();
-        while (it.hasNext()) {
-            Synchronization synchronization = (Synchronization) it.next();
+        for (Synchronization synchronization : synchronizationScheduler) {
             try {
                 if (log.isDebugEnabled()) log.debug("executing synchronization " + synchronization + " with status=" + Decoder.decodeStatus(status));
                 synchronization.afterCompletion(status);
@@ -503,6 +555,17 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
         ManagementRegistrar.unregister("bitronix.tm:type=Transaction,Gtrid=" + resourceManager.getGtrid());
     }
 
+    static String buildZeroTransactionDebugMessage(StackTrace activationStackTrace, StackTrace commitStackTrace) {
+        String lineSeparator = System.getProperty("line.separator");
+        final StringBuilder sb = new StringBuilder();
+        sb.append("committed transaction with 0 enlisted resource").append(lineSeparator);
+        sb.append("==================== Began at ====================").append(lineSeparator);
+        sb.append(ExceptionUtils.getStackTrace(activationStackTrace)).append(lineSeparator);
+        sb.append("==================== Committed at ====================").append(lineSeparator);
+        sb.append(ExceptionUtils.getStackTrace(commitStackTrace)).append(lineSeparator);
+        return sb.toString();
+    }
+
     private boolean isDone() {
         switch (status) {
             case Status.STATUS_PREPARING:
@@ -548,4 +611,13 @@ public class BitronixTransaction implements Transaction, BitronixTransactionMBea
     public Date getStartDate() {
         return startDate;
     }
+
+    /**
+     * Returns the activation {@link StackTrace} if it is available.
+     *
+     * @return the call stack of where the transaction began
+     */
+    StackTrace getActivationStackTrace() {
+        return activationStackTrace;
+    }
 }
diff --git a/src/bitronix/tm/BitronixTransactionManager.java b/src/bitronix/tm/BitronixTransactionManager.java
index 8c8654a..9e87e02 100644
--- a/src/bitronix/tm/BitronixTransactionManager.java
+++ b/src/bitronix/tm/BitronixTransactionManager.java
@@ -20,17 +20,40 @@
  */
 package bitronix.tm;
 
-import bitronix.tm.internal.*;
-import bitronix.tm.utils.*;
+import bitronix.tm.internal.BitronixSystemException;
+import bitronix.tm.internal.ThreadContext;
+import bitronix.tm.internal.XAResourceManager;
+import bitronix.tm.utils.Decoder;
+import bitronix.tm.utils.InitializationException;
+import bitronix.tm.utils.MonotonicClock;
+import bitronix.tm.utils.Scheduler;
+import bitronix.tm.utils.Service;
+import bitronix.tm.utils.Uid;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
 
-import javax.naming.*;
-import javax.transaction.*;
+import javax.naming.NamingException;
+import javax.naming.Reference;
+import javax.naming.Referenceable;
+import javax.naming.StringRefAddr;
+import javax.transaction.HeuristicMixedException;
+import javax.transaction.HeuristicRollbackException;
+import javax.transaction.InvalidTransactionException;
+import javax.transaction.NotSupportedException;
+import javax.transaction.RollbackException;
+import javax.transaction.Status;
+import javax.transaction.Synchronization;
+import javax.transaction.SystemException;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
+import javax.transaction.UserTransaction;
 import javax.transaction.xa.XAException;
 import java.io.IOException;
-import java.util.*;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * Implementation of {@link TransactionManager} and {@link UserTransaction}.
@@ -42,8 +65,8 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
     private final static Logger log = LoggerFactory.getLogger(BitronixTransactionManager.class);
     private final static String MDC_GTRID_KEY = "btm-gtrid";
 
-    private final Map contexts = Collections.synchronizedMap(new HashMap());
-    private final Map inFlightTransactions = Collections.synchronizedMap(new HashMap());
+    private final Map<Thread, ThreadContext> contexts = new ConcurrentHashMap<Thread, ThreadContext>(128, 0.75f, 128);
+    private final Map<Uid, BitronixTransaction> inFlightTransactions = new ConcurrentHashMap<Uid, BitronixTransaction>(128, 0.75f, 128);
 
     private volatile boolean shuttingDown;
 
@@ -69,7 +92,7 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
             }
 
             if (log.isDebugEnabled()) log.debug("recovery will run in the background every " + backgroundRecoveryInterval + " second(s)");
-            Date nextExecutionDate = new Date(System.currentTimeMillis() + (backgroundRecoveryInterval * 1000L));
+            Date nextExecutionDate = new Date(MonotonicClock.currentTimeMillis() + (backgroundRecoveryInterval * 1000L));
             TransactionManagerServices.getTaskScheduler().scheduleRecovery(TransactionManagerServices.getRecoverer(), nextExecutionDate);
         } catch (IOException ex) {
             throw new InitializationException("cannot open disk journal", ex);
@@ -167,7 +190,9 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
             clearCurrentContextForSuspension();
             return currentTx;
         } catch (XAException ex) {
-            throw new BitronixSystemException("cannot suspend " + currentTx + ", error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+            String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
+            throw new BitronixSystemException("cannot suspend " + currentTx + ", error=" + Decoder.decodeXAExceptionErrorCode(ex) +
+                    (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
         }
     }
 
@@ -190,7 +215,9 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
             ctx.setTransaction(tx);
             setCurrentContext(ctx);
         } catch (XAException ex) {
-            throw new BitronixSystemException("cannot resume " + tx + ", error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+            String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
+            throw new BitronixSystemException("cannot resume " + tx + ", error=" + Decoder.decodeXAExceptionErrorCode(ex) +
+                    (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
         }
     }
 
@@ -224,27 +251,23 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
      * @return the timestamp or Long.MIN_VALUE if there is no in-flight transaction.
      */
     public long getOldestInFlightTransactionTimestamp() {
-        synchronized (inFlightTransactions) {
-            if (inFlightTransactions.size() == 0) {
-                if (log.isDebugEnabled()) log.debug("oldest in-flight transaction's timestamp: " + Long.MIN_VALUE);
-                return Long.MIN_VALUE;
-            }
-
-            long oldestTimestamp = Long.MAX_VALUE;
+        if (inFlightTransactions.isEmpty()) {
+            if (log.isDebugEnabled()) log.debug("oldest in-flight transaction's timestamp: " + Long.MIN_VALUE);
+            return Long.MIN_VALUE;
+        }
 
-            Iterator it = inFlightTransactions.entrySet().iterator();
-            while (it.hasNext()) {
-                Map.Entry entry = (Map.Entry) it.next();
-                Uid gtrid = (Uid) entry.getKey();
-                long currentTimestamp = gtrid.extractTimestamp();
+        long oldestTimestamp = Long.MAX_VALUE;
 
-                if (currentTimestamp < oldestTimestamp)
-                    oldestTimestamp = currentTimestamp;
-            }
+        for (Map.Entry<Uid, BitronixTransaction> entry : inFlightTransactions.entrySet()) {
+            Uid gtrid = entry.getKey();
+            long currentTimestamp = gtrid.extractTimestamp();
 
-            if (log.isDebugEnabled()) log.debug("oldest in-flight transaction's timestamp: " + oldestTimestamp);    
-            return oldestTimestamp;
+            if (currentTimestamp < oldestTimestamp)
+                oldestTimestamp = currentTimestamp;
         }
+
+        if (log.isDebugEnabled()) log.debug("oldest in-flight transaction's timestamp: " + oldestTimestamp);
+        return oldestTimestamp;
     }
 
     /**
@@ -271,14 +294,10 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
     public void dumpTransactionContexts() {
         if (log.isDebugEnabled()) {
             if (log.isDebugEnabled()) log.debug("dumping " + inFlightTransactions.size() + " transaction context(s)");
-            synchronized (inFlightTransactions) {
-                Iterator it = inFlightTransactions.entrySet().iterator();
-                while (it.hasNext()) {
-                    Map.Entry entry = (Map.Entry) it.next();
-                    BitronixTransaction tx = (BitronixTransaction) entry.getValue();
-                    if (log.isDebugEnabled()) log.debug(tx.toString());
-                }
-            } // synchronized (inFlightTransactions)
+            for (Map.Entry<Uid, BitronixTransaction> entry : inFlightTransactions.entrySet()) {
+                BitronixTransaction tx = entry.getValue();
+                if (log.isDebugEnabled()) log.debug(tx.toString());
+            }
         } // if
     }
 
@@ -409,11 +428,19 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
     }
 
     /**
+     * Get the context attached to the current thread. If there is no current context, return null.
+     * @return the context.
+     */
+    ThreadContext currentThreadContext() {
+        return contexts.get(Thread.currentThread());
+    }
+
+    /**
      * Get the context attached to the current thread. If there is no current context, a new one is created.
      * @return the context.
      */
     private ThreadContext getOrCreateCurrentContext() {
-        ThreadContext threadContext = (ThreadContext) contexts.get(Thread.currentThread());
+        ThreadContext threadContext = contexts.get(Thread.currentThread());
         if (threadContext == null) {
             if (log.isDebugEnabled()) log.debug("creating new thread context");
             threadContext = new ThreadContext();
@@ -423,7 +450,7 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
     }
 
     private class ClearContextSynchronization implements Synchronization {
-        private BitronixTransaction currentTx;
+        private final BitronixTransaction currentTx;
 
         public ClearContextSynchronization(BitronixTransaction currentTx) {
             this.currentTx = currentTx;
@@ -433,17 +460,15 @@ public class BitronixTransactionManager implements TransactionManager, UserTrans
         }
 
         public void afterCompletion(int status) {
-            synchronized (contexts) {
-                Iterator it = contexts.entrySet().iterator();
-                while (it.hasNext()) {
-                    Map.Entry entry = (Map.Entry) it.next();
-                    ThreadContext context = (ThreadContext) entry.getValue();
-                    if (context.getTransaction() == currentTx) {
-                        if (log.isDebugEnabled()) log.debug("clearing thread context: " + context);
-                        it.remove();
-                        break;
-                    }
-                } // while
+            Iterator<Map.Entry<Thread, ThreadContext>> it = contexts.entrySet().iterator();
+            while (it.hasNext()) {
+                Map.Entry<Thread, ThreadContext> entry = it.next();
+                ThreadContext context = entry.getValue();
+                if (context.getTransaction() == currentTx) {
+                    if (log.isDebugEnabled()) log.debug("clearing thread context: " + context);
+                    it.remove();
+                    break;
+                }
             }
             inFlightTransactions.remove(currentTx.getResourceManager().getGtrid());
             MDC.remove(MDC_GTRID_KEY);
diff --git a/src/bitronix/tm/BitronixTransactionManagerObjectFactory.java b/src/bitronix/tm/BitronixTransactionManagerObjectFactory.java
index 8839cd3..972fffc 100644
--- a/src/bitronix/tm/BitronixTransactionManagerObjectFactory.java
+++ b/src/bitronix/tm/BitronixTransactionManagerObjectFactory.java
@@ -43,7 +43,7 @@ public class BitronixTransactionManagerObjectFactory implements ObjectFactory {
      * @see BitronixTransactionManager
      * @return the unique transaction manager instance.
      */
-    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception {
+    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) throws Exception {
         if (log.isDebugEnabled()) log.debug("returning the unique transaction manager instance");
         return TransactionManagerServices.getTransactionManager();
     }
diff --git a/src/bitronix/tm/BitronixTransactionSynchronizationRegistry.java b/src/bitronix/tm/BitronixTransactionSynchronizationRegistry.java
index 2750548..b824c7e 100644
--- a/src/bitronix/tm/BitronixTransactionSynchronizationRegistry.java
+++ b/src/bitronix/tm/BitronixTransactionSynchronizationRegistry.java
@@ -21,9 +21,8 @@
 package bitronix.tm;
 
 import bitronix.tm.internal.BitronixRuntimeException;
+import bitronix.tm.internal.ThreadContext;
 import bitronix.tm.utils.Scheduler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import javax.naming.NamingException;
 import javax.naming.Reference;
@@ -33,7 +32,6 @@ import javax.transaction.Status;
 import javax.transaction.Synchronization;
 import javax.transaction.SystemException;
 import javax.transaction.TransactionSynchronizationRegistry;
-import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -43,16 +41,7 @@ import java.util.Map;
  */
 public class BitronixTransactionSynchronizationRegistry implements TransactionSynchronizationRegistry, Referenceable {
 
-    private final static Logger log = LoggerFactory.getLogger(BitronixTransactionSynchronizationRegistry.class);
-
-    private static BitronixTransactionManager transactionManager;
-    
-    private final static ThreadLocal resourcesTl = new ThreadLocal() {
-        protected Object initialValue() {
-            return new HashMap();
-        }
-    };
-
+    private final BitronixTransactionManager transactionManager;
 
     public BitronixTransactionSynchronizationRegistry() {
         transactionManager = TransactionManagerServices.getTransactionManager();
@@ -111,13 +100,7 @@ public class BitronixTransactionSynchronizationRegistry implements TransactionSy
             if (currentTransaction() == null || currentTransaction().getStatus() == Status.STATUS_NO_TRANSACTION)
                 throw new IllegalStateException("no transaction started on current thread");
 
-            Object oldValue = getResources().put(key, value);
-
-            if (oldValue == null && getResources().size() == 1) {
-                if (log.isDebugEnabled()) log.debug("first resource put in synchronization registry, registering a ClearRegistryResourcesSynchronization");
-                Synchronization synchronization = new ClearRegistryResourcesSynchronization();
-                currentTransaction().getSynchronizationScheduler().add(synchronization, Scheduler.ALWAYS_LAST_POSITION);
-            }
+            getResources().put(key, value);
         } catch (SystemException ex) {
             throw new BitronixRuntimeException("cannot get current transaction status", ex);
         }
@@ -153,8 +136,12 @@ public class BitronixTransactionSynchronizationRegistry implements TransactionSy
         }
     }
 
-    private Map getResources() {
-        return ((Map) resourcesTl.get());
+    private Map<Object, Object> getResources() {
+        ThreadContext currentContext = transactionManager.currentThreadContext();
+        if (currentContext == null) {
+            return null;
+        }
+        return currentContext.getResources();
     }
 
     private BitronixTransaction currentTransaction() {
@@ -170,14 +157,4 @@ public class BitronixTransactionSynchronizationRegistry implements TransactionSy
         );
     }
 
-    private class ClearRegistryResourcesSynchronization implements Synchronization {
-        public void beforeCompletion() {
-        }
-
-        public void afterCompletion(int status) {
-            if (log.isDebugEnabled()) log.debug("clearing resources");
-            getResources().clear();
-        }
-    }
-
 }
diff --git a/src/bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.java b/src/bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.java
index 33efa1f..0167901 100644
--- a/src/bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.java
+++ b/src/bitronix/tm/BitronixTransactionSynchronizationRegistryObjectFactory.java
@@ -43,7 +43,7 @@ public class BitronixTransactionSynchronizationRegistryObjectFactory implements
      * @see bitronix.tm.BitronixTransactionSynchronizationRegistry
      * @return the unique synchronization registry instance.
      */
-    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception {
+    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) throws Exception {
         if (log.isDebugEnabled()) log.debug("returning the unique synchronization registry instance");
         return TransactionManagerServices.getTransactionSynchronizationRegistry();
     }
diff --git a/src/bitronix/tm/BitronixXid.java b/src/bitronix/tm/BitronixXid.java
index 92d3314..c851378 100644
--- a/src/bitronix/tm/BitronixXid.java
+++ b/src/bitronix/tm/BitronixXid.java
@@ -48,8 +48,10 @@ public class BitronixXid implements Xid {
      */
     public static final int FORMAT_ID = 0x42746e78;
 
-    private Uid globalTransactionId;
-    private Uid branchQualifier;
+    private final Uid globalTransactionId;
+    private final Uid branchQualifier;
+    private final int hashCodeValue;
+    private final String toStringValue;
 
     /**
      * Create a new XID using the specified GTRID and BQUAL.
@@ -59,11 +61,15 @@ public class BitronixXid implements Xid {
     public BitronixXid(Uid globalTransactionId, Uid branchQualifier) {
         this.globalTransactionId = globalTransactionId;
         this.branchQualifier = branchQualifier;
+        this.toStringValue = precalculateToString();
+        this.hashCodeValue = precalculateHashCode();
     }
 
     public BitronixXid(Xid xid) {
         this.globalTransactionId = new Uid(xid.getGlobalTransactionId());
         this.branchQualifier = new Uid(xid.getBranchQualifier());
+        this.toStringValue = precalculateToString();
+        this.hashCodeValue = precalculateHashCode();
     }
 
     /**
@@ -103,7 +109,11 @@ public class BitronixXid implements Xid {
      * @return a human-readable string representation.
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer(288);
+        return toStringValue;
+    }
+
+    private String precalculateToString() {
+        StringBuilder sb = new StringBuilder(288);
         sb.append("a Bitronix XID [");
         sb.append(globalTransactionId.toString());
         sb.append(" : ");
@@ -132,6 +142,10 @@ public class BitronixXid implements Xid {
      * @return a constant hash value.
      */
     public int hashCode() {
+        return hashCodeValue;
+    }
+
+    private int precalculateHashCode() {
         int hashCode = FORMAT_ID;
         if (globalTransactionId != null)
             hashCode += globalTransactionId.hashCode();
diff --git a/src/bitronix/tm/Configuration.java b/src/bitronix/tm/Configuration.java
index 77f1025..7831c0a 100644
--- a/src/bitronix/tm/Configuration.java
+++ b/src/bitronix/tm/Configuration.java
@@ -49,27 +49,29 @@ public class Configuration implements Service {
 
     private final static int MAX_SERVER_ID_LENGTH = 51;
 
-    private String serverId;
-    private byte[] serverIdArray;
-    private String logPart1Filename;
-    private String logPart2Filename;
-    private boolean forcedWriteEnabled;
-    private boolean forceBatchingEnabled;
-    private int maxLogSizeInMb;
-    private boolean filterLogStatus;
-    private boolean skipCorruptedLogs;
-    private boolean asynchronous2Pc;
-    private boolean warnAboutZeroResourceTransaction;
-    private int defaultTransactionTimeout;
-    private int gracefulShutdownInterval;
-    private int backgroundRecoveryIntervalSeconds;
-    private boolean disableJmx;
-    private String jndiUserTransactionName;
-    private String jndiTransactionSynchronizationRegistryName;
-    private String journal;
-    private boolean currentNodeOnlyRecovery;
-    private boolean allowMultipleLrc;
-    private String resourceConfigurationFilename;
+    private volatile String serverId;
+    private volatile byte[] serverIdArray;
+    private volatile String logPart1Filename;
+    private volatile String logPart2Filename;
+    private volatile boolean forcedWriteEnabled;
+    private volatile boolean forceBatchingEnabled;
+    private volatile int maxLogSizeInMb;
+    private volatile boolean filterLogStatus;
+    private volatile boolean skipCorruptedLogs;
+    private volatile boolean asynchronous2Pc;
+    private volatile boolean warnAboutZeroResourceTransaction;
+    private volatile boolean debugZeroResourceTransaction;
+    private volatile int defaultTransactionTimeout;
+    private volatile int gracefulShutdownInterval;
+    private volatile int backgroundRecoveryIntervalSeconds;
+    private volatile boolean disableJmx;
+    private volatile String jndiUserTransactionName;
+    private volatile String jndiTransactionSynchronizationRegistryName;
+    private volatile String journal;
+    private volatile String exceptionAnalyzer;
+    private volatile boolean currentNodeOnlyRecovery;
+    private volatile boolean allowMultipleLrc;
+    private volatile String resourceConfigurationFilename;
 
 
     protected Configuration() {
@@ -104,6 +106,7 @@ public class Configuration implements Service {
             skipCorruptedLogs = getBoolean(properties, "bitronix.tm.journal.disk.skipCorruptedLogs", false);
             asynchronous2Pc = getBoolean(properties, "bitronix.tm.2pc.async", false);
             warnAboutZeroResourceTransaction = getBoolean(properties, "bitronix.tm.2pc.warnAboutZeroResourceTransactions", true);
+            debugZeroResourceTransaction = getBoolean(properties, "bitronix.tm.2pc.debugZeroResourceTransactions", false);
             defaultTransactionTimeout = getInt(properties, "bitronix.tm.timer.defaultTransactionTimeout", 60);
             gracefulShutdownInterval = getInt(properties, "bitronix.tm.timer.gracefulShutdownInterval", 60);
             backgroundRecoveryIntervalSeconds = getInt(properties, "bitronix.tm.timer.backgroundRecoveryIntervalSeconds", 60);
@@ -111,6 +114,7 @@ public class Configuration implements Service {
             jndiUserTransactionName = getString(properties, "bitronix.tm.jndi.userTransactionName", "java:comp/UserTransaction");
             jndiTransactionSynchronizationRegistryName = getString(properties, "bitronix.tm.jndi.transactionSynchronizationRegistryName", "java:comp/TransactionSynchronizationRegistry");
             journal = getString(properties, "bitronix.tm.journal", "disk");
+            exceptionAnalyzer = getString(properties, "bitronix.tm.exceptionAnalyzer", null);
             currentNodeOnlyRecovery = getBoolean(properties, "bitronix.tm.currentNodeOnlyRecovery", true);
             allowMultipleLrc = getBoolean(properties, "bitronix.tm.allowMultipleLrc", false);
             resourceConfigurationFilename = getString(properties, "bitronix.tm.resource.configuration", null);
@@ -346,6 +350,32 @@ public class Configuration implements Service {
     }
 
     /**
+     * Should creation and commit call stacks of transactions executed without a single enlisted tracked and logged
+     * or not?
+     * <p>Property name:<br/><b>bitronix.tm.2pc.debugZeroResourceTransactions -</b> <i>(defaults to false)</i></p>
+     * @return true if creation and commit call stacks of transactions executed without a single enlisted resource
+     *         should be tracked and logged.
+     */
+    public boolean isDebugZeroResourceTransaction() {
+        return debugZeroResourceTransaction;
+    }
+
+    /**
+     * Set if creation and commit call stacks of transactions executed without a single enlisted resource should be
+     * tracked and logged.
+     * @see #isDebugZeroResourceTransaction()
+     * @see #isWarnAboutZeroResourceTransaction()
+     * @param debugZeroResourceTransaction true if the creation and commit call stacks of transaction executed without
+     *        a single enlisted resource should be tracked and logged.
+     * @return this.
+     */
+    public Configuration setDebugZeroResourceTransaction(boolean debugZeroResourceTransaction) {
+        checkNotStarted();
+        this.debugZeroResourceTransaction = debugZeroResourceTransaction;
+        return this;
+    }
+
+    /**
      * Default transaction timeout in seconds.
      * <p>Property name:<br/><b>bitronix.tm.timer.defaultTransactionTimeout -</b> <i>(defaults to 60)</i></p>
      * @return the default transaction timeout in seconds.
@@ -522,6 +552,26 @@ public class Configuration implements Service {
     }
 
     /**
+     * Get the exception analyzer implementation. Can be <code>null</code> for the default one or a class name.
+     * @return the exception analyzer name.
+     */
+    public String getExceptionAnalyzer() {
+        return exceptionAnalyzer;
+    }
+
+    /**
+     * Set the exception analyzer implementation. Can be <code>null</code> for the default one or a class name.
+     * @see #getExceptionAnalyzer()
+     * @param exceptionAnalyzer the exception analyzer name.
+     * @return this.
+     */
+    public Configuration setExceptionAnalyzer(String exceptionAnalyzer) {
+        checkNotStarted();
+        this.exceptionAnalyzer = exceptionAnalyzer;
+        return this;
+    }
+
+    /**
      * Should the recovery process <b>not</b> recover XIDs generated with another JVM unique ID? Setting this property to true
      * is useful in clustered environments where multiple instances of BTM are running on different nodes.
      * @see #getServerId() contains the value used as the JVM unique ID.
@@ -622,10 +672,11 @@ public class Configuration implements Service {
     }
 
     public void shutdown() {
+        serverIdArray = null;
     }
 
     public String toString() {
-        StringBuffer sb = new StringBuffer(512);
+        StringBuilder sb = new StringBuilder(512);
         sb.append("a Configuration with [");
 
         try {
@@ -659,7 +710,7 @@ public class Configuration implements Service {
     }
 
     static boolean getBoolean(Properties properties, String key, boolean defaultValue) {
-        return Boolean.valueOf(getString(properties, key, "" + defaultValue)).booleanValue();
+        return Boolean.valueOf(getString(properties, key, "" + defaultValue));
     }
 
     static int getInt(Properties properties, String key, int defaultValue) {
diff --git a/src/bitronix/tm/TransactionManagerServices.java b/src/bitronix/tm/TransactionManagerServices.java
index a54b0e7..7289315 100644
--- a/src/bitronix/tm/TransactionManagerServices.java
+++ b/src/bitronix/tm/TransactionManagerServices.java
@@ -26,17 +26,25 @@ import bitronix.tm.journal.NullJournal;
 import bitronix.tm.recovery.Recoverer;
 import bitronix.tm.resource.ResourceLoader;
 import bitronix.tm.timer.TaskScheduler;
-import bitronix.tm.twopc.executor.*;
-import bitronix.tm.utils.InitializationException;
+import bitronix.tm.twopc.executor.AsyncExecutor;
+import bitronix.tm.twopc.executor.Executor;
+import bitronix.tm.twopc.executor.SyncExecutor;
 import bitronix.tm.utils.ClassLoaderUtils;
+import bitronix.tm.utils.DefaultExceptionAnalyzer;
+import bitronix.tm.utils.ExceptionAnalyzer;
+import bitronix.tm.utils.InitializationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
 /**
  * Container for all BTM services.
- * <p>The different services available are: {@link BitronixTransactionManager}, {@link Configuration}, {@link Journal},
- * {@link TaskScheduler}, {@link ResourceLoader}, {@link Recoverer} and {@link Executor}. They are used in all places
- * of the TM so they must be globally reachable.</p>
+ * <p>The different services available are: {@link BitronixTransactionManager}, {@link BitronixTransactionSynchronizationRegistry}
+ * {@link Configuration}, {@link Journal}, {@link TaskScheduler}, {@link ResourceLoader}, {@link Recoverer} and {@link Executor}.
+ * They are used in all places of the TM so they must be globally reachable.</p>
  *
  * @author lorban
  */
@@ -44,32 +52,46 @@ public class TransactionManagerServices {
 
     private final static Logger log = LoggerFactory.getLogger(TransactionManagerServices.class);
 
-    private static BitronixTransactionManager transactionManager;
-    private static BitronixTransactionSynchronizationRegistry transactionSynchronizationRegistry;
-    private static Configuration configuration;
-    private static Journal journal;
-    private static TaskScheduler taskScheduler;
-    private static ResourceLoader resourceLoader;
-    private static Recoverer recoverer;
-    private static Executor executor;
+    private static final Lock transactionManagerLock = new ReentrantLock();
+    private static volatile BitronixTransactionManager transactionManager;
+
+    private static final AtomicReference<BitronixTransactionSynchronizationRegistry> transactionSynchronizationRegistryRef = new AtomicReference<BitronixTransactionSynchronizationRegistry>();
+    private static final AtomicReference<Configuration> configurationRef = new AtomicReference<Configuration>();
+    private static final AtomicReference<Journal> journalRef = new AtomicReference<Journal>();
+    private static final AtomicReference<TaskScheduler> taskSchedulerRef = new AtomicReference<TaskScheduler>();
+    private static final AtomicReference<ResourceLoader> resourceLoaderRef = new AtomicReference<ResourceLoader>();
+    private static final AtomicReference<Recoverer> recovererRef = new AtomicReference<Recoverer>();
+    private static final AtomicReference<Executor> executorRef = new AtomicReference<Executor>();
+    private static final AtomicReference<ExceptionAnalyzer> exceptionAnalyzerRef = new AtomicReference<ExceptionAnalyzer>();
 
     /**
      * Create an initialized transaction manager.
      * @return the transaction manager.
      */
-    public synchronized static BitronixTransactionManager getTransactionManager() {
-        if (transactionManager == null)
-            transactionManager = new BitronixTransactionManager();
-        return transactionManager;
+    public static BitronixTransactionManager getTransactionManager() {
+        transactionManagerLock.lock();
+        try {
+            if (transactionManager == null) {
+                transactionManager = new BitronixTransactionManager();
+            }
+            return transactionManager;
+        } finally {
+            transactionManagerLock.unlock();
+        }
     }
 
     /**
      * Create the JTA 1.1 TransactionSynchronizationRegistry.
      * @return the TransactionSynchronizationRegistry.
      */
-    public synchronized static BitronixTransactionSynchronizationRegistry getTransactionSynchronizationRegistry() {
-        if (transactionSynchronizationRegistry == null)
+    public static BitronixTransactionSynchronizationRegistry getTransactionSynchronizationRegistry() {
+        BitronixTransactionSynchronizationRegistry transactionSynchronizationRegistry = transactionSynchronizationRegistryRef.get();
+        if (transactionSynchronizationRegistry == null) {
             transactionSynchronizationRegistry = new BitronixTransactionSynchronizationRegistry();
+            if (!transactionSynchronizationRegistryRef.compareAndSet(null, transactionSynchronizationRegistry)) {
+                transactionSynchronizationRegistry = transactionSynchronizationRegistryRef.get();
+            }
+        }
         return transactionSynchronizationRegistry;
     }
 
@@ -77,9 +99,14 @@ public class TransactionManagerServices {
      * Create the configuration of all the components of the transaction manager.
      * @return the global configuration.
      */
-    public synchronized static Configuration getConfiguration() {
-        if (configuration == null)
+    public static Configuration getConfiguration() {
+        Configuration configuration = configurationRef.get();
+        if (configuration == null) {
             configuration = new Configuration();
+            if (!configurationRef.compareAndSet(null, configuration)) {
+                configuration = configurationRef.get();
+            }
+        }
         return configuration;
     }
 
@@ -87,22 +114,27 @@ public class TransactionManagerServices {
      * Create the transactions journal.
      * @return the transactions journal.
      */
-    public synchronized static Journal getJournal() {
+    public static Journal getJournal() {
+        Journal journal = journalRef.get();
         if (journal == null) {
-            String configuredJounal = getConfiguration().getJournal();
-            if ("disk".equals(configuredJounal))
-                journal = new DiskJournal();
-            else if ("null".equals(configuredJounal))
+            String configuredJournal = getConfiguration().getJournal();
+            if ("null".equals(configuredJournal) || null == configuredJournal) {
                 journal = new NullJournal();
-            else {
+            } else if ("disk".equals(configuredJournal)) {
+                journal = new DiskJournal();
+            } else {
                 try {
-                    Class clazz = ClassLoaderUtils.loadClass(configuredJounal);
+                    Class clazz = ClassLoaderUtils.loadClass(configuredJournal);
                     journal = (Journal) clazz.newInstance();
                 } catch (Exception ex) {
-                    throw new InitializationException("invalid journal implementation '" + configuredJounal + "'", ex);
+                    throw new InitializationException("invalid journal implementation '" + configuredJournal + "'", ex);
                 }
             }
-            if (log.isDebugEnabled()) log.debug("using journal " + configuredJounal);
+            if (log.isDebugEnabled()) log.debug("using journal " + configuredJournal);
+
+            if (!journalRef.compareAndSet(null, journal)) {
+                journal = journalRef.get();
+            }
         }
         return journal;
     }
@@ -111,10 +143,15 @@ public class TransactionManagerServices {
      * Create the task scheduler.
      * @return the task scheduler.
      */
-    public synchronized static TaskScheduler getTaskScheduler() {
+    public static TaskScheduler getTaskScheduler() {
+        TaskScheduler taskScheduler = taskSchedulerRef.get();
         if (taskScheduler == null) {
             taskScheduler = new TaskScheduler();
-            taskScheduler.start();
+            if (!taskSchedulerRef.compareAndSet(null, taskScheduler)) {
+                taskScheduler = taskSchedulerRef.get();
+            } else {
+                taskScheduler.start();
+            }
         }
         return taskScheduler;
     }
@@ -123,10 +160,14 @@ public class TransactionManagerServices {
      * Create the resource loader.
      * @return the resource loader.
      */
-    public synchronized static ResourceLoader getResourceLoader() {
+    public static ResourceLoader getResourceLoader() {
+        ResourceLoader resourceLoader = resourceLoaderRef.get();
         if (resourceLoader == null) {
             resourceLoader = new ResourceLoader();
-        }
+            if (!resourceLoaderRef.compareAndSet(null, resourceLoader)) {
+                resourceLoader = resourceLoaderRef.get();
+            }
+        }        
         return resourceLoader;
     }
 
@@ -134,9 +175,13 @@ public class TransactionManagerServices {
      * Create the transaction recoverer.
      * @return the transaction recoverer.
      */
-    public synchronized static Recoverer getRecoverer() {
+    public static Recoverer getRecoverer() {
+        Recoverer recoverer = recovererRef.get();
         if (recoverer == null) {
             recoverer = new Recoverer();
+            if (!recovererRef.compareAndSet(null, recoverer)) {
+                recoverer = recovererRef.get();
+            }
         }
         return recoverer;
     }
@@ -145,34 +190,53 @@ public class TransactionManagerServices {
      * Create the 2PC executor.
      * @return the 2PC executor.
      */
-    public synchronized static Executor getExecutor() {
+    public static Executor getExecutor() {
+        Executor executor = executorRef.get();
         if (executor == null) {
-            boolean async = getConfiguration().isAsynchronous2Pc();
-            if (async) {
-                if (log.isDebugEnabled()) log.debug("trying to use ConcurrentExecutor");
-                executor = new ConcurrentExecutor();
-                if (!executor.isUsable()) {
-                    if (log.isDebugEnabled()) log.debug("trying to use BackportConcurrentExecutor");
-                    executor = new BackportConcurrentExecutor();
-                }
-                if (!executor.isUsable()) {
-                    if (log.isDebugEnabled()) log.debug("using SimpleAsyncExecutor");
-                    executor = new SimpleAsyncExecutor();
-                }
-            }
-            else {
+            if (getConfiguration().isAsynchronous2Pc()) {
+                if (log.isDebugEnabled()) log.debug("using AsyncExecutor");
+                executor = new AsyncExecutor();
+            } else {
                 if (log.isDebugEnabled()) log.debug("using SyncExecutor");
                 executor = new SyncExecutor();
             }
+            if (!executorRef.compareAndSet(null, executor)) {
+                executor.shutdown();
+                executor = executorRef.get();
+            }
         }
         return executor;
     }
 
     /**
+     * Create the exception analyzer.
+     * @return the exception analyzer.
+     */
+   public static ExceptionAnalyzer getExceptionAnalyzer() {
+        ExceptionAnalyzer analyzer = exceptionAnalyzerRef.get();
+        if (analyzer == null) {
+            String exceptionAnalyzerName = getConfiguration().getExceptionAnalyzer();
+            analyzer = new DefaultExceptionAnalyzer();
+            if (exceptionAnalyzerName != null) {
+                try {
+                    analyzer = (ExceptionAnalyzer) ClassLoaderUtils.loadClass(exceptionAnalyzerName).newInstance();
+                } catch (Exception ex) {
+                    log.warn("failed to initialize custom exception analyzer, using default one instead", ex);
+                }
+            }
+            if (!exceptionAnalyzerRef.compareAndSet(null, analyzer)) {
+                analyzer.shutdown();
+                analyzer = exceptionAnalyzerRef.get();
+            }
+        }
+        return analyzer;
+    }
+
+    /**
      * Check if the transaction manager has started.
      * @return true if the transaction manager has started.
      */
-    public synchronized static boolean isTransactionManagerRunning() {
+    public static boolean isTransactionManagerRunning() {
         return transactionManager != null;
     }
 
@@ -180,8 +244,8 @@ public class TransactionManagerServices {
      * Check if the task scheduler has started.
      * @return true if the task scheduler has started.
      */
-    public synchronized static boolean isTaskSchedulerRunning() {
-        return taskScheduler != null;
+    public static boolean isTaskSchedulerRunning() {
+        return taskSchedulerRef.get() != null;
     }
 
     /**
@@ -189,13 +253,15 @@ public class TransactionManagerServices {
      */
     protected static synchronized void clear() {
         transactionManager = null;
-        transactionSynchronizationRegistry = null;
-        configuration = null;
-        journal = null;
-        taskScheduler = null;
-        resourceLoader = null;
-        recoverer = null;
-        executor = null;
+
+        transactionSynchronizationRegistryRef.set(null);
+        configurationRef.set(null);
+        journalRef.set(null);
+        taskSchedulerRef.set(null);
+        resourceLoaderRef.set(null);
+        recovererRef.set(null);
+        executorRef.set(null);
+        exceptionAnalyzerRef.set(null);
     }
 
 }
diff --git a/src/bitronix/tm/Version.java b/src/bitronix/tm/Version.java
index 87f6fe7..1c8dfd5 100644
--- a/src/bitronix/tm/Version.java
+++ b/src/bitronix/tm/Version.java
@@ -2,6 +2,6 @@ package bitronix.tm;
 
                                     public final class Version {
                                         public static String getVersion() {
-                                            return "2.1.2";
+                                            return "2.1.4";
                                         }
                                     }
\ No newline at end of file
diff --git a/src/bitronix/tm/gui/TransactionLogHeaderPanel.java b/src/bitronix/tm/gui/TransactionLogHeaderPanel.java
index 7780727..3286eb1 100644
--- a/src/bitronix/tm/gui/TransactionLogHeaderPanel.java
+++ b/src/bitronix/tm/gui/TransactionLogHeaderPanel.java
@@ -83,7 +83,7 @@ public class TransactionLogHeaderPanel extends JPanel {
 
     public void read(File logFile, boolean active) throws IOException {
         RandomAccessFile raf = new RandomAccessFile(logFile, "r");
-        TransactionLogHeader header = new TransactionLogHeader(raf, 0L);
+        TransactionLogHeader header = new TransactionLogHeader(raf.getChannel(), 0L);
         raf.close();
         if (log.isDebugEnabled()) log.debug("read header: " + header);
         setLogFile(logFile);
diff --git a/src/bitronix/tm/internal/BitronixMultiSystemException.java b/src/bitronix/tm/internal/BitronixMultiSystemException.java
index 8f95b60..605537a 100644
--- a/src/bitronix/tm/internal/BitronixMultiSystemException.java
+++ b/src/bitronix/tm/internal/BitronixMultiSystemException.java
@@ -20,9 +20,9 @@
  */
 package bitronix.tm.internal;
 
+import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.utils.Decoder;
 
-import javax.transaction.SystemException;
 import javax.transaction.xa.XAException;
 import java.util.ArrayList;
 import java.util.List;
@@ -64,6 +64,8 @@ public class BitronixMultiSystemException extends BitronixSystemException {
                 XAException xaEx = (XAException) throwable;
                 errorMessage.append("(");
                 errorMessage.append(Decoder.decodeXAExceptionErrorCode(xaEx));
+                String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(xaEx);
+                if (extraErrorDetails != null) errorMessage.append(" - ").append(extraErrorDetails);
                 errorMessage.append(")");
             }
             errorMessage.append(" - ");
diff --git a/src/bitronix/tm/internal/ThreadContext.java b/src/bitronix/tm/internal/ThreadContext.java
index 795bc12..742ce87 100644
--- a/src/bitronix/tm/internal/ThreadContext.java
+++ b/src/bitronix/tm/internal/ThreadContext.java
@@ -25,6 +25,10 @@ import bitronix.tm.TransactionManagerServices;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * Transactional context of a thread. It contains both the active transaction (if any) and all default parameters
  * that a transaction running on a thread must inherit.
@@ -35,8 +39,9 @@ public class ThreadContext {
 
     private final static Logger log = LoggerFactory.getLogger(ThreadContext.class);
 
-    private BitronixTransaction transaction;
-    private int timeout = TransactionManagerServices.getConfiguration().getDefaultTransactionTimeout();
+    private volatile BitronixTransaction transaction;
+    private volatile int timeout = TransactionManagerServices.getConfiguration().getDefaultTransactionTimeout();
+    private final Map<Object, Object> resources = Collections.synchronizedMap(new HashMap<Object, Object>());
 
     /**
      * Return the transaction linked with this thread context.
@@ -83,6 +88,14 @@ public class ThreadContext {
     }
 
     /**
+     * Get this context's resources, in the JTA 1.1 TransactionSynchronizationRegistry sense.
+     * @return this context's resources.
+     */
+    public Map<Object, Object> getResources() {
+        return resources;
+    }
+
+    /**
      * Return a human-readable representation.
      * @return a human-readable representation.
      */
diff --git a/src/bitronix/tm/internal/XAResourceHolderState.java b/src/bitronix/tm/internal/XAResourceHolderState.java
index 23ad738..8f359e2 100644
--- a/src/bitronix/tm/internal/XAResourceHolderState.java
+++ b/src/bitronix/tm/internal/XAResourceHolderState.java
@@ -24,6 +24,7 @@ import bitronix.tm.resource.common.ResourceBean;
 import bitronix.tm.resource.common.XAResourceHolder;
 import bitronix.tm.BitronixXid;
 import bitronix.tm.utils.Decoder;
+import bitronix.tm.utils.MonotonicClock;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -49,9 +50,9 @@ public class XAResourceHolderState {
 
     private final static Logger log = LoggerFactory.getLogger(XAResourceHolderState.class);
 
-    private ResourceBean bean;
+    private final ResourceBean bean;
+    private final XAResourceHolder xaResourceHolder;
     private BitronixXid xid;
-    private XAResourceHolder xaResourceHolder;
     private boolean started;
     private boolean ended;
     private boolean suspended;
@@ -209,7 +210,7 @@ public class XAResourceHolderState {
         }
 
         if (!isTimeoutAlreadySet && transactionTimeoutDate != null && bean.getApplyTransactionTimeout()) {
-            int timeoutInSeconds = (int) ((transactionTimeoutDate.getTime() - System.currentTimeMillis() + 999L) / 1000L);
+            int timeoutInSeconds = (int) ((transactionTimeoutDate.getTime() - MonotonicClock.currentTimeMillis() + 999L) / 1000L);
             timeoutInSeconds = Math.max(1, timeoutInSeconds); // setting a timeout of 0 means resetting -> set it to at least 1
             if (log.isDebugEnabled()) log.debug("applying resource timeout of " + timeoutInSeconds + "s on " + this);
             getXAResource().setTransactionTimeout(timeoutInSeconds);
diff --git a/src/bitronix/tm/internal/XAResourceManager.java b/src/bitronix/tm/internal/XAResourceManager.java
index 44ae3ba..adbc553 100644
--- a/src/bitronix/tm/internal/XAResourceManager.java
+++ b/src/bitronix/tm/internal/XAResourceManager.java
@@ -43,8 +43,8 @@ public class XAResourceManager {
 
     private final static Logger log = LoggerFactory.getLogger(XAResourceManager.class);
 
-    private Uid gtrid;
-    private Scheduler resources = new Scheduler();
+    private final Uid gtrid;
+    private final Scheduler<XAResourceHolderState> resources = new Scheduler<XAResourceHolderState>();
 
     /**
      * Create a resource manager for the specified GTRID.
@@ -102,7 +102,7 @@ public class XAResourceManager {
         // unless this is explicitly allowed in the config
         if (flag != XAResource.TMJOIN && xaResourceHolderState.getTwoPcOrderingPosition() == Scheduler.ALWAYS_LAST_POSITION &&
                 !TransactionManagerServices.getConfiguration().isAllowMultipleLrc()) {
-            List alwaysLastResources = resources.getByNaturalOrderForPosition(Scheduler.ALWAYS_LAST_POSITION_KEY);
+            List<XAResourceHolderState> alwaysLastResources = resources.getByNaturalOrderForPosition(Scheduler.ALWAYS_LAST_POSITION);
             if (alwaysLastResources != null && !alwaysLastResources.isEmpty())
                 throw new BitronixSystemException("cannot enlist more than one non-XA resource, tried enlisting " + xaResourceHolderState + ", already enlisted: " + alwaysLastResources.get(0));
         }
@@ -143,9 +143,7 @@ public class XAResourceManager {
      * @throws XAException if the resource threw an exception during suspend.
      */
     public void suspend() throws XAException {
-        Iterator it = resources.iterator();
-        while (it.hasNext()) {
-            XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) it.next();
+        for (XAResourceHolderState xaResourceHolderState : resources) {
             if (!xaResourceHolderState.isEnded()) {
                 if (log.isDebugEnabled()) log.debug("suspending " + xaResourceHolderState);
                 xaResourceHolderState.end(XAResource.TMSUCCESS);
@@ -159,13 +157,11 @@ public class XAResourceManager {
      */
     public void resume() throws XAException {
         // all XAResource needs to be re-enlisted but this must happen
-        // outside the Schduler's iteration as enlist() can change the
+        // outside the Scheduler's iteration as enlist() can change the
         // collection's content and confuse the iterator.
-        List toBeReEnlisted = new ArrayList();
+        List<XAResourceHolderState> toBeReEnlisted = new ArrayList<XAResourceHolderState>();
 
-        Iterator it = resources.iterator();
-        while (it.hasNext()) {
-            XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) it.next();
+        for (XAResourceHolderState xaResourceHolderState : resources) {
             if (log.isDebugEnabled()) log.debug("resuming " + xaResourceHolderState);
 
             // If a prepared statement is (re-)used after suspend/resume is performed its XAResource needs to be
@@ -174,9 +170,7 @@ public class XAResourceManager {
         }
 
         if (toBeReEnlisted.size() > 0 && log.isDebugEnabled()) log.debug("re-enlisting " + toBeReEnlisted.size() + " resource(s)");
-        for (int i = 0; i < toBeReEnlisted.size(); i++) {
-            XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) toBeReEnlisted.get(i);
-
+        for (XAResourceHolderState xaResourceHolderState : toBeReEnlisted) {
             if (log.isDebugEnabled()) log.debug("re-enlisting resource " + xaResourceHolderState);
             try {
                 enlist(xaResourceHolderState);
@@ -195,10 +189,7 @@ public class XAResourceManager {
      * @throws BitronixSystemException if an internal error happens.
      */
     public XAResourceHolderState findXAResourceHolderState(XAResource xaResource) throws BitronixSystemException {
-        Iterator it = resources.iterator();
-        while (it.hasNext()) {
-            XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) it.next();
-
+        for (XAResourceHolderState xaResourceHolderState : resources) {
             if (xaResourceHolderState.getXAResource() == xaResource)
                 return xaResourceHolderState;
         }
@@ -220,14 +211,12 @@ public class XAResourceManager {
             return null;
         }
 
-        Iterator it = resources.iterator();
-        while (it.hasNext()) {
-            XAResourceHolderState alreadyEnlistedHolderState = (XAResourceHolderState) it.next();
-
-            if (log.isDebugEnabled()) log.debug("checking joinability of " + xaResourceHolderState + " with " + alreadyEnlistedHolderState);
-            if ( alreadyEnlistedHolderState.isEnded() &&
-                 !alreadyEnlistedHolderState.isSuspended() &&
-                 xaResourceHolderState.getXAResource().isSameRM(alreadyEnlistedHolderState.getXAResource()) ) {
+        for (XAResourceHolderState alreadyEnlistedHolderState : resources) {
+            if (log.isDebugEnabled())
+                log.debug("checking joinability of " + xaResourceHolderState + " with " + alreadyEnlistedHolderState);
+            if (alreadyEnlistedHolderState.isEnded() &&
+                    !alreadyEnlistedHolderState.isSuspended() &&
+                    xaResourceHolderState.getXAResource().isSameRM(alreadyEnlistedHolderState.getXAResource())) {
                 if (log.isDebugEnabled()) log.debug("resources are joinable");
                 return alreadyEnlistedHolderState;
             }
@@ -244,9 +233,9 @@ public class XAResourceManager {
      */
     public void clearXAResourceHolderStates() {
         if (log.isDebugEnabled()) log.debug("clearing XAResourceHolder states on " + resources.size() + " resource(s)");
-        Iterator it = resources.iterator();
+        Iterator<XAResourceHolderState> it = resources.iterator();
         while (it.hasNext()) {
-            XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) it.next();
+            XAResourceHolderState xaResourceHolderState = it.next();
             XAResourceHolder resourceHolder = xaResourceHolderState.getXAResourceHolder();
 
             // clear out the current state
@@ -264,40 +253,36 @@ public class XAResourceManager {
      * Get a {@link Set} of unique names of all the enlisted {@link XAResourceHolderState}s.
      * @return a {@link Set} of unique names of all the enlisted {@link XAResourceHolderState}s.
      */
-    public Set collectUniqueNames() {
-        Set names = new HashSet();
-        Iterator it = resources.iterator();
-        while (it.hasNext()) {
-            XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) it.next();
+    public Set<String> collectUniqueNames() {
+        Set<String> names = new HashSet<String>(resources.size());
+        for (XAResourceHolderState xaResourceHolderState : resources) {
             names.add(xaResourceHolderState.getUniqueName());
         }
-        return names;
+        return Collections.unmodifiableSet(names);
     }
 
-    public SortedSet getNaturalOrderPositions() {
-        return resources.getNaturalOrderPositions();
+    public SortedSet<Integer> getNaturalOrderPositions() {
+        return Collections.unmodifiableSortedSet(resources.getNaturalOrderPositions());
     }
 
-    public SortedSet getReverseOrderPositions() {
-        return resources.getReverseOrderPositions();
+    public SortedSet<Integer> getReverseOrderPositions() {
+        return Collections.unmodifiableSortedSet(resources.getReverseOrderPositions());
     }
 
-    public List getNaturalOrderResourcesForPosition(Object positionKey) {
-        return resources.getByNaturalOrderForPosition(positionKey);
+    public List<XAResourceHolderState> getNaturalOrderResourcesForPosition(Integer position) {
+        return Collections.unmodifiableList(resources.getByNaturalOrderForPosition(position));
     }
 
-    public List getReverseOrderResourcesForPosition(Object positionKey) {
-        return resources.getByReverseOrderForPosition(positionKey);
+    public List<XAResourceHolderState> getReverseOrderResourcesForPosition(Integer position) {
+        return Collections.unmodifiableList(resources.getByReverseOrderForPosition(position));
     }
 
-    public List getAllResources() {
-        List result = new ArrayList();
-        Iterator it = resources.getNaturalOrderPositions().iterator();
-        while (it.hasNext()) {
-            Object positionKey = it.next();
+    public List<XAResourceHolderState> getAllResources() {
+        List<XAResourceHolderState> result = new ArrayList<XAResourceHolderState>(resources.size());
+        for (Integer positionKey : resources.getNaturalOrderPositions()) {
             result.addAll(resources.getByNaturalOrderForPosition(positionKey));
         }
-        return result;
+        return Collections.unmodifiableList(result);
     }
 
     /**
diff --git a/src/bitronix/tm/jndi/BitronixContext.java b/src/bitronix/tm/jndi/BitronixContext.java
index 18e46e1..6e6ceba 100644
--- a/src/bitronix/tm/jndi/BitronixContext.java
+++ b/src/bitronix/tm/jndi/BitronixContext.java
@@ -43,8 +43,8 @@ public class BitronixContext implements Context {
     private final static Logger log = LoggerFactory.getLogger(BitronixContext.class);
     
     private boolean closed = false;
-    private String userTransactionName;
-    private String synchronizationRegistryName;
+    private final String userTransactionName;
+    private final String synchronizationRegistryName;
 
     public BitronixContext() {
         userTransactionName = TransactionManagerServices.getConfiguration().getJndiUserTransactionName();
@@ -120,19 +120,19 @@ public class BitronixContext implements Context {
         throw new OperationNotSupportedException();
     }
 
-    public NamingEnumeration list(Name name) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-    public NamingEnumeration list(String s) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(String s) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-    public NamingEnumeration listBindings(Name name) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(Name name) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-    public NamingEnumeration listBindings(String s) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(String s) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
@@ -184,7 +184,7 @@ public class BitronixContext implements Context {
         throw new OperationNotSupportedException();
     }
 
-    public Hashtable getEnvironment() throws NamingException {
+    public Hashtable<?, ?> getEnvironment() throws NamingException {
         throw new OperationNotSupportedException();
     }
 
diff --git a/src/bitronix/tm/journal/DiskForceBatcherThread.java b/src/bitronix/tm/journal/DiskForceBatcherThread.java
index 6fcddde..3a7d6ae 100644
--- a/src/bitronix/tm/journal/DiskForceBatcherThread.java
+++ b/src/bitronix/tm/journal/DiskForceBatcherThread.java
@@ -24,6 +24,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Thread that executes disk force batches.
@@ -33,10 +34,9 @@ import java.io.IOException;
 public final class DiskForceBatcherThread extends Thread {
 
     private final static Logger log = LoggerFactory.getLogger(DiskForceBatcherThread.class);
-    private static DiskForceBatcherThread instance;
+    private static volatile DiskForceBatcherThread instance;
 
-    // both variables must be volatile to prevent race conditions with JDK 1.5+ memory model
-    private volatile boolean alive = true;
+    private final AtomicBoolean alive = new AtomicBoolean();
     private volatile DiskForceWaitQueue waitQueue = new DiskForceWaitQueue();
 
     /**
@@ -52,17 +52,19 @@ public final class DiskForceBatcherThread extends Thread {
 
     private DiskForceBatcherThread() {
         setName("bitronix-disk-force-batcher");
-        setPriority(Thread.NORM_PRIORITY -1);
+        setPriority(Thread.NORM_PRIORITY - 1);
         setDaemon(true);
+        alive.set(true);
         start();
     }
 
     /**
      * Thread will run for as long as this flag is not false.
      * @param alive The new flag value.
+     * @return the old flag value.
      */
-    public void setAlive(boolean alive) {
-        this.alive = alive;
+    public boolean setAlive(boolean alive) {
+        return this.alive.getAndSet(alive);
     }
 
     /**
@@ -86,14 +88,14 @@ public final class DiskForceBatcherThread extends Thread {
 
     private void runForceBatch() throws IOException {
         if (log.isDebugEnabled()) log.debug("waiting for the wait queue to fill up");
-        while(alive && waitQueue.isEmpty()) {
+        while(alive.get() && waitQueue.isEmpty()) {
             try {
                 waitQueue.waitUntilNotEmpty();
             } catch (InterruptedException ex) {
                 // ignore
             }
-        } // while
-        if (!alive) {
+        }
+        if (!alive.get()) {
             if (log.isDebugEnabled()) log.debug("interrupted while waiting for the queue to fill up");
             return;
         }
@@ -109,7 +111,7 @@ public final class DiskForceBatcherThread extends Thread {
 
     public void run() {
         if (log.isDebugEnabled()) log.debug("disk force thread is up and running");
-        while (alive) {
+        while (alive.get()) {
             try {
                 runForceBatch();
             } catch (Exception ex) {
diff --git a/src/bitronix/tm/journal/DiskForceWaitQueue.java b/src/bitronix/tm/journal/DiskForceWaitQueue.java
index 57857d5..f070044 100644
--- a/src/bitronix/tm/journal/DiskForceWaitQueue.java
+++ b/src/bitronix/tm/journal/DiskForceWaitQueue.java
@@ -37,7 +37,7 @@ public class DiskForceWaitQueue {
 
     private final static Logger log = LoggerFactory.getLogger(DiskForceWaitQueue.class);
 
-    private final List objects = new ArrayList();
+    private final List<TransactionLogAppender> objects = new ArrayList<TransactionLogAppender>();
     private boolean isCleared = false;
 
 
@@ -59,7 +59,7 @@ public class DiskForceWaitQueue {
 
     public synchronized TransactionLogAppender head() {
         if (log.isDebugEnabled()) log.debug("returning head TransactionLogAppender");
-        return (TransactionLogAppender) objects.get(0);
+        return objects.get(0);
     }
 
     public synchronized void clear() {
diff --git a/src/bitronix/tm/journal/DiskJournal.java b/src/bitronix/tm/journal/DiskJournal.java
index d5ed362..9773071 100644
--- a/src/bitronix/tm/journal/DiskJournal.java
+++ b/src/bitronix/tm/journal/DiskJournal.java
@@ -23,6 +23,7 @@ package bitronix.tm.journal;
 import bitronix.tm.BitronixXid;
 import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.utils.Decoder;
+import bitronix.tm.utils.MonotonicClock;
 import bitronix.tm.utils.Uid;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -53,7 +54,7 @@ public class DiskJournal implements Journal {
      * The active log appender. This is exactly the same reference as tla1 or tla2 depending on which one is
      * currently active
      */
-    private TransactionLogAppender activeTla;
+    private volatile TransactionLogAppender activeTla;
 
     /**
      * The transaction log appender writing on the 1st file
@@ -81,7 +82,7 @@ public class DiskJournal implements Journal {
      * this transaction.
      * @throws java.io.IOException in case of disk IO failure or if the disk journal is not open.
      */
-    public void log(int status, Uid gtrid, Set uniqueNames) throws IOException {
+    public void log(int status, Uid gtrid, Set<String> uniqueNames) throws IOException {
         if (activeTla == null)
             throw new IOException("cannot write log, disk logger is not open");
 
@@ -92,8 +93,8 @@ public class DiskJournal implements Journal {
             }
         }
 
+        TransactionLogRecord tlog = new TransactionLogRecord(status, gtrid, uniqueNames);
         synchronized (this) {
-            TransactionLogRecord tlog = new TransactionLogRecord(status, gtrid, uniqueNames);
             boolean written = activeTla.writeLog(tlog);
             if (!written) {
                 // time to swap log files
@@ -134,8 +135,13 @@ public class DiskJournal implements Journal {
         if (!file1.exists() && !file2.exists()) {
             log.debug("creation of log files");
             createLogfile(file2, TransactionManagerServices.getConfiguration().getMaxLogSizeInMb());
-            // let the clock run a little before creating the 2nd log file to make the timestamp headers not the same
-            try { Thread.sleep(10); } catch (InterruptedException ex) { /* ignore */ }
+
+            // make the clock run a little before creating the 2nd log file to ensure the timestamp headers are not the same
+            long before = MonotonicClock.currentTimeMillis();
+            while (MonotonicClock.currentTimeMillis() < before + 100L) {
+                try { Thread.sleep(100); } catch (InterruptedException ex) { /* ignore */ }
+            }
+
             createLogfile(file1, TransactionManagerServices.getConfiguration().getMaxLogSizeInMb());
         }
 
@@ -182,7 +188,7 @@ public class DiskJournal implements Journal {
         tla2 = null;
         activeTla = null;
 
-        log.debug("disk journal closed");
+        if (log.isDebugEnabled()) log.debug("disk journal closed");
     }
 
     public void shutdown() {
@@ -198,7 +204,7 @@ public class DiskJournal implements Journal {
      * @return a Map using Uid objects GTRID as key and {@link TransactionLogRecord} as value
      * @throws java.io.IOException in case of disk IO failure or if the disk journal is not open.
      */
-    public Map collectDanglingRecords() throws IOException {
+    public Map<Uid, TransactionLogRecord> collectDanglingRecords() throws IOException {
         if (activeTla == null)
             throw new IOException("cannot collect dangling records, disk logger is not open");
         return collectDanglingRecords(activeTla);
@@ -232,13 +238,13 @@ public class DiskJournal implements Journal {
 
             raf.seek(TransactionLogHeader.FORMAT_ID_HEADER);
             raf.writeInt(BitronixXid.FORMAT_ID);
-            raf.writeLong(System.currentTimeMillis());
+            raf.writeLong(MonotonicClock.currentTimeMillis());
             raf.writeByte(TransactionLogHeader.CLEAN_LOG_STATE);
             raf.writeLong((long) TransactionLogHeader.HEADER_LENGTH);
 
             byte[] buffer = new byte[4096];
             int length = (maxLogSizeInMb *1024 *1024) /4096;
-            for(int i=0; i<length ;i++) {
+            for (int i = 0; i < length; i++) {
                 raf.write(buffer);
             }
         } finally {
@@ -255,7 +261,7 @@ public class DiskJournal implements Journal {
      * @return the state of the designated active TransactionLogAppender as returned by TransactionLogHeader.getState()
      * @throws java.io.IOException in case of disk IO failure.
      */
-    private byte pickActiveJournalFile(TransactionLogAppender tla1, TransactionLogAppender tla2) throws IOException {
+    private synchronized byte pickActiveJournalFile(TransactionLogAppender tla1, TransactionLogAppender tla2) throws IOException {
         if (tla1.getHeader().getTimestamp() > tla2.getHeader().getTimestamp()) {
             activeTla = tla1;
             if (log.isDebugEnabled()) log.debug("logging to file 1: " + activeTla);
@@ -285,7 +291,7 @@ public class DiskJournal implements Journal {
      * </ul>
      * @throws java.io.IOException in case of disk IO failure.
      */
-    private void swapJournalFiles() throws IOException {
+    private synchronized void swapJournalFiles() throws IOException {
         if (log.isDebugEnabled()) log.debug("swapping journal log file to " + getPassiveTransactionLogAppender());
 
         //step 1
@@ -294,7 +300,7 @@ public class DiskJournal implements Journal {
         copyDanglingRecords(activeTla, passiveTla);
 
         //step 2
-        passiveTla.getHeader().setTimestamp(System.currentTimeMillis());
+        passiveTla.getHeader().setTimestamp(MonotonicClock.currentTimeMillis());
 
         //step 3
         passiveTla.force();
@@ -313,7 +319,7 @@ public class DiskJournal implements Journal {
     /**
      * @return the TransactionFileAppender of the passive journal file.
      */
-    private TransactionLogAppender getPassiveTransactionLogAppender() {
+    private synchronized TransactionLogAppender getPassiveTransactionLogAppender() {
         if (tla1 == activeTla)
             return tla2;
         return tla1;
@@ -328,10 +334,8 @@ public class DiskJournal implements Journal {
     private static void copyDanglingRecords(TransactionLogAppender fromTla, TransactionLogAppender toTla) throws IOException {
         if (log.isDebugEnabled()) log.debug("starting copy of dangling records");
 
-        Map danglingRecords = collectDanglingRecords(fromTla);
-
-        for (Iterator iterator = danglingRecords.values().iterator(); iterator.hasNext();) {
-            TransactionLogRecord tlog = (TransactionLogRecord) iterator.next();
+        Map<Uid, TransactionLogRecord> danglingRecords = collectDanglingRecords(fromTla);
+        for (TransactionLogRecord tlog : danglingRecords.values()) {
             toTla.writeLog(tlog);
         }
 
@@ -345,8 +349,8 @@ public class DiskJournal implements Journal {
      * @return a Map using Uid objects GTRID as key and {@link TransactionLogRecord} as value
      * @throws java.io.IOException in case of disk IO failure.
      */
-    private static Map collectDanglingRecords(TransactionLogAppender tla) throws IOException {
-        Map danglingRecords = new HashMap(64);
+    private static Map<Uid, TransactionLogRecord> collectDanglingRecords(TransactionLogAppender tla) throws IOException {
+        Map<Uid, TransactionLogRecord> danglingRecords = new HashMap<Uid, TransactionLogRecord>(64);
         TransactionLogCursor tlc = tla.getCursor();
 
         try {
@@ -368,17 +372,25 @@ public class DiskJournal implements Journal {
                 if (tlog == null)
                     break;
 
-                if (tlog.getStatus() == Status.STATUS_COMMITTING) {
+                int status = tlog.getStatus();
+                if (status == Status.STATUS_COMMITTING) {
                     danglingRecords.put(tlog.getGtrid(), tlog);
                     committing++;
                 }
-                if (tlog.getStatus() == Status.STATUS_COMMITTED) {
-                    TransactionLogRecord rec = (TransactionLogRecord) danglingRecords.get(tlog.getGtrid());
+
+                // COMMITTED is when there was no problem in the transaction
+                // UNKNOWN is when a 2PC transaction heuristically terminated
+                // ROLLEDBACK is when a 1PC transaction rolled back during commit
+                if (status == Status.STATUS_COMMITTED || status == Status.STATUS_UNKNOWN || status == Status.STATUS_ROLLEDBACK) {
+                    TransactionLogRecord rec = danglingRecords.get(tlog.getGtrid());
                     if (rec != null) {
-                        rec.removeUniqueNames(tlog.getUniqueNames());
-                        if (rec.getUniqueNames().isEmpty()) {
+                        Set<String> recUniqueNames = new HashSet<String>(rec.getUniqueNames());
+                        recUniqueNames.removeAll(tlog.getUniqueNames());
+                        if (recUniqueNames.isEmpty()) {
                             danglingRecords.remove(tlog.getGtrid());
                             committed++;
+                        } else {
+                            danglingRecords.put(tlog.getGtrid(), new TransactionLogRecord(rec.getStatus(), rec.getGtrid(), recUniqueNames));
                         }
                     }
                 }
diff --git a/src/bitronix/tm/journal/Journal.java b/src/bitronix/tm/journal/Journal.java
index a25f12c..a78bfc4 100644
--- a/src/bitronix/tm/journal/Journal.java
+++ b/src/bitronix/tm/journal/Journal.java
@@ -43,7 +43,7 @@ public interface Journal extends Service {
      * @param uniqueNames unique names of the RecoverableXAResourceProducers participating in the transaction.
      * @throws IOException if an I/O error occurs.
      */
-    public void log(int status, Uid gtrid, Set uniqueNames) throws IOException;
+    public void log(int status, Uid gtrid, Set<String> uniqueNames) throws IOException;
 
     /**
      * Open the journal. Integrity should be checked and an exception should be thrown in case the journal is corrupt.
@@ -68,6 +68,6 @@ public interface Journal extends Service {
      * @return a Map using Uid objects GTRID as key and {@link TransactionLogRecord} as value
      * @throws IOException if an I/O error occurs.
      */
-    public Map collectDanglingRecords() throws IOException;
+    public Map<Uid, TransactionLogRecord> collectDanglingRecords() throws IOException;
 
 }
diff --git a/src/bitronix/tm/journal/NullJournal.java b/src/bitronix/tm/journal/NullJournal.java
index 407f275..95748b9 100644
--- a/src/bitronix/tm/journal/NullJournal.java
+++ b/src/bitronix/tm/journal/NullJournal.java
@@ -39,7 +39,7 @@ public class NullJournal implements Journal {
     public NullJournal() {
     }
 
-    public void log(int status, Uid gtrid, Set uniqueNames) throws IOException {
+    public void log(int status, Uid gtrid, Set<String> uniqueNames) throws IOException {
     }
 
     public void open() throws IOException {
@@ -51,8 +51,8 @@ public class NullJournal implements Journal {
     public void force() throws IOException {
     }
 
-    public Map collectDanglingRecords() throws IOException {
-        return Collections.EMPTY_MAP;
+    public Map<Uid, TransactionLogRecord> collectDanglingRecords() throws IOException {
+        return Collections.emptyMap();
     }
 
     public void shutdown() {
diff --git a/src/bitronix/tm/journal/TransactionLogAppender.java b/src/bitronix/tm/journal/TransactionLogAppender.java
index f91448b..55dccce 100644
--- a/src/bitronix/tm/journal/TransactionLogAppender.java
+++ b/src/bitronix/tm/journal/TransactionLogAppender.java
@@ -27,8 +27,10 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.io.IOException;
 import java.io.RandomAccessFile;
-import java.util.Iterator;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
 import java.nio.channels.FileLock;
+import java.util.Set;
 
 /**
  * Used to write {@link TransactionLogRecord} objects to a log file.
@@ -47,13 +49,12 @@ public class TransactionLogAppender {
     public static final int END_RECORD = 0x786e7442;
 
     private final File file;
-    private final RandomAccessFile randomAccessFile;
+    private final FileChannel fc;
     private final FileLock lock;
     private final TransactionLogHeader header;
-    
-    private long maxFileLength;
+    private final long maxFileLength;
 
-    private static DiskForceBatcherThread diskForceBatcherThread;
+    private static volatile DiskForceBatcherThread diskForceBatcherThread;
 
     /**
      * Create an appender that will write to specified file up to the specified maximum length.
@@ -65,9 +66,9 @@ public class TransactionLogAppender {
     public TransactionLogAppender(File file, long maxFileLength) throws IOException {
         this.maxFileLength = maxFileLength;
         this.file = file;
-        this.randomAccessFile = new RandomAccessFile(file, "rw");
-        this.header = new TransactionLogHeader(randomAccessFile, maxFileLength);
-        this.lock = randomAccessFile.getChannel().tryLock(0, TransactionLogHeader.TIMESTAMP_HEADER, false);
+        this.fc = new RandomAccessFile(file, "rw").getChannel();
+        this.header = new TransactionLogHeader(fc, maxFileLength);
+        this.lock = fc.tryLock(0, TransactionLogHeader.TIMESTAMP_HEADER, false);
         if (this.lock == null)
             throw new IOException("transaction log file " + file.getName() + " is locked. Is another instance already running?");
 
@@ -89,31 +90,36 @@ public class TransactionLogAppender {
      * @throws IOException if an I/O error occurs.
      */
     public boolean writeLog(TransactionLogRecord tlog) throws IOException {
-        synchronized (randomAccessFile) {
-            long futureFilePosition = getHeader().getPosition() + tlog.calculateTotalRecordSize();
+        synchronized (fc) {
+            int recordSize = tlog.calculateTotalRecordSize();
+            long futureFilePosition = getHeader().getPosition() + recordSize;
             if (futureFilePosition >= maxFileLength) { // see TransactionLogHeader.setPosition() as it double-checks this
-                if (log.isDebugEnabled())
-                    log.debug("log file is full (size would be: " + futureFilePosition + ", max allowed: " + maxFileLength + ")");
+                if (log.isDebugEnabled()) log.debug("log file is full (size would be: " + futureFilePosition + ", max allowed: " + maxFileLength + ")");
                 return false;
             }
             if (log.isDebugEnabled()) log.debug("between " + getHeader().getPosition() + " and " + futureFilePosition + ", writing " + tlog);
 
-            randomAccessFile.writeInt(tlog.getStatus());
-            randomAccessFile.writeInt(tlog.getRecordLength());
-            randomAccessFile.writeInt(tlog.getHeaderLength());
-            randomAccessFile.writeLong(tlog.getTime());
-            randomAccessFile.writeInt(tlog.getSequenceNumber());
-            randomAccessFile.writeInt(tlog.getCrc32());
-            randomAccessFile.writeByte((byte) tlog.getGtrid().getArray().length);
-            randomAccessFile.write(tlog.getGtrid().getArray());
-            randomAccessFile.writeInt(tlog.getUniqueNames().size());
-            Iterator it = tlog.getUniqueNames().iterator();
-            while (it.hasNext()) {
-                String uniqueName = (String) it.next();
-                randomAccessFile.writeShort(uniqueName.length());
-                randomAccessFile.writeBytes(uniqueName); // this writes each character discarding the 8th bit. Isn't that US-ASCII ?
+            ByteBuffer buf = ByteBuffer.allocate(recordSize);
+            buf.putInt(tlog.getStatus());
+            buf.putInt(tlog.getRecordLength());
+            buf.putInt(tlog.getHeaderLength());
+            buf.putLong(tlog.getTime());
+            buf.putInt(tlog.getSequenceNumber());
+            buf.putInt(tlog.getCrc32());
+            buf.put((byte) tlog.getGtrid().getArray().length);
+            buf.put(tlog.getGtrid().getArray());
+            Set<String> uniqueNames = tlog.getUniqueNames();
+            buf.putInt(uniqueNames.size());
+            for (String uniqueName : uniqueNames) {
+                buf.putShort((short) uniqueName.length());
+                buf.put(uniqueName.getBytes());
+            }
+            buf.putInt(tlog.getEndRecord());
+
+            buf.flip();
+            while (buf.hasRemaining()) {
+                this.fc.write(buf);
             }
-            randomAccessFile.writeInt(tlog.getEndRecord());
             getHeader().goAhead(tlog.calculateTotalRecordSize());
             if (log.isDebugEnabled()) log.debug("disk journal appender now at position " + getHeader().getPosition());
 
@@ -126,13 +132,13 @@ public class TransactionLogAppender {
      * @throws IOException if an I/O error occurs.
      */
     public void close() throws IOException {
-        synchronized (randomAccessFile) {
+        synchronized (fc) {
             shutdownBatcherThread();
 
             getHeader().setState(TransactionLogHeader.CLEAN_LOG_STATE);
-            randomAccessFile.getFD().sync();
+            fc.force(false);
             lock.release();
-            randomAccessFile.close();
+            fc.close();
         }
     }
 
@@ -172,15 +178,15 @@ public class TransactionLogAppender {
 
 
     protected void doForce() throws IOException {
-        synchronized (randomAccessFile) {
+        synchronized (fc) {
             if (log.isDebugEnabled()) log.debug("forcing log writing");
-            randomAccessFile.getFD().sync();
+            fc.force(false);
             if (log.isDebugEnabled()) log.debug("done forcing log");
         }
     }
 
     private void spawnBatcherThread() {
-        synchronized (getClass()) {
+        synchronized (TransactionLogAppender.class) {
             if (diskForceBatcherThread != null)
                 return;
 
@@ -199,7 +205,7 @@ public class TransactionLogAppender {
     }
 
     private void shutdownBatcherThread() {
-        synchronized (getClass()) {
+        synchronized (TransactionLogAppender.class) {
             if (diskForceBatcherThread == null)
                 return;
 
diff --git a/src/bitronix/tm/journal/TransactionLogCursor.java b/src/bitronix/tm/journal/TransactionLogCursor.java
index c8262d0..4c6a7c3 100644
--- a/src/bitronix/tm/journal/TransactionLogCursor.java
+++ b/src/bitronix/tm/journal/TransactionLogCursor.java
@@ -52,7 +52,9 @@ public class TransactionLogCursor {
     public TransactionLogCursor(File file) throws IOException {
         this.randomAccessFile = new RandomAccessFile(file, "r");
         this.randomAccessFile.seek(TransactionLogHeader.CURRENT_POSITION_HEADER);
-        endPosition = this.randomAccessFile.readLong();
+        synchronized (randomAccessFile) {
+            endPosition = this.randomAccessFile.readLong();
+        }
     }
 
     /**
@@ -119,7 +121,7 @@ public class TransactionLogCursor {
             randomAccessFile.readFully(gtridArray);
             Uid gtrid = new Uid(gtridArray);
             int uniqueNamesCount = randomAccessFile.readInt();
-            Set uniqueNames = new HashSet();
+            Set<String> uniqueNames = new HashSet<String>();
             int currentReadCount = 4 + 8 + 4 + 4 + 1 + gtridSize + 4;
 
             for (int i=0; i<uniqueNamesCount ;i++) {
diff --git a/src/bitronix/tm/journal/TransactionLogHeader.java b/src/bitronix/tm/journal/TransactionLogHeader.java
index f508806..b4801a7 100644
--- a/src/bitronix/tm/journal/TransactionLogHeader.java
+++ b/src/bitronix/tm/journal/TransactionLogHeader.java
@@ -25,7 +25,8 @@ import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
 import java.io.IOException;
-import java.io.RandomAccessFile;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
 
 /**
  * Used to control a log file's header.
@@ -74,30 +75,38 @@ public class TransactionLogHeader {
     public final static byte UNCLEAN_LOG_STATE = -1;
 
 
-    private final RandomAccessFile randomAccessFile;
-    private int formatId;
-    private long timestamp;
-    private byte state;
-    private long position;
-    private long maxFileLength;
+    private final FileChannel fc;
+    private final long maxFileLength;
+
+    private volatile int formatId;
+    private volatile long timestamp;
+    private volatile byte state;
+    private volatile long position;
 
     /**
      * TransactionLogHeader are used to control headers of the specified RandomAccessFile.
      * All calls to setters are synchronized on the passed-in RandomAccessFile.
-     * @param randomAccessFile the random access file to read from.
+     * @param fc the file channel to read from.
      * @param maxFileLength the max file length.
      * @throws IOException if an I/O error occurs.
      */
-    public TransactionLogHeader(RandomAccessFile randomAccessFile, long maxFileLength) throws IOException {
-        this.randomAccessFile = randomAccessFile;
+    public TransactionLogHeader(FileChannel fc, long maxFileLength) throws IOException {
+        this.fc = fc;
         this.maxFileLength = maxFileLength;
 
-        randomAccessFile.seek(FORMAT_ID_HEADER);
-        formatId = randomAccessFile.readInt();
-        timestamp = randomAccessFile.readLong();
-        state = randomAccessFile.readByte();
-        position = randomAccessFile.readLong();
-        randomAccessFile.seek(position);
+        synchronized (this.fc) {
+            fc.position(FORMAT_ID_HEADER);
+            ByteBuffer buf = ByteBuffer.allocate(4 + 8 + 1 + 8);
+            while (buf.hasRemaining()) {
+                this.fc.read(buf);
+            }
+            buf.flip();
+            formatId = buf.getInt();
+            timestamp = buf.getLong();
+            state = buf.get();
+            position = buf.getLong();
+            fc.position(position);
+        }
 
         if (log.isDebugEnabled()) log.debug("read header " + this);
     }
@@ -145,14 +154,18 @@ public class TransactionLogHeader {
      * @throws IOException if an I/O error occurs.
      */
     public void setFormatId(int formatId) throws IOException {
-        synchronized (randomAccessFile) {
-            long currentPos = randomAccessFile.getFilePointer();
-            randomAccessFile.seek(FORMAT_ID_HEADER);
-            randomAccessFile.writeInt(formatId);
-            randomAccessFile.seek(currentPos);
+        ByteBuffer buf = ByteBuffer.allocate(8);
+        buf.putInt(formatId);
+        buf.flip();
+        synchronized (fc) {
+            long currentPos = fc.position();
+            fc.position(FORMAT_ID_HEADER);
+            while (buf.hasRemaining()) {
+                this.fc.write(buf);
+            }
+            fc.position(currentPos);
+            this.formatId = formatId;
         }
-
-        this.formatId = formatId;
     }
 
     /**
@@ -162,14 +175,18 @@ public class TransactionLogHeader {
      * @throws IOException if an I/O error occurs.
      */
     public void setTimestamp(long timestamp) throws IOException {
-        synchronized (randomAccessFile) {
-            long currentPos = randomAccessFile.getFilePointer();
-            randomAccessFile.seek(TIMESTAMP_HEADER);
-            randomAccessFile.writeLong(timestamp);
-            randomAccessFile.seek(currentPos);
+        ByteBuffer buf = ByteBuffer.allocate(8);
+        buf.putLong(position);
+        buf.flip();
+        synchronized (fc) {
+            long currentPos = fc.position();
+            fc.position(TIMESTAMP_HEADER);
+            while (buf.hasRemaining()) {
+                this.fc.write(buf);
+            }
+            fc.position(currentPos);
+            this.timestamp = timestamp;
         }
-
-        this.timestamp = timestamp;
     }
 
     /**
@@ -179,14 +196,18 @@ public class TransactionLogHeader {
      * @throws IOException if an I/O error occurs.
      */
     public void setState(byte state) throws IOException {
-        synchronized (randomAccessFile) {
-            long currentPos = randomAccessFile.getFilePointer();
-            randomAccessFile.seek(STATE_HEADER);
-            randomAccessFile.writeByte(state);
-            randomAccessFile.seek(currentPos);
+        ByteBuffer buf = ByteBuffer.allocate(1);
+        buf.put(state);
+        buf.flip();
+        synchronized (fc) {
+            long currentPos = fc.position();
+            fc.position(STATE_HEADER);
+            while (buf.hasRemaining()) {
+                this.fc.write(buf);
+            }
+            fc.position(currentPos);
+            this.state = state;
         }
-
-        this.state = state;
     }
 
     /**
@@ -201,13 +222,17 @@ public class TransactionLogHeader {
         if (position >= maxFileLength)
             throw new IOException("invalid position " + position + " (too high)");
 
-        synchronized (randomAccessFile) {
-            randomAccessFile.seek(CURRENT_POSITION_HEADER);
-            randomAccessFile.writeLong(position);
-            randomAccessFile.seek(position);
+        ByteBuffer buf = ByteBuffer.allocate(8);
+        buf.putLong(position);
+        buf.flip();
+        synchronized (fc) {
+            fc.position(CURRENT_POSITION_HEADER);
+            while (buf.hasRemaining()) {
+                this.fc.write(buf);
+            }
+            fc.position(position);
+            this.position = position;
         }
-
-        this.position = position;
     }
 
     /**
diff --git a/src/bitronix/tm/journal/TransactionLogRecord.java b/src/bitronix/tm/journal/TransactionLogRecord.java
index 3881487..cfc6d8c 100644
--- a/src/bitronix/tm/journal/TransactionLogRecord.java
+++ b/src/bitronix/tm/journal/TransactionLogRecord.java
@@ -20,14 +20,20 @@
  */
 package bitronix.tm.journal;
 
+import bitronix.tm.utils.Decoder;
 import bitronix.tm.utils.Encoder;
-import bitronix.tm.utils.UidGenerator;
-import bitronix.tm.utils.*;
-import org.slf4j.LoggerFactory;
+import bitronix.tm.utils.MonotonicClock;
+import bitronix.tm.utils.Uid;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.UnsupportedEncodingException;
-import java.util.*;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.zip.CRC32;
 
 /**
@@ -60,15 +66,17 @@ public class TransactionLogRecord {
 
     private final static Logger log = LoggerFactory.getLogger(TransactionLogRecord.class);
 
-    private int status;
-    private int recordLength;
-    private int headerLength;
-    private long time;
-    private int sequenceNumber;
-    private int crc32;
-    private Uid gtrid;
-    private SortedSet uniqueNames;
-    private int endRecord;
+    private final static AtomicInteger sequenceGenerator = new AtomicInteger();
+
+    private final int status;
+    private final int recordLength;
+    private final int headerLength;
+    private final long time;
+    private final int sequenceNumber;
+    private final int crc32;
+    private final Uid gtrid;
+    private final SortedSet<String> uniqueNames;
+    private final int endRecord;
 
     /**
      * Use this constructor when restoring a log from the disk.
@@ -82,7 +90,7 @@ public class TransactionLogRecord {
      * @param uniqueNames unique names of XA data sources used in this transaction
      * @param endRecord end of record marker
      */
-    public TransactionLogRecord(int status, int recordLength, int headerLength, long time, int sequenceNumber, int crc32, Uid gtrid, Set uniqueNames, int endRecord) {
+    public TransactionLogRecord(int status, int recordLength, int headerLength, long time, int sequenceNumber, int crc32, Uid gtrid, Set<String> uniqueNames, int endRecord) {
         this.status = status;
         this.recordLength = recordLength;
         this.headerLength = headerLength;
@@ -90,7 +98,7 @@ public class TransactionLogRecord {
         this.sequenceNumber = sequenceNumber;
         this.crc32 = crc32;
         this.gtrid = gtrid;
-        this.uniqueNames = new TreeSet(uniqueNames);
+        this.uniqueNames = new TreeSet<String>(uniqueNames);
         this.endRecord = endRecord;
     }
 
@@ -100,15 +108,17 @@ public class TransactionLogRecord {
      * @param gtrid global transaction id
      * @param uniqueNames unique names of XA data sources used in this transaction
      */
-    public TransactionLogRecord(int status, Uid gtrid, Set uniqueNames) {
+    public TransactionLogRecord(int status, Uid gtrid, Set<String> uniqueNames) {
         this.status = status;
-        time = System.currentTimeMillis();
-        sequenceNumber = UidGenerator.getNextSequenceNumber();
+        this.time = MonotonicClock.currentTimeMillis();
+        this.sequenceNumber = sequenceGenerator.incrementAndGet();
         this.gtrid = gtrid;
-        this.uniqueNames = new TreeSet(uniqueNames);
-        endRecord = TransactionLogAppender.END_RECORD;
+        this.uniqueNames = new TreeSet<String>(uniqueNames);
+        this.endRecord = TransactionLogAppender.END_RECORD;
 
-        refresh();
+        this.recordLength = calculateRecordLength(this.uniqueNames);
+        this.headerLength = getRecordHeaderLength();
+        this.crc32 = calculateCrc32();
     }
 
     public int getStatus() {
@@ -139,7 +149,7 @@ public class TransactionLogRecord {
         return gtrid;
     }
 
-    public Set getUniqueNames() {
+    public Set<String> getUniqueNames() {
         return Collections.unmodifiableSortedSet(uniqueNames);
     }
 
@@ -148,21 +158,6 @@ public class TransactionLogRecord {
     }
 
 
-    public void removeUniqueNames(Collection namesToRemove) {
-        uniqueNames.removeAll(namesToRemove);
-        refresh();
-    }
-
-    /**
-     * Recalculate and store the dynamic values of this record: {@link #getRecordLength()}, {@link #getRecordHeaderLength()}
-     * and {@link #calculateCrc32()}. This method must be called each time after the set of contained unique names is updated.
-     */
-    private void refresh() {
-        recordLength = calculateRecordLength(uniqueNames);
-        headerLength = getRecordHeaderLength();
-        crc32 = calculateCrc32();
-    }
-
     /**
      * Recalculate the CRC32 value of this record (using {@link #calculateCrc32()}) and compare it with the stored value.
      * @return true if the recalculated value equals the stored one, false otherwise.
@@ -185,9 +180,7 @@ public class TransactionLogRecord {
         crc32.update(gtrid.getArray());
         crc32.update(Encoder.intToBytes(uniqueNames.size()));
 
-        Iterator it = uniqueNames.iterator();
-        while (it.hasNext()) {
-            String name = (String) it.next();
+        for (String name : uniqueNames) {
             crc32.update(Encoder.shortToBytes((short) name.length()));
             try {
                 crc32.update(name.getBytes("US-ASCII"));
@@ -201,7 +194,7 @@ public class TransactionLogRecord {
     }
 
     public String toString() {
-        StringBuffer sb = new StringBuffer(128);
+        StringBuilder sb = new StringBuilder(128);
 
         sb.append("a Bitronix TransactionLogRecord with ");
         sb.append("status="); sb.append(Decoder.decodeStatus(status)); sb.append(", ");
@@ -212,10 +205,10 @@ public class TransactionLogRecord {
         sb.append("crc32="); sb.append(crc32); sb.append(", ");
         sb.append("gtrid="); sb.append(gtrid.toString()); sb.append(", ");
         sb.append("uniqueNames=");
-        Iterator it = uniqueNames.iterator();
+        Iterator<String> it = uniqueNames.iterator();
         while (it.hasNext()) {
-            Object o = it.next();
-            sb.append(o);
+            String s = it.next();
+            sb.append(s);
             if (it.hasNext())
                 sb.append(',');
         }
@@ -237,12 +230,10 @@ public class TransactionLogRecord {
      * @param uniqueNames the unique names ofthe record.
      * @return recordLength
      */
-    private int calculateRecordLength(Set uniqueNames) {
+    private int calculateRecordLength(Set<String> uniqueNames) {
         int totalSize = 0;
 
-        Iterator it = uniqueNames.iterator();
-        while (it.hasNext()) {
-            String uniqueName = (String) it.next();
+        for (String uniqueName : uniqueNames) {
             totalSize += 2 + uniqueName.length(); // 2 bytes for storing the unique name length + unique name length
         }
 
diff --git a/src/bitronix/tm/recovery/DanglingTransaction.java b/src/bitronix/tm/recovery/DanglingTransaction.java
index 6f14fb1..538c4de 100644
--- a/src/bitronix/tm/recovery/DanglingTransaction.java
+++ b/src/bitronix/tm/recovery/DanglingTransaction.java
@@ -27,10 +27,10 @@ import javax.transaction.xa.Xid;
  *
  * @author lorban
  */
-public class DanglingTransaction {
+public final class DanglingTransaction {
 
-    private String uniqueName;
-    private Xid xid;
+    private final String uniqueName;
+    private final Xid xid;
 
     public DanglingTransaction(String uniqueName, Xid xid) {
         if (uniqueName == null)
diff --git a/src/bitronix/tm/recovery/IncrementalRecoverer.java b/src/bitronix/tm/recovery/IncrementalRecoverer.java
index d037a0d..b2ede10 100644
--- a/src/bitronix/tm/recovery/IncrementalRecoverer.java
+++ b/src/bitronix/tm/recovery/IncrementalRecoverer.java
@@ -30,7 +30,6 @@ import bitronix.tm.utils.Decoder;
 
 import java.util.Set;
 import java.util.Map;
-import java.util.Iterator;
 import java.util.HashSet;
 import java.io.IOException;
 
@@ -61,16 +60,14 @@ public class IncrementalRecoverer {
         try {
             XAResourceHolderState xaResourceHolderState = xaResourceProducer.startRecovery();
             boolean success = true;
-            Set xids = RecoveryHelper.recover(xaResourceHolderState);
+            Set<BitronixXid> xids = RecoveryHelper.recover(xaResourceHolderState);
             if (log.isDebugEnabled()) log.debug(xids.size() + " dangling transaction(s) found on resource");
             Map danglingRecords = TransactionManagerServices.getJournal().collectDanglingRecords();
             if (log.isDebugEnabled()) log.debug(danglingRecords.size() + " dangling transaction(s) found in journal");
 
             int commitCount = 0;
             int rollbackCount = 0;
-            Iterator it = xids.iterator();
-            while (it.hasNext()) {
-                BitronixXid xid = (BitronixXid) it.next();
+            for (BitronixXid xid : xids) {
                 Uid gtrid = xid.getGlobalTransactionIdUid();
 
                 TransactionLogRecord tlog = (TransactionLogRecord) danglingRecords.get(gtrid);
@@ -79,8 +76,7 @@ public class IncrementalRecoverer {
                     success &= RecoveryHelper.commit(xaResourceHolderState, xid);
                     updateJournal(xid.getGlobalTransactionIdUid(), uniqueName, Status.STATUS_COMMITTED);
                     commitCount++;
-                }
-                else {
+                } else {
                     if (log.isDebugEnabled()) log.debug("rolling back " + xid);
                     success &= RecoveryHelper.rollback(xaResourceHolderState, xid);
                     updateJournal(xid.getGlobalTransactionIdUid(), uniqueName, Status.STATUS_ROLLEDBACK);
@@ -119,7 +115,7 @@ public class IncrementalRecoverer {
 
     private static void updateJournal(Uid gtrid, String uniqueName, int status) throws IOException {
         if (log.isDebugEnabled()) log.debug("updating journal, adding " + Decoder.decodeStatus(status) + " entry for [" + uniqueName + "] on GTRID [" +  gtrid + "]");
-        Set participatingUniqueNames = new HashSet();
+        Set<String> participatingUniqueNames = new HashSet<String>();
         participatingUniqueNames.add(uniqueName);
         TransactionManagerServices.getJournal().log(status, gtrid, participatingUniqueNames);
     }
diff --git a/src/bitronix/tm/recovery/Recoverer.java b/src/bitronix/tm/recovery/Recoverer.java
index edc53a2..8055262 100644
--- a/src/bitronix/tm/recovery/Recoverer.java
+++ b/src/bitronix/tm/recovery/Recoverer.java
@@ -40,6 +40,7 @@ import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 import java.io.IOException;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Recovery process implementation. Here is Mike Spille's description of XA recovery:
@@ -86,8 +87,8 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
 
     private final static Logger log = LoggerFactory.getLogger(Recoverer.class);
 
-    private final Map registeredResources = new HashMap();
-    private final Map recoveredXidSets = new HashMap();
+    private final Map<String, XAResourceProducer> registeredResources = new HashMap<String, XAResourceProducer>();
+    private final Map<String, Set<BitronixXid>> recoveredXidSets = new HashMap<String, Set<BitronixXid>>();
 
     private volatile Exception completionException;
     private volatile int committedCount;
@@ -123,11 +124,12 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
             rolledbackCount = 0;
             long oldestTransactionTimestamp = Long.MAX_VALUE;
 
+            // Collect dangling records from journal, must run before oldestTransactionTimestamp is calculated
+            Map<Uid, TransactionLogRecord> danglingRecords = TransactionManagerServices.getJournal().collectDanglingRecords();
+
             // Query resources from ResourceRegistrar
             synchronized (ResourceRegistrar.class) {
-                Iterator it = ResourceRegistrar.getResourcesUniqueNames().iterator();
-                while (it.hasNext()) {
-                    String name = (String) it.next();
+                for (String name : ResourceRegistrar.getResourcesUniqueNames()) {
                     registeredResources.put(name, ResourceRegistrar.get(name));
                 }
 
@@ -136,13 +138,11 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
                 }
             }
 
-            Map danglingRecords = TransactionManagerServices.getJournal().collectDanglingRecords();
-
             // 1. call recover on all known resources
             recoverAllResources();
 
             // 2. commit dangling COMMITTING transactions
-            Set committedGtrids = commitDanglingTransactions(oldestTransactionTimestamp, danglingRecords);
+            Set<Uid> committedGtrids = commitDanglingTransactions(oldestTransactionTimestamp, danglingRecords);
             committedCount = committedGtrids.size();
 
             // 3. rollback any remaining recovered transaction
@@ -216,22 +216,23 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * Step 1.
      */
     private void recoverAllResources() {
-        Iterator it = new HashMap(registeredResources).entrySet().iterator(); // a cloned registeredResources Map must be iterated as the original one can be modified in the loop
-        while (it.hasNext()) {
-            Map.Entry entry = (Map.Entry) it.next();
-            String uniqueName = (String) entry.getKey();
-            XAResourceProducer producer = (XAResourceProducer) entry.getValue();
+        // a cloned registeredResources Map must be iterated as the original one can be modified in the loop
+        for (Map.Entry<String, XAResourceProducer> entry : new HashMap<String, XAResourceProducer>(registeredResources).entrySet()) {
+            String uniqueName = entry.getKey();
+            XAResourceProducer producer = entry.getValue();
 
             try {
                 if (log.isDebugEnabled()) log.debug("performing recovery on " + uniqueName);
-                Set xids = recover(producer);
+                Set<BitronixXid> xids = recover(producer);
                 if (log.isDebugEnabled()) log.debug("recovered " + xids.size() + " XID(s) from resource " + uniqueName);
                 recoveredXidSets.put(uniqueName, xids);
                 producer.setFailed(false);
             } catch (XAException ex) {
                 producer.setFailed(true);
                 registeredResources.remove(uniqueName);
-                log.warn("error running recovery on resource '" + uniqueName + "', resource marked as failed (background recoverer will retry recovery) (error=" + Decoder.decodeXAExceptionErrorCode(ex) + ")", ex);
+                String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
+                log.warn("error running recovery on resource '" + uniqueName + "', resource marked as failed (background recoverer will retry recovery)" +
+                        " (error=" + Decoder.decodeXAExceptionErrorCode(ex) + ")" + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
             } catch (Exception ex) {
                 producer.setFailed(true);
                 registeredResources.remove(uniqueName);
@@ -248,7 +249,7 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * @throws javax.transaction.xa.XAException if {@link XAResource#recover(int)} call fails.
      * @throws RecoveryException if an error preventing recovery happened.
      */
-    private Set recover(XAResourceProducer producer) throws XAException, RecoveryException {
+    private Set<BitronixXid> recover(XAResourceProducer producer) throws XAException, RecoveryException {
         if (producer == null)
             throw new IllegalArgumentException("recoverable resource cannot be null");
 
@@ -263,6 +264,7 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
 
     /**
      * Commit transactions that have a dangling COMMITTING record in the journal.
+     * Transactions younger than oldestTransactionTimestamp are ignored.
      * Step 2.
      * @param oldestTransactionTimestamp the timestamp of the oldest transaction still in-flight.
      * @param danglingRecords a Map using Uid objects GTRID as key and {@link TransactionLogRecord} as value.
@@ -270,18 +272,16 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * @throws java.io.IOException if there is an I/O error reading the journal.
      * @throws RecoveryException if an error preventing recovery happened.
      */
-    private Set commitDanglingTransactions(long oldestTransactionTimestamp, Map danglingRecords) throws IOException, RecoveryException {
-        Set committedGtrids = new HashSet();
+    private Set<Uid> commitDanglingTransactions(long oldestTransactionTimestamp, Map<Uid, TransactionLogRecord> danglingRecords) throws IOException, RecoveryException {
+        Set<Uid> committedGtrids = new HashSet<Uid>();
 
         if (log.isDebugEnabled()) log.debug("found " + danglingRecords.size() + " dangling record(s) in journal");
-        Iterator it = danglingRecords.entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry entry = (Map.Entry) it.next();
-            Uid gtrid = (Uid) entry.getKey();
-            TransactionLogRecord tlog = (TransactionLogRecord) entry.getValue();
+        for (Map.Entry<Uid, TransactionLogRecord> entry : danglingRecords.entrySet()) {
+            Uid gtrid = entry.getKey();
+            TransactionLogRecord tlog = entry.getValue();
 
-            Set uniqueNames = tlog.getUniqueNames();
-            Set danglingTransactions = getDanglingTransactionsInRecoveredXids(uniqueNames, tlog.getGtrid());
+            Set<String> uniqueNames = tlog.getUniqueNames();
+            Set<DanglingTransaction> danglingTransactions = getDanglingTransactionsInRecoveredXids(uniqueNames, tlog.getGtrid());
 
             long txTimestamp = gtrid.extractTimestamp();
             if (log.isDebugEnabled()) log.debug("recovered XID timestamp: " + txTimestamp + " - oldest in-flight TX timestamp: " + oldestTransactionTimestamp);
@@ -292,18 +292,16 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
                 if (log.isDebugEnabled()) log.debug("committed dangling transaction with GTRID " + gtrid);
                 committedGtrids.add(gtrid);
 
-                Set participatingUniqueNames = filterParticipatingUniqueNamesInRecoveredXids(uniqueNames);
+                Set<String> participatingUniqueNames = filterParticipatingUniqueNamesInRecoveredXids(uniqueNames);
 
                 if (participatingUniqueNames.size() > 0) {
                     if (log.isDebugEnabled()) log.debug("updating journal's transaction with GTRID " + gtrid + " status to COMMITTED for names [" + buildUniqueNamesString(participatingUniqueNames) + "]");
                     TransactionManagerServices.getJournal().log(Status.STATUS_COMMITTED, tlog.getGtrid(), participatingUniqueNames);
-                }
-                else {
+                } else {
                     if (log.isDebugEnabled()) log.debug("not updating journal's transaction with GTRID " + gtrid + " status to COMMITTED as no resource could be found (incremental recovery will need to clean this)");
                     committedGtrids.remove(gtrid);
                 }
-            }
-            else {
+            } else {
                 if (log.isDebugEnabled()) log.debug("skipping in-flight transaction with GTRID " + gtrid);
             }
         }
@@ -320,44 +318,37 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * @param gtrid the GTRID to look for.
      * @return a set of {@link DanglingTransaction}s.
      */
-    private Set getDanglingTransactionsInRecoveredXids(Set uniqueNames, Uid gtrid) {
-        Set danglingTransactions = new HashSet();
+    private Set<DanglingTransaction> getDanglingTransactionsInRecoveredXids(Set<String> uniqueNames, Uid gtrid) {
+        Set<DanglingTransaction> danglingTransactions = new HashSet<DanglingTransaction>();
 
-        Iterator it = uniqueNames.iterator();
-        while (it.hasNext()) {
-            String uniqueName = (String) it.next();
+        for (String uniqueName : uniqueNames) {
             if (log.isDebugEnabled()) log.debug("finding dangling transaction(s) in recovered XID(s) of resource " + uniqueName);
-            Set recoveredXids = (Set) recoveredXidSets.get(uniqueName);
+            Set<BitronixXid> recoveredXids = recoveredXidSets.get(uniqueName);
             if (recoveredXids == null) {
                 if (log.isDebugEnabled()) log.debug("resource " + uniqueName + " did not recover, skipping commit");
                 continue;
             }
 
-            Iterator it2 = recoveredXids.iterator();
-            while (it2.hasNext()) {
-                BitronixXid recoveredXid = (BitronixXid) it2.next();
+            for (BitronixXid recoveredXid : recoveredXids) {
                 if (gtrid.equals(recoveredXid.getGlobalTransactionIdUid())) {
                     if (log.isDebugEnabled()) log.debug("found a recovered XID matching dangling log's GTRID " + gtrid + " in resource " + uniqueName);
                     danglingTransactions.add(new DanglingTransaction(uniqueName, recoveredXid));
                 }
-            } // while it2.hasNext()
+            }
         }
 
         return danglingTransactions;
     }
 
-    private Set filterParticipatingUniqueNamesInRecoveredXids(Set uniqueNames) {
-        Set recoveredUniqueNames = new HashSet();
+    private Set<String> filterParticipatingUniqueNamesInRecoveredXids(Set<String> uniqueNames) {
+        Set<String> recoveredUniqueNames = new HashSet<String>();
 
-        Iterator it = uniqueNames.iterator();
-        while (it.hasNext()) {
-            String uniqueName = (String) it.next();
+        for (String uniqueName : uniqueNames) {
             if (log.isDebugEnabled()) log.debug("finding dangling transaction(s) in recovered XID(s) of resource " + uniqueName);
-            Set recoveredXids = (Set) recoveredXidSets.get(uniqueName);
+            Set<BitronixXid> recoveredXids = recoveredXidSets.get(uniqueName);
             if (recoveredXids == null) {
                 if (log.isDebugEnabled()) log.debug("cannot find resource '" + uniqueName + "' present in the journal, leaving it for incremental recovery");
-            }
-            else {
+            } else {
                 recoveredUniqueNames.add(uniqueName);
             }
         }
@@ -371,12 +362,10 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * @param danglingTransactions a set of {@link DanglingTransaction}s to commit.
      * @throws RecoveryException if an error preventing recovery happened.
      */
-    private void commit(Set danglingTransactions) throws RecoveryException {
+    private void commit(Set<DanglingTransaction> danglingTransactions) throws RecoveryException {
         if (log.isDebugEnabled()) log.debug(danglingTransactions.size() + " branch(es) to commit");
 
-        Iterator it = danglingTransactions.iterator();
-        while (it.hasNext()) {
-            DanglingTransaction danglingTransaction = (DanglingTransaction) it.next();
+        for (DanglingTransaction danglingTransaction : danglingTransactions) {
             Xid xid = danglingTransaction.getXid();
             String uniqueName = danglingTransaction.getUniqueName();
 
@@ -394,7 +383,7 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * @throws RecoveryException if an error preventing recovery happened.
      */
     private boolean commit(String uniqueName, Xid xid) throws RecoveryException {
-        XAResourceProducer producer = (XAResourceProducer) registeredResources.get(uniqueName);
+        XAResourceProducer producer = registeredResources.get(uniqueName);
         try {
             XAResourceHolderState xaResourceHolderState = producer.startRecovery();
             return RecoveryHelper.commit(xaResourceHolderState, xid);
@@ -412,14 +401,12 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * @return the rolled back branches count.
      * @throws RecoveryException if an error preventing recovery happened.
      */
-    private int rollbackAbortedTransactions(long oldestTransactionTimestamp, Set committedGtrids) throws RecoveryException {
+    private int rollbackAbortedTransactions(long oldestTransactionTimestamp, Set<Uid> committedGtrids) throws RecoveryException {
         if (log.isDebugEnabled()) log.debug("rolling back aborted branch(es)");
         int rollbackCount = 0;
-        Iterator it = recoveredXidSets.entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry entry = (Map.Entry) it.next();
-            String uniqueName = (String) entry.getKey();
-            Set recoveredXids = (Set) entry.getValue();
+        for (Map.Entry<String, Set<BitronixXid>> entry : recoveredXidSets.entrySet()) {
+            String uniqueName = entry.getKey();
+            Set<BitronixXid> recoveredXids = entry.getValue();
 
             if (log.isDebugEnabled()) log.debug("checking " + recoveredXids.size() + " branch(es) on " + uniqueName + " for rollback");
             int count = rollbackAbortedBranchesOfResource(oldestTransactionTimestamp, uniqueName, recoveredXids, committedGtrids);
@@ -441,11 +428,9 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * @return the rolled back branches count.
      * @throws RecoveryException if an error preventing recovery happened.
      */
-    private int rollbackAbortedBranchesOfResource(long oldestTransactionTimestamp, String uniqueName, Set recoveredXids, Set committedGtrids) throws RecoveryException {
+    private int rollbackAbortedBranchesOfResource(long oldestTransactionTimestamp, String uniqueName, Set<BitronixXid> recoveredXids, Set<Uid> committedGtrids) throws RecoveryException {
         int abortedCount = 0;
-        Iterator it = recoveredXids.iterator();
-        while (it.hasNext()) {
-            BitronixXid recoveredXid = (BitronixXid) it.next();
+        for (BitronixXid recoveredXid : recoveredXids) {
             if (committedGtrids.contains(recoveredXid.getGlobalTransactionIdUid())) {
                 if (log.isDebugEnabled()) log.debug("XID has been committed, skipping rollback: " + recoveredXid + " on " + uniqueName);
                 continue;
@@ -475,7 +460,7 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
      * @throws RecoveryException if an error preventing recovery happened.
      */
     private boolean rollback(String uniqueName, Xid xid) throws RecoveryException {
-        XAResourceProducer producer = (XAResourceProducer) registeredResources.get(uniqueName);
+        XAResourceProducer producer = registeredResources.get(uniqueName);
         if (producer == null) {
             if (log.isDebugEnabled()) log.debug("resource " + uniqueName + " has not recovered, skipping rollback");
             return false;
@@ -497,11 +482,11 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
         return buildUniqueNamesString(registeredResources.keySet());
     }
 
-    private static String buildUniqueNamesString(Set uniqueNames) {
-        StringBuffer resourcesUniqueNames = new StringBuffer();
-        Iterator it = uniqueNames.iterator();
+    private static String buildUniqueNamesString(Set<String> uniqueNames) {
+        StringBuilder resourcesUniqueNames = new StringBuilder();
+        Iterator<String> it = uniqueNames.iterator();
         while (it.hasNext()) {
-            String uniqueName = (String) it.next();
+            String uniqueName = it.next();
             resourcesUniqueNames.append(uniqueName);
             if (it.hasNext())
                 resourcesUniqueNames.append(", ");
@@ -509,40 +494,4 @@ public class Recoverer implements Runnable, Service, RecovererMBean {
         return resourcesUniqueNames.toString();
     }
 
-    /**
-     * A boolean value that may be updated atomically. This is a simplified subset of the JDK 1.5+
-     * java.util.concurrent.atomic.AtomicBoolean class.
-     */
-    private static class AtomicBoolean {
-        private boolean value;
-
-        public AtomicBoolean(boolean value) {
-            this.value = value;
-        }
-
-        public synchronized boolean get() {
-            return value;
-        }
-
-        public synchronized void set(boolean value) {
-            this.value = value;
-        }
-
-        /**
-         * Atomically sets the value to the given updated value if the current value == the expected value.
-         *
-         * @param expect the expected value.
-         * @param update the new value.
-         * @return true if successful. False return indicates that the actual value was not equal to the expected value.
-         */
-        public synchronized boolean compareAndSet(boolean expect, boolean update) {
-            if (this.value == expect) {
-                this.value = update;
-                return true;
-            }
-            return false;
-        }
-
-    }
-
 }
diff --git a/src/bitronix/tm/recovery/RecoveryHelper.java b/src/bitronix/tm/recovery/RecoveryHelper.java
index c9e771d..3362c83 100644
--- a/src/bitronix/tm/recovery/RecoveryHelper.java
+++ b/src/bitronix/tm/recovery/RecoveryHelper.java
@@ -52,8 +52,8 @@ public class RecoveryHelper {
      * @param xaResourceHolderState the {@link XAResourceHolderState} to recover.
      * @throws javax.transaction.xa.XAException if {@link XAResource#recover(int)} calls fail.
      */
-    public static Set recover(XAResourceHolderState xaResourceHolderState) throws XAException {
-        Set xids = new HashSet();
+    public static Set<BitronixXid> recover(XAResourceHolderState xaResourceHolderState) throws XAException {
+        Set<BitronixXid> xids = new HashSet<BitronixXid>();
 
         if (log.isDebugEnabled()) log.debug("recovering with STARTRSCAN");
         int xidCount;
@@ -99,21 +99,20 @@ public class RecoveryHelper {
      * @param flags any combination of {@link XAResource#TMSTARTRSCAN}, {@link XAResource#TMNOFLAGS} or {@link XAResource#TMENDRSCAN}.
      * @throws javax.transaction.xa.XAException if {@link XAResource#recover(int)} call fails.
      */
-    private static int recover(XAResourceHolderState resourceHolderState, Set alreadyRecoveredXids, int flags) throws XAException {
+    private static int recover(XAResourceHolderState resourceHolderState, Set<BitronixXid> alreadyRecoveredXids, int flags) throws XAException {
         Xid[] xids = resourceHolderState.getXAResource().recover(flags);
         if (xids == null)
             return 0;
 
         boolean currentNodeOnly = TransactionManagerServices.getConfiguration().isCurrentNodeOnlyRecovery();
 
-        Set freshlyRecoveredXids = new HashSet();
-        for (int i = 0; i < xids.length; i++) {
-            Xid xid = xids[i];
+        Set<BitronixXid> freshlyRecoveredXids = new HashSet<BitronixXid>();
+        for (Xid xid : xids) {
             if (xid.getFormatId() != BitronixXid.FORMAT_ID) {
                 if (log.isDebugEnabled()) log.debug("skipping non-bitronix XID " + xid + "(format ID: " + xid.getFormatId() +
                      " GTRID: " + new Uid(xid.getGlobalTransactionId()) + "BQUAL: " + new Uid(xid.getBranchQualifier()) + ")");
                 continue;
-             }
+            }
 
             BitronixXid bitronixXid = new BitronixXid(xid);
 
@@ -134,8 +133,7 @@ public class RecoveryHelper {
                     if (log.isDebugEnabled()) log.debug("skipping XID " + bitronixXid + " as its GTRID's serverId <" + extractedServerIdString + "> does not match this JVM unique ID <" + jvmUniqueIdString + ">");
                     continue;
                 }
-            }
-            else {
+            } else {
                 if (log.isDebugEnabled()) log.debug("recovering all XIDs regardless of this JVM uniqueId");
             }
 
@@ -172,22 +170,27 @@ public class RecoveryHelper {
         try {
             xaResourceHolderState.getXAResource().commit(xid, false);
         } catch (XAException ex) {
+            String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
             if (ex.errorCode == XAException.XAER_NOTA) {
-                log.error("unable to commit in-doubt branch on resource " + uniqueName + " - error=XAER_NOTA. Forgotten heuristic?", ex);
+                log.error("unable to commit in-doubt branch on resource " + uniqueName + " - error=XAER_NOTA" +
+                        (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) + ". Forgotten heuristic?", ex);
             }
             else if (ex.errorCode == XAException.XA_HEURCOM) {
                 log.info("unable to commit in-doubt branch on resource " + uniqueName + " - error=" +
-                        Decoder.decodeXAExceptionErrorCode(ex) + ". Heuristic decision compatible with the global state of this transaction.");
+                        Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) +
+                        ". Heuristic decision compatible with the global state of this transaction.");
                 forget = true;
             }
             else if (ex.errorCode == XAException.XA_HEURHAZ || ex.errorCode == XAException.XA_HEURMIX || ex.errorCode == XAException.XA_HEURRB) {
                 log.error("unable to commit in-doubt branch on resource " + uniqueName + " - error=" +
-                        Decoder.decodeXAExceptionErrorCode(ex) + ". Heuristic decision incompatible with the global state of this transaction!");
+                        Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) +
+                        ". Heuristic decision incompatible with the global state of this transaction!");
                 forget = true;
                 success = false;
             }
             else {
-                log.error("unable to commit in-doubt branch on resource " + uniqueName + " - error=" + Decoder.decodeXAExceptionErrorCode(ex) + ".", ex);
+                log.error("unable to commit in-doubt branch on resource " + uniqueName +
+                        " - error=" + Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) + ".", ex);
                 success = false;
             }
         }
@@ -196,7 +199,9 @@ public class RecoveryHelper {
                 if (log.isDebugEnabled()) log.debug("forgetting XID " + xid + " on resource " + uniqueName);
                 xaResourceHolderState.getXAResource().forget(xid);
             } catch (XAException ex) {
-                log.error("unable to forget XID " + xid + " on resource " + uniqueName + ", error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+                String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
+                log.error("unable to forget XID " + xid + " on resource " + uniqueName + ", error=" + Decoder.decodeXAExceptionErrorCode(ex) +
+                        (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
             }
         }
         return success;
@@ -215,23 +220,27 @@ public class RecoveryHelper {
         try {
             xaResourceHolderState.getXAResource().rollback(xid);
         } catch (XAException ex) {
+            String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
             if (ex.errorCode == XAException.XAER_NOTA) {
-                log.error("unable to rollback aborted in-doubt branch on resource " + uniqueName + " - error=XAER_NOTA. Forgotten heuristic?", ex);
+                log.error("unable to rollback aborted in-doubt branch on resource " + uniqueName + " - error=XAER_NOTA" +
+                        (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) + ". Forgotten heuristic?", ex);
             }
             else if (ex.errorCode == XAException.XA_HEURRB) {
                 log.info("unable to rollback aborted in-doubt branch on resource " + uniqueName + " - error=" +
-                        Decoder.decodeXAExceptionErrorCode(ex) + ". Heuristic decision compatible with the global state of this transaction.");
+                        Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) +
+                        ". Heuristic decision compatible with the global state of this transaction.");
                 forget = true;
             }
             else if (ex.errorCode == XAException.XA_HEURHAZ || ex.errorCode == XAException.XA_HEURMIX || ex.errorCode == XAException.XA_HEURCOM) {
                 log.error("unable to rollback aborted in-doubt branch on resource " + uniqueName + " - error=" +
-                        Decoder.decodeXAExceptionErrorCode(ex) + ". Heuristic decision incompatible with the global state of this transaction!");
+                        Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) +
+                        ". Heuristic decision incompatible with the global state of this transaction!");
                 forget = true;
                 success = false;
             }
             else {
                 log.error("unable to rollback aborted in-doubt branch on resource " + uniqueName + " - error=" +
-                        Decoder.decodeXAExceptionErrorCode(ex) + ".", ex);
+                        Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) + ".", ex);
                 success = false;
             }
         }
@@ -240,7 +249,9 @@ public class RecoveryHelper {
                 if (log.isDebugEnabled()) log.debug("forgetting XID " + xid + " on resource " + uniqueName);
                 xaResourceHolderState.getXAResource().forget(xid);
             } catch (XAException ex) {
-                log.error("unable to forget XID " + xid + " on resource " + uniqueName + ", error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+                String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
+                log.error("unable to forget XID " + xid + " on resource " + uniqueName + ", error=" + Decoder.decodeXAExceptionErrorCode(ex) +
+                        (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
             }
         }
         return success;
diff --git a/src/bitronix/tm/resource/ResourceLoader.java b/src/bitronix/tm/resource/ResourceLoader.java
index 0fa5515..0259b08 100644
--- a/src/bitronix/tm/resource/ResourceLoader.java
+++ b/src/bitronix/tm/resource/ResourceLoader.java
@@ -21,11 +21,11 @@
 package bitronix.tm.resource;
 
 import bitronix.tm.TransactionManagerServices;
+import bitronix.tm.resource.common.XAResourceProducer;
+import bitronix.tm.utils.ClassLoaderUtils;
 import bitronix.tm.utils.InitializationException;
 import bitronix.tm.utils.PropertyUtils;
 import bitronix.tm.utils.Service;
-import bitronix.tm.utils.ClassLoaderUtils;
-import bitronix.tm.resource.common.XAResourceProducer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -34,7 +34,11 @@ import javax.sql.XADataSource;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 /**
  * XA resources pools configurator & loader.
@@ -53,7 +57,7 @@ public class ResourceLoader implements Service {
     private final static String JDBC_RESOURCE_CLASSNAME = "bitronix.tm.resource.jdbc.PoolingDataSource";
     private final static String JMS_RESOURCE_CLASSNAME = "bitronix.tm.resource.jms.PoolingConnectionFactory";
 
-    private Map resourcesByUniqueName = Collections.EMPTY_MAP;
+    private final Map<String, XAResourceProducer> resourcesByUniqueName = new HashMap<String, XAResourceProducer>();
 
     public ResourceLoader() {
     }
@@ -62,7 +66,7 @@ public class ResourceLoader implements Service {
      * Get a Map with the configured uniqueName as key and {@link XAResourceProducer} as value.
      * @return a Map using the uniqueName as key and {@link XAResourceProducer} as value.
      */
-    public Map getResources() {
+    public Map<String, XAResourceProducer> getResources() {
         return resourcesByUniqueName;
     }
 
@@ -87,10 +91,8 @@ public class ResourceLoader implements Service {
 
     public synchronized void shutdown() {
         if (log.isDebugEnabled()) log.debug("resource loader has registered " + resourcesByUniqueName.entrySet().size() + " resource(s), unregistering them now");
-        Iterator it = resourcesByUniqueName.entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry entry = (Map.Entry) it.next();
-            XAResourceProducer producer = (XAResourceProducer) entry.getValue();
+        for (Map.Entry<String, XAResourceProducer> entry : resourcesByUniqueName.entrySet()) {
+            XAResourceProducer producer = entry.getValue();
             if (log.isDebugEnabled()) log.debug("closing " + producer);
             try {
                 producer.close();
@@ -109,14 +111,14 @@ public class ResourceLoader implements Service {
      * Create an unitialized {@link XAResourceProducer} implementation which depends on the XA resource class name.
      * @param xaResourceClassName an XA resource class name.
      * @return a {@link XAResourceProducer} implementation.
-     * @throws ClassNotFoundException if the {@link XAResourceProducer} cannot be instanciated.
-     * @throws IllegalAccessException if the {@link XAResourceProducer} cannot be instanciated.
-     * @throws InstantiationException if the {@link XAResourceProducer} cannot be instanciated.
+     * @throws ClassNotFoundException if the {@link XAResourceProducer} cannot be instantiated.
+     * @throws IllegalAccessException if the {@link XAResourceProducer} cannot be instantiated.
+     * @throws InstantiationException if the {@link XAResourceProducer} cannot be instantiated.
      */
-    private static XAResourceProducer instanciate(String xaResourceClassName) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+    private static XAResourceProducer instantiate(String xaResourceClassName) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
         Class clazz = ClassLoaderUtils.loadClass(xaResourceClassName);
 
-        // resource classes are instanciated via reflection so that there is no hard class binding between this internal
+        // resource classes are instantiated via reflection so that there is no hard class binding between this internal
         // transaction manager service and 3rd party libraries like the JMS ones.
         // This allows using the TM with a 100% JDBC application without requiring JMS libraries.
 
@@ -159,14 +161,12 @@ public class ResourceLoader implements Service {
      * @return the number of resources which failed to initialize.
      */
     int initXAResourceProducers(Properties properties) {
-        Map entries = buildConfigurationEntriesMap(properties);
+        Map<String, List<PropertyPair>> entries = buildConfigurationEntriesMap(properties);
         int errorCount = 0;
 
-        resourcesByUniqueName = new HashMap();
-        for (Iterator it = entries.entrySet().iterator(); it.hasNext();) {
-            Map.Entry entry = (Map.Entry) it.next();
-            String uniqueName = (String) entry.getKey();
-            List propertyPairs = (List) entry.getValue();
+        for (Map.Entry<String, List<PropertyPair>> entry : entries.entrySet()) {
+            String uniqueName = entry.getKey();
+            List<PropertyPair> propertyPairs = entry.getValue();
             XAResourceProducer producer = buildXAResourceProducer(uniqueName, propertyPairs);
 
             if (ResourceRegistrar.get(producer.getUniqueName()) != null) {
@@ -194,11 +194,9 @@ public class ResourceLoader implements Service {
      * @param properties object to analyze.
      * @return the built map.
      */
-    private Map buildConfigurationEntriesMap(Properties properties) {
-        Map entries = new HashMap();
-        Iterator it = properties.entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry entry = (Map.Entry) it.next();
+    private Map<String, List<PropertyPair>> buildConfigurationEntriesMap(Properties properties) {
+        Map<String, List<PropertyPair>> entries = new HashMap<String, List<PropertyPair>>();
+        for (Map.Entry<Object, Object> entry : properties.entrySet()) {
             String key = (String) entry.getKey();
             String value = (String) entry.getValue();
 
@@ -211,14 +209,14 @@ public class ResourceLoader implements Service {
                 String configuredName = keyParts[1];
                 String propertyName = keyParts[2];
                 if (keyParts.length > 3) {
-                    for (int i=3; i < keyParts.length; i++) {
+                    for (int i = 3; i < keyParts.length; i++) {
                         propertyName += "." + keyParts[i];
                     }
                 }
 
-                List pairs = (List) entries.get(configuredName);
+                List<PropertyPair> pairs = entries.get(configuredName);
                 if (pairs == null) {
-                    pairs = new ArrayList();
+                    pairs = new ArrayList<PropertyPair>();
                     entries.put(configuredName, pairs);
                 }
 
@@ -235,13 +233,12 @@ public class ResourceLoader implements Service {
      * @return a populated {@link XAResourceProducer}.
      * @throws ResourceConfigurationException if the {@link XAResourceProducer} cannot be built.
      */
-    private XAResourceProducer buildXAResourceProducer(String configuredName, List propertyPairs) throws ResourceConfigurationException {
+    private XAResourceProducer buildXAResourceProducer(String configuredName, List<PropertyPair> propertyPairs) throws ResourceConfigurationException {
         String lastPropertyName = "className";
         try {
             XAResourceProducer producer = createBean(configuredName, propertyPairs);
 
-            for (int i = 0; i < propertyPairs.size(); i++) {
-                PropertyPair propertyPair = (PropertyPair) propertyPairs.get(i);
+            for (PropertyPair propertyPair : propertyPairs) {
                 lastPropertyName = propertyPair.getName();
                 String propertyValue = propertyPair.getValue();
 
@@ -263,16 +260,15 @@ public class ResourceLoader implements Service {
      * @param configuredName the properties configured name.
      * @param propertyPairs a list of {@link PropertyPair}s.
      * @return a {@link XAResourceProducer}.
-     * @throws ClassNotFoundException if the {@link XAResourceProducer} cannot be instanciated.
-     * @throws IllegalAccessException if the {@link XAResourceProducer} cannot be instanciated.
-     * @throws InstantiationException if the {@link XAResourceProducer} cannot be instanciated.
+     * @throws ClassNotFoundException if the {@link XAResourceProducer} cannot be instantiated.
+     * @throws IllegalAccessException if the {@link XAResourceProducer} cannot be instantiated.
+     * @throws InstantiationException if the {@link XAResourceProducer} cannot be instantiated.
      */
-    private XAResourceProducer createBean(String configuredName, List propertyPairs) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
-        for (int i = 0; i < propertyPairs.size(); i++) {
-            PropertyPair propertyPair = (PropertyPair) propertyPairs.get(i);
+    private XAResourceProducer createBean(String configuredName, List<PropertyPair> propertyPairs) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+        for (PropertyPair propertyPair : propertyPairs) {
             if (propertyPair.getName().equals("className")) {
                 String className = propertyPair.getValue();
-                XAResourceProducer producer = instanciate(className);
+                XAResourceProducer producer = instantiate(className);
                 if (producer == null)
                     throw new ResourceConfigurationException("property [className] " +
                             "of resource [" + configuredName + "] in resources configuration file " +
@@ -284,9 +280,9 @@ public class ResourceLoader implements Service {
     }
 
 
-    private class PropertyPair {
-        private String name;
-        private String value;
+    private final class PropertyPair {
+        private final String name;
+        private final String value;
 
         public PropertyPair(String key, String value) {
             this.name = key;
diff --git a/src/bitronix/tm/resource/ResourceObjectFactory.java b/src/bitronix/tm/resource/ResourceObjectFactory.java
index 5f9fe78..3cde302 100644
--- a/src/bitronix/tm/resource/ResourceObjectFactory.java
+++ b/src/bitronix/tm/resource/ResourceObjectFactory.java
@@ -27,8 +27,6 @@ import javax.naming.spi.ObjectFactory;
 import javax.naming.*;
 import java.util.Hashtable;
 
-import bitronix.tm.utils.Decoder;
-
 /**
  * {@link bitronix.tm.resource.common.XAResourceProducer} object factory for JNDI references.
  *
@@ -39,7 +37,7 @@ public class ResourceObjectFactory implements ObjectFactory {
 
     private final static Logger log = LoggerFactory.getLogger(ResourceObjectFactory.class);
 
-    public Object getObjectInstance(Object obj, Name jndiNameObject, Context nameCtx, Hashtable environment) throws Exception {
+    public Object getObjectInstance(Object obj, Name jndiNameObject, Context nameCtx, Hashtable<?,?> environment) throws Exception {
         Reference ref = (Reference) obj;
         if (log.isDebugEnabled()) log.debug("referencing resource with reference of type " + ref.getClass());
 
@@ -54,7 +52,7 @@ public class ResourceObjectFactory implements ObjectFactory {
         if (log.isDebugEnabled()) log.debug("getting registered resource with uniqueName '" + uniqueName + "'");
         Referenceable resource = ResourceRegistrar.get(uniqueName);
         if (resource == null)
-            throw new NamingException("no resource registered with uniqueName '" + uniqueName + "', available resources: " + Decoder.collectResourcesNames(ResourceRegistrar.getResourcesUniqueNames()));
+            throw new NamingException("no resource registered with uniqueName '" + uniqueName + "', available resources: " + ResourceRegistrar.getResourcesUniqueNames());
 
         return resource;
     }
diff --git a/src/bitronix/tm/resource/ResourceRegistrar.java b/src/bitronix/tm/resource/ResourceRegistrar.java
index ee45ca6..e637c27 100644
--- a/src/bitronix/tm/resource/ResourceRegistrar.java
+++ b/src/bitronix/tm/resource/ResourceRegistrar.java
@@ -20,16 +20,22 @@
  */
 package bitronix.tm.resource;
 
-import bitronix.tm.resource.common.XAResourceHolder;
-import bitronix.tm.resource.common.XAResourceProducer;
+import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.recovery.IncrementalRecoverer;
 import bitronix.tm.recovery.RecoveryException;
-import bitronix.tm.TransactionManagerServices;
+import bitronix.tm.resource.common.XAResourceHolder;
+import bitronix.tm.resource.common.XAResourceProducer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.transaction.xa.XAResource;
-import java.util.*;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
 
 /**
  * Collection of initialized {@link XAResourceProducer}s. All resources must be registered in the {@link ResourceRegistrar}
@@ -41,23 +47,24 @@ public class ResourceRegistrar {
 
     private final static Logger log = LoggerFactory.getLogger(ResourceRegistrar.class);
 
-    private static Map resources = new HashMap();
+    private static final Lock registrationLock = new ReentrantLock();
+    private static final ConcurrentMap<String, XAResourceProducer> resources = new ConcurrentHashMap<String, XAResourceProducer>();
 
     /**
      * Get a registered {@link XAResourceProducer}.
      * @param uniqueName the name of the recoverable resource producer.
      * @return the {@link XAResourceProducer} or null if there was none registered under that name.
      */
-    public synchronized static XAResourceProducer get(String uniqueName) {
-        return (XAResourceProducer) resources.get(uniqueName);
+    public static XAResourceProducer get(String uniqueName) {
+        return resources.get(uniqueName);
     }
 
     /**
      * Get all {@link XAResourceProducer}s unique names.
      * @return a Set containing all {@link bitronix.tm.resource.common.XAResourceProducer}s unique names.
      */
-    public synchronized static Set getResourcesUniqueNames() {
-        return new HashSet(resources.keySet());
+    public static Set<String> getResourcesUniqueNames() {
+        return Collections.unmodifiableSet(resources.keySet());
     }
 
     /**
@@ -66,34 +73,43 @@ public class ResourceRegistrar {
      * @param producer the {@link XAResourceProducer}.
      * @throws bitronix.tm.recovery.RecoveryException when an error happens during recovery.
      */
-    public synchronized static void register(XAResourceProducer producer) throws RecoveryException {
-        String uniqueName = producer.getUniqueName();
-        if (producer.getUniqueName() == null)
-            throw new IllegalArgumentException("invalid resource with null uniqueName");
-        if (resources.containsKey(uniqueName))
-            throw new IllegalArgumentException("resource with uniqueName '" + producer.getUniqueName() + "' has already been registered");
+    public static void register(XAResourceProducer producer) throws RecoveryException {
+        registrationLock.lock();
+        try {
+            String uniqueName = producer.getUniqueName();
+            if (producer.getUniqueName() == null)
+                throw new IllegalArgumentException("invalid resource with null uniqueName");
+            if (resources.containsKey(uniqueName))
+                throw new IllegalArgumentException("resource with uniqueName '" + producer.getUniqueName() + "' has already been registered");
 
-        if (TransactionManagerServices.isTransactionManagerRunning()) {
-            if (log.isDebugEnabled()) log.debug("transaction manager is running, recovering resource " + uniqueName);
-            IncrementalRecoverer.recover(producer);
+            if (TransactionManagerServices.isTransactionManagerRunning()) {
+                if (log.isDebugEnabled()) log.debug("transaction manager is running, recovering resource " + uniqueName);
+                IncrementalRecoverer.recover(producer);
+            }
+            resources.put(uniqueName, producer);
+        } finally {
+            registrationLock.unlock();
         }
-
-        resources.put(uniqueName, producer);
     }
 
     /**
      * Unregister a previously registered {@link XAResourceProducer}.
      * @param producer the {@link XAResourceProducer}.
      */
-    public synchronized static void unregister(XAResourceProducer producer) {
-        String uniqueName = producer.getUniqueName();
-        if (producer.getUniqueName() == null)
-            throw new IllegalArgumentException("invalid resource with null uniqueName");
-        if (!resources.containsKey(uniqueName)) {
-            if (log.isDebugEnabled()) log.debug("resource with uniqueName '" + producer.getUniqueName() + "' has not been registered");
-            return;
+    public static void unregister(XAResourceProducer producer) {
+        registrationLock.lock();
+        try {
+            String uniqueName = producer.getUniqueName();
+            if (producer.getUniqueName() == null)
+                throw new IllegalArgumentException("invalid resource with null uniqueName");
+            if (!resources.containsKey(uniqueName)) {
+                if (log.isDebugEnabled()) log.debug("resource with uniqueName '" + producer.getUniqueName() + "' has not been registered");
+                return;
+            }
+            resources.remove(uniqueName);
+        } finally {
+            registrationLock.unlock();
         }
-        resources.remove(uniqueName);
     }
 
     /**
@@ -101,11 +117,9 @@ public class ResourceRegistrar {
      * @param xaResource the {@link XAResource} to look for
      * @return the associated {@link XAResourceHolder} or null if it cannot be found.
      */
-    public synchronized static XAResourceHolder findXAResourceHolder(XAResource xaResource) {
-        Iterator it = resources.entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry entry = (Map.Entry) it.next();
-            XAResourceProducer producer = (XAResourceProducer) entry.getValue();
+    public static XAResourceHolder findXAResourceHolder(XAResource xaResource) {
+        for (Map.Entry<String, XAResourceProducer> entry : resources.entrySet()) {
+            XAResourceProducer producer = entry.getValue();
 
             XAResourceHolder resourceHolder = producer.findXAResourceHolder(xaResource);
             if (resourceHolder != null) {
diff --git a/src/bitronix/tm/resource/common/AbstractXAResourceHolder.java b/src/bitronix/tm/resource/common/AbstractXAResourceHolder.java
index 165266c..dc0db86 100644
--- a/src/bitronix/tm/resource/common/AbstractXAResourceHolder.java
+++ b/src/bitronix/tm/resource/common/AbstractXAResourceHolder.java
@@ -41,11 +41,11 @@ public abstract class AbstractXAResourceHolder extends AbstractXAStatefulHolder
 
     private final static Logger log = LoggerFactory.getLogger(AbstractXAResourceHolder.class);
 
-    private final Map xaResourceHolderStates = Collections.synchronizedMap(new HashMap());
+    private final Map<Uid, Map<Uid, XAResourceHolderState>> xaResourceHolderStates = Collections.synchronizedMap(new HashMap<Uid, Map<Uid, XAResourceHolderState>>());
 
-    public Map getXAResourceHolderStatesForGtrid(Uid gtrid) {
+    public Map<Uid, XAResourceHolderState> getXAResourceHolderStatesForGtrid(Uid gtrid) {
         synchronized (xaResourceHolderStates) {
-            return (Map) xaResourceHolderStates.get(gtrid);
+            return xaResourceHolderStates.get(gtrid);
         }
     }
 
@@ -58,14 +58,15 @@ public abstract class AbstractXAResourceHolder extends AbstractXAStatefulHolder
             if (!xaResourceHolderStates.containsKey(gtrid)) {
                 if (log.isDebugEnabled()) log.debug("GTRID [" + gtrid + "] previously unknown to " + this + ", adding it to the resource's transactions list");
 
-                Map statesForGtrid = new LinkedHashMap(4); // use a LinkedHashMap as iteration order must be guaranteed
+                // use a LinkedHashMap as iteration order must be guaranteed
+                Map<Uid, XAResourceHolderState> statesForGtrid = new LinkedHashMap<Uid, XAResourceHolderState>(4);
                 statesForGtrid.put(bqual, xaResourceHolderState);
                 xaResourceHolderStates.put(gtrid, statesForGtrid);
             }
             else {
                 if (log.isDebugEnabled()) log.debug("GTRID [" + gtrid + "] previously known to " + this + ", adding it to the resource's transactions list");
 
-                Map statesForGtrid = (Map) xaResourceHolderStates.get(gtrid);
+                Map<Uid, XAResourceHolderState> statesForGtrid = xaResourceHolderStates.get(gtrid);
                 statesForGtrid.put(bqual, xaResourceHolderState);
             }
         }
@@ -77,13 +78,13 @@ public abstract class AbstractXAResourceHolder extends AbstractXAStatefulHolder
             Uid gtrid = xid.getGlobalTransactionIdUid();
             Uid bqual = xid.getBranchQualifierUid();
 
-            Map statesForGtrid = (Map) xaResourceHolderStates.get(gtrid);
+            Map<Uid, XAResourceHolderState> statesForGtrid = xaResourceHolderStates.get(gtrid);
             if (statesForGtrid == null) {
                 log.warn("tried to remove unknown GTRID [" + gtrid + "] from " + this + " - Bug?");
                 return;
             }
 
-            Object removed = statesForGtrid.remove(bqual);
+            XAResourceHolderState removed = statesForGtrid.remove(bqual);
             if (removed == null) {
                 log.warn("tried to remove unknown BQUAL [" + bqual + "] from " + this + " - Bug?");
                 return;
@@ -97,14 +98,8 @@ public abstract class AbstractXAResourceHolder extends AbstractXAStatefulHolder
 
     public boolean hasStateForXAResource(XAResourceHolder xaResourceHolder) {
         synchronized (xaResourceHolderStates) {
-            Iterator statesForGtridIt = xaResourceHolderStates.values().iterator();
-            while (statesForGtridIt.hasNext()) {
-                Map statesForGtrid = (Map) statesForGtridIt.next();
-
-                Iterator statesForBqualIt = statesForGtrid.values().iterator();
-                while (statesForBqualIt.hasNext()) {
-                    XAResourceHolderState otherXaResourceHolderState = (XAResourceHolderState) statesForBqualIt.next();
-
+            for (Map<Uid, XAResourceHolderState> statesForGtrid : xaResourceHolderStates.values()) {
+                for (XAResourceHolderState otherXaResourceHolderState : statesForGtrid.values()) {
                     if (otherXaResourceHolderState.getXAResource() == xaResourceHolder.getXAResource()) {
                         if (log.isDebugEnabled()) log.debug("resource " + xaResourceHolder + " is enlisted in another transaction with " + otherXaResourceHolderState.getXid().toString());
                         return true;
@@ -128,14 +123,11 @@ public abstract class AbstractXAResourceHolder extends AbstractXAStatefulHolder
             if (gtrid == null)
                 return false;
 
-            Map statesForGtrid = (Map) xaResourceHolderStates.get(gtrid);
+            Map<Uid, XAResourceHolderState> statesForGtrid = xaResourceHolderStates.get(gtrid);
             if (statesForGtrid == null)
                 return false;
 
-            Iterator statesForBqualIt = statesForGtrid.values().iterator();
-            while (statesForBqualIt.hasNext()) {
-                XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) statesForBqualIt.next();
-
+            for (XAResourceHolderState xaResourceHolderState : statesForGtrid.values()) {
                 if (xaResourceHolderState != null &&
                         xaResourceHolderState.isStarted() &&
                         !xaResourceHolderState.isSuspended() &&
@@ -151,13 +143,11 @@ public abstract class AbstractXAResourceHolder extends AbstractXAStatefulHolder
      * this resource is enlisted. Useful for monitoring.
      * @return a set of String-encoded GTRIDs of transactions in which this resource is enlisted.
      */
-    public Set getXAResourceHolderStateGtrids() {
+    public Set<String> getXAResourceHolderStateGtrids() {
         synchronized (xaResourceHolderStates) {
-            HashSet gtridsAsStrings = new HashSet();
+            HashSet<String> gtridsAsStrings = new HashSet<String>();
 
-            Iterator gtridsIt = xaResourceHolderStates.keySet().iterator();
-            while (gtridsIt.hasNext()) {
-                Uid uid = (Uid) gtridsIt.next();
+            for (Uid uid : xaResourceHolderStates.keySet()) {
                 gtridsAsStrings.add(uid.toString());
             }
 
diff --git a/src/bitronix/tm/resource/common/AbstractXAStatefulHolder.java b/src/bitronix/tm/resource/common/AbstractXAStatefulHolder.java
index f47880d..91dd108 100644
--- a/src/bitronix/tm/resource/common/AbstractXAStatefulHolder.java
+++ b/src/bitronix/tm/resource/common/AbstractXAStatefulHolder.java
@@ -35,10 +35,10 @@ public abstract class AbstractXAStatefulHolder implements XAStatefulHolder {
 
     private final static Logger log = LoggerFactory.getLogger(AbstractXAStatefulHolder.class);
 
-    private int state = STATE_IN_POOL;
-    private List stateChangeEventListeners = new ArrayList();
+    private volatile int state = STATE_IN_POOL;
+    private final List<StateChangeListener> stateChangeEventListeners = new ArrayList<StateChangeListener>();
 
-    public synchronized int getState() {
+    public int getState() {
         return state;
     }
 
@@ -46,16 +46,14 @@ public abstract class AbstractXAStatefulHolder implements XAStatefulHolder {
         int oldState = this.state;
         fireStateChanging(oldState, state);
 
-        synchronized (this) {
-            if (oldState == state)
-                throw new IllegalArgumentException("cannot switch state from " + Decoder.decodeXAStatefulHolderState(oldState) +
-                        " to " + Decoder.decodeXAStatefulHolderState(state));
+        if (oldState == state)
+            throw new IllegalArgumentException("cannot switch state from " + Decoder.decodeXAStatefulHolderState(oldState) +
+                    " to " + Decoder.decodeXAStatefulHolderState(state));
 
-            if (log.isDebugEnabled()) log.debug("state changing from " + Decoder.decodeXAStatefulHolderState(oldState) +
-                    " to " + Decoder.decodeXAStatefulHolderState(state) + " in " + this);
+        if (log.isDebugEnabled()) log.debug("state changing from " + Decoder.decodeXAStatefulHolderState(oldState) +
+                " to " + Decoder.decodeXAStatefulHolderState(state) + " in " + this);
 
-            this.state = state;
-        }
+        this.state = state;
 
         fireStateChanged(oldState, state);
     }
@@ -73,8 +71,7 @@ public abstract class AbstractXAStatefulHolder implements XAStatefulHolder {
                 " stateChangeEventListener(s) about state changing from " + Decoder.decodeXAStatefulHolderState(currentState) +
                 " to " + Decoder.decodeXAStatefulHolderState(futureState) + " in " + this);
 
-        for (int i = 0; i < stateChangeEventListeners.size(); i++) {
-            StateChangeListener stateChangeListener = (StateChangeListener) stateChangeEventListeners.get(i);
+        for (StateChangeListener stateChangeListener : stateChangeEventListeners) {
             stateChangeListener.stateChanging(this, currentState, futureState);
         }
     }
@@ -84,8 +81,7 @@ public abstract class AbstractXAStatefulHolder implements XAStatefulHolder {
                 " stateChangeEventListener(s) about state changed from " + Decoder.decodeXAStatefulHolderState(oldState) +
                 " to " + Decoder.decodeXAStatefulHolderState(newState) + " in " + this);
 
-        for (int i = 0; i < stateChangeEventListeners.size(); i++) {
-            StateChangeListener stateChangeListener = (StateChangeListener) stateChangeEventListeners.get(i);
+        for (StateChangeListener stateChangeListener : stateChangeEventListeners) {
             stateChangeListener.stateChanged(this, oldState, newState);
         }
     }
diff --git a/src/bitronix/tm/resource/common/DeferredReleaseSynchronization.java b/src/bitronix/tm/resource/common/DeferredReleaseSynchronization.java
index 1b60cdd..1909559 100644
--- a/src/bitronix/tm/resource/common/DeferredReleaseSynchronization.java
+++ b/src/bitronix/tm/resource/common/DeferredReleaseSynchronization.java
@@ -20,11 +20,10 @@
  */
 package bitronix.tm.resource.common;
 
-import javax.transaction.Synchronization;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import bitronix.tm.BitronixTransaction;
+
+import javax.transaction.Synchronization;
 
 /**
  * {@link Synchronization} used to release a {@link XAStatefulHolder} object after 2PC has executed.
@@ -35,7 +34,7 @@ public class DeferredReleaseSynchronization implements Synchronization {
 
     private final static Logger log = LoggerFactory.getLogger(DeferredReleaseSynchronization.class);
 
-    private XAStatefulHolder xaStatefulHolder;
+    private final XAStatefulHolder xaStatefulHolder;
 
     public DeferredReleaseSynchronization(XAStatefulHolder xaStatefulHolder) {
         this.xaStatefulHolder = xaStatefulHolder;
@@ -60,4 +59,4 @@ public class DeferredReleaseSynchronization implements Synchronization {
     public String toString() {
         return "a DeferredReleaseSynchronization of " + xaStatefulHolder;
     }
-}
\ No newline at end of file
+}
diff --git a/src/bitronix/tm/resource/common/RecoveryXAResourceHolder.java b/src/bitronix/tm/resource/common/RecoveryXAResourceHolder.java
index 32597af..ab180bf 100644
--- a/src/bitronix/tm/resource/common/RecoveryXAResourceHolder.java
+++ b/src/bitronix/tm/resource/common/RecoveryXAResourceHolder.java
@@ -20,12 +20,9 @@
  */
 package bitronix.tm.resource.common;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import javax.transaction.xa.XAResource;
-import java.util.List;
 import java.util.Date;
+import java.util.List;
 
 /**
  * {@link XAResourceHolder} created by an {@link bitronix.tm.resource.common.XAResourceProducer} that is
@@ -35,9 +32,7 @@ import java.util.Date;
  */
 public class RecoveryXAResourceHolder extends AbstractXAResourceHolder {
 
-    private final static Logger log = LoggerFactory.getLogger(RecoveryXAResourceHolder.class);
-
-    private XAResourceHolder xaResourceHolder;
+    private final XAResourceHolder xaResourceHolder;
 
     public RecoveryXAResourceHolder(XAResourceHolder xaResourceHolder) {
         this.xaResourceHolder = xaResourceHolder;
@@ -59,7 +54,7 @@ public class RecoveryXAResourceHolder extends AbstractXAResourceHolder {
         return null;
     }
 
-    public List getXAResourceHolders() {
+    public List<XAResourceHolder> getXAResourceHolders() {
         return null;
     }
 
diff --git a/src/bitronix/tm/resource/common/ResourceBean.java b/src/bitronix/tm/resource/common/ResourceBean.java
index dd4f79c..4faef4d 100644
--- a/src/bitronix/tm/resource/common/ResourceBean.java
+++ b/src/bitronix/tm/resource/common/ResourceBean.java
@@ -31,25 +31,26 @@ import java.util.Properties;
  */
 public abstract class ResourceBean implements Serializable {
 
-    private String className;
-    private String uniqueName;
-    private boolean automaticEnlistingEnabled = true;
-    private boolean useTmJoin = true;
-    private Properties driverProperties = new Properties();
-    private int maxPoolSize = 0;
-    private int minPoolSize = 0;
-    private int maxIdleTime = 60;
-    private int acquireIncrement = 1;
-    private int acquisitionTimeout = 30;
-    private boolean deferConnectionRelease = true;
-    private int acquisitionInterval = 1;
-    private boolean allowLocalTransactions = false;
-    private int twoPcOrderingPosition = 1;
-    private boolean applyTransactionTimeout = false;
-    private boolean shareTransactionConnections = false;
-    private boolean disabled = false;
-    private boolean ignoreRecoveryFailures = false;
-    private transient int createdResourcesCounter;
+    private volatile String className;
+    private volatile String uniqueName;
+    private volatile boolean automaticEnlistingEnabled = true;
+    private volatile boolean useTmJoin = true;
+    private volatile Properties driverProperties = new Properties();
+    private volatile int maxPoolSize = 0;
+    private volatile int minPoolSize = 0;
+    private volatile int maxIdleTime = 60;
+    private volatile int acquireIncrement = 1;
+    private volatile int acquisitionTimeout = 30;
+    private volatile boolean deferConnectionRelease = true;
+    private volatile int acquisitionInterval = 1;
+    private volatile boolean allowLocalTransactions = false;
+    private volatile int twoPcOrderingPosition = 1;
+    private volatile boolean applyTransactionTimeout = false;
+    private volatile boolean shareTransactionConnections = false;
+    private volatile boolean disabled = false;
+    private volatile boolean ignoreRecoveryFailures = false;
+
+    private volatile transient int createdResourcesCounter;
 
     /**
      * Initialize all properties with their default values.
diff --git a/src/bitronix/tm/resource/common/TransactionContextHelper.java b/src/bitronix/tm/resource/common/TransactionContextHelper.java
index 46a896c..b93452a 100644
--- a/src/bitronix/tm/resource/common/TransactionContextHelper.java
+++ b/src/bitronix/tm/resource/common/TransactionContextHelper.java
@@ -23,10 +23,10 @@ package bitronix.tm.resource.common;
 import bitronix.tm.BitronixTransaction;
 import bitronix.tm.BitronixXid;
 import bitronix.tm.TransactionManagerServices;
-import bitronix.tm.utils.Uid;
-import bitronix.tm.utils.Scheduler;
 import bitronix.tm.internal.BitronixSystemException;
 import bitronix.tm.internal.XAResourceHolderState;
+import bitronix.tm.utils.Scheduler;
+import bitronix.tm.utils.Uid;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -34,7 +34,6 @@ import javax.transaction.RollbackException;
 import javax.transaction.Synchronization;
 import javax.transaction.SystemException;
 import javax.transaction.xa.XAResource;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -96,18 +95,15 @@ public class TransactionContextHelper {
         // End resource as eagerly as possible. This allows to release connections to the pool much earlier
         // with resources fully supporting transaction interleaving.
         if (isInEnlistingGlobalTransactionContext(xaResourceHolder, currentTransaction) && !bean.getDeferConnectionRelease()) {
-            Map statesForGtrid = xaResourceHolder.getXAResourceHolderStatesForGtrid(currentTransaction.getResourceManager().getGtrid());
-            Iterator statesForGtridIt = statesForGtrid.values().iterator();
-            while (statesForGtridIt.hasNext()) {
-                XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) statesForGtridIt.next();
-
+            Map<Uid, XAResourceHolderState> statesForGtrid = xaResourceHolder.getXAResourceHolderStatesForGtrid(currentTransaction.getResourceManager().getGtrid());
+            for (XAResourceHolderState xaResourceHolderState : statesForGtrid.values()) {
                 if (!xaResourceHolderState.isEnded()) {
-                    if (log.isDebugEnabled()) log.debug("delisting resource " + xaResourceHolderState + " from " + currentTransaction);
+                    if (log.isDebugEnabled())
+                        log.debug("delisting resource " + xaResourceHolderState + " from " + currentTransaction);
 
                     // Watch out: the delistResource() call might throw a BitronixRollbackSystemException to indicate a unilateral rollback.
                     currentTransaction.delistResource(xaResourceHolderState.getXAResource(), XAResource.TMSUCCESS);
-                }
-                else if (log.isDebugEnabled()) log.debug("avoiding delistment of not enlisted resource " + xaResourceHolderState);
+                } else if (log.isDebugEnabled()) log.debug("avoiding delistment of not enlisted resource " + xaResourceHolderState);
             }
 
         } // isInEnlistingGlobalTransactionContext
@@ -171,7 +167,7 @@ public class TransactionContextHelper {
     public static void recycle(XAStatefulHolder xaStatefulHolder) {
         BitronixTransaction currentTransaction = currentTransaction();
         if (log.isDebugEnabled()) log.debug("marking " + xaStatefulHolder + " as recycled in " + currentTransaction);
-        Scheduler synchronizationScheduler = currentTransaction.getSynchronizationScheduler();
+        Scheduler<Synchronization> synchronizationScheduler = currentTransaction.getSynchronizationScheduler();
 
         DeferredReleaseSynchronization deferredReleaseSynchronization = findDeferredRelease(xaStatefulHolder, currentTransaction);
         if (deferredReleaseSynchronization != null) {
@@ -190,11 +186,9 @@ public class TransactionContextHelper {
     }
 
     private static DeferredReleaseSynchronization findDeferredRelease(XAStatefulHolder xaStatefulHolder, BitronixTransaction currentTransaction) {
-        Scheduler synchronizationScheduler = currentTransaction.getSynchronizationScheduler();
-        Iterator it = synchronizationScheduler.iterator();
+        Scheduler<Synchronization> synchronizationScheduler = currentTransaction.getSynchronizationScheduler();
 
-        while (it.hasNext()) {
-            Synchronization synchronization = (Synchronization) it.next();
+        for (Synchronization synchronization : synchronizationScheduler) {
             if (synchronization instanceof DeferredReleaseSynchronization) {
                 DeferredReleaseSynchronization deferredReleaseSynchronization = (DeferredReleaseSynchronization) synchronization;
                 if (deferredReleaseSynchronization.getXAStatefulHolder() == xaStatefulHolder) {
@@ -218,12 +212,11 @@ public class TransactionContextHelper {
     }
 
     private static boolean isEnlistedInSomeTransaction(XAStatefulHolder xaStatefulHolder) throws BitronixSystemException {
-        List xaResourceHolders = xaStatefulHolder.getXAResourceHolders();
+        List<XAResourceHolder> xaResourceHolders = xaStatefulHolder.getXAResourceHolders();
         if (xaResourceHolders == null)
             return false;
 
-        for (int i = 0; i < xaResourceHolders.size(); i++) {
-            XAResourceHolder xaResourceHolder = (XAResourceHolder) xaResourceHolders.get(i);
+        for (XAResourceHolder xaResourceHolder : xaResourceHolders) {
             boolean enlisted = isEnlistedInSomeTransaction(xaResourceHolder);
             if (enlisted)
                 return true;
@@ -243,12 +236,11 @@ public class TransactionContextHelper {
     }
 
     private static boolean isInEnlistingGlobalTransactionContext(XAStatefulHolder xaStatefulHolder, BitronixTransaction currentTransaction) {
-        List xaResourceHolders = xaStatefulHolder.getXAResourceHolders();
+        List<XAResourceHolder> xaResourceHolders = xaStatefulHolder.getXAResourceHolders();
         if (xaResourceHolders == null)
             return false;
 
-        for (int i = 0; i < xaResourceHolders.size(); i++) {
-            XAResourceHolder xaResourceHolder = (XAResourceHolder) xaResourceHolders.get(i);
+        for (XAResourceHolder xaResourceHolder : xaResourceHolders) {
             boolean enlisted = isInEnlistingGlobalTransactionContext(xaResourceHolder, currentTransaction);
             if (enlisted)
                 return true;
@@ -260,17 +252,14 @@ public class TransactionContextHelper {
     private static XAResourceHolderState getLatestAlreadyEnlistedXAResourceHolderState(XAResourceHolder xaResourceHolder, BitronixTransaction currentTransaction) {
         if (currentTransaction == null)
             return null;
-        Map statesForGtrid = xaResourceHolder.getXAResourceHolderStatesForGtrid(currentTransaction.getResourceManager().getGtrid());
+        Map<Uid, XAResourceHolderState> statesForGtrid = xaResourceHolder.getXAResourceHolderStatesForGtrid(currentTransaction.getResourceManager().getGtrid());
         if (statesForGtrid == null)
             return null;
-        Iterator statesForGtridIt = statesForGtrid.values().iterator();
 
         XAResourceHolderState result = null;
 
         // iteration order is guraranteed so just take the latest matching one in the iterator
-        while (statesForGtridIt.hasNext()) {
-            XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) statesForGtridIt.next();
-
+        for (XAResourceHolderState xaResourceHolderState : statesForGtrid.values()) {
             if (xaResourceHolderState != null && xaResourceHolderState.getXid() != null) {
                 BitronixXid bitronixXid = xaResourceHolderState.getXid();
                 Uid resourceGtrid = bitronixXid.getGlobalTransactionIdUid();
diff --git a/src/bitronix/tm/resource/common/XAPool.java b/src/bitronix/tm/resource/common/XAPool.java
index d49a0e9..7ab6536 100644
--- a/src/bitronix/tm/resource/common/XAPool.java
+++ b/src/bitronix/tm/resource/common/XAPool.java
@@ -45,11 +45,11 @@ public class XAPool implements StateChangeListener {
     private final static Logger log = LoggerFactory.getLogger(XAPool.class);
     private final static String PASSWORD_PROPERTY_NAME = "password";
 
-    private Map statefulHolderTransactionMap = new HashMap();
-    private List objects = new ArrayList();
-    private ResourceBean bean;
-    private XAResourceProducer xaResourceProducer;
-    private Object xaFactory;
+    private final Map<Uid, ThreadLocal<XAStatefulHolder>> statefulHolderTransactionMap = new HashMap<Uid, ThreadLocal<XAStatefulHolder>>();
+    private final List<XAStatefulHolder> objects = new ArrayList<XAStatefulHolder>();
+    private final ResourceBean bean;
+    private final XAResourceProducer xaResourceProducer;
+    private final Object xaFactory;
     private boolean failed = false;
 
     public XAPool(XAResourceProducer xaResourceProducer, ResourceBean bean) throws Exception {
@@ -67,7 +67,7 @@ public class XAPool implements StateChangeListener {
             log.warn("resource '" + bean.getUniqueName() + "' is configured to ignore recovery failures, make sure this setting is not enabled on a production system!");
     }
 
-    private void init() throws Exception {
+    private synchronized void init() throws Exception {
         growUntilMinPoolSize();
 
         if (bean.getMaxIdleTime() > 0) {
@@ -75,12 +75,6 @@ public class XAPool implements StateChangeListener {
         }
     }
 
-    private void growUntilMinPoolSize() throws Exception {
-        for (int i = (int)totalPoolSize(); i < bean.getMinPoolSize() ;i++) {
-            createPooledObject(xaFactory);
-        }
-    }
-
     public Object getXAFactory() {
         return xaFactory;
     }
@@ -114,8 +108,8 @@ public class XAPool implements StateChangeListener {
         }
 
         long remainingTime = bean.getAcquisitionTimeout() * 1000L;
-        long before = System.currentTimeMillis();
         while (true) {
+            long before = MonotonicClock.currentTimeMillis();
             XAStatefulHolder xaStatefulHolder = null;
             if (recycle) {
                 if (bean.getShareTransactionConnections()) {
@@ -136,7 +130,8 @@ public class XAPool implements StateChangeListener {
                 Object connectionHandle = xaStatefulHolder.getConnectionHandle();
                 if (bean.getShareTransactionConnections()) {
                     putSharedXAStatefulHolder(xaStatefulHolder);
-                }                
+                }
+                growUntilMinPoolSize();
                 return connectionHandle;
             } catch (Exception ex) {
                 if (log.isDebugEnabled()) log.debug("connection is invalid, trying to close it", ex);
@@ -149,14 +144,17 @@ public class XAPool implements StateChangeListener {
                 if (log.isDebugEnabled()) log.debug("removed invalid connection " + xaStatefulHolder + " from " + this);
 
                 if (log.isDebugEnabled()) log.debug("waiting " + bean.getAcquisitionInterval() + "s before trying to acquire a connection again from " + this);
-                try {
-                    wait(bean.getAcquisitionInterval() * 1000L);
-                } catch (InterruptedException ex2) {
-                    // ignore
+                long waitTime = bean.getAcquisitionInterval() * 1000L;
+                if (waitTime > 0) {
+                    try {
+                        wait(waitTime);
+                    } catch (InterruptedException ex2) {
+                        // ignore
+                    }
                 }
 
                 // check for timeout
-                long now = System.currentTimeMillis();
+                long now = MonotonicClock.currentTimeMillis();
                 remainingTime -= (now - before);
                 if (remainingTime <= 0) {
                     throw new BitronixRuntimeException("cannot get valid connection from " + this + " after trying for " + bean.getAcquisitionTimeout() + "s", ex);
@@ -167,12 +165,10 @@ public class XAPool implements StateChangeListener {
 
     public synchronized void close() {
         if (log.isDebugEnabled()) log.debug("closing all connections of " + this);
-        for (int i = 0; i < totalPoolSize(); i++) {
-            XAStatefulHolder xaStatefulHolder = (XAStatefulHolder) objects.get(i);
+        for (XAStatefulHolder xaStatefulHolder : objects) {
             try {
-                // This change is unrelated to BTM-35, but suppresses noise in the unit test
-                // output.  Connections that are already in STATE_CLOSED should not be closed
-                // again.
+                // This change is unrelated to BTM-35, but suppresses noise in the unit test output.
+                // Connections that are already in STATE_CLOSED should not be closed again.
                 if (xaStatefulHolder.getState() != XAStatefulHolder.STATE_CLOSED) {
                     xaStatefulHolder.close();
                 }
@@ -194,8 +190,7 @@ public class XAPool implements StateChangeListener {
 
     public synchronized long inPoolSize() {
         int count = 0;
-        for (int i = 0; i < totalPoolSize(); i++) {
-            XAStatefulHolder xaStatefulHolder = (XAStatefulHolder) objects.get(i);
+        for (XAStatefulHolder xaStatefulHolder : objects) {
             if (xaStatefulHolder.getState() == XAStatefulHolder.STATE_IN_POOL)
                 count++;
         }
@@ -215,12 +210,10 @@ public class XAPool implements StateChangeListener {
     }
 
     public synchronized XAResourceHolder findXAResourceHolder(XAResource xaResource) {
-        for (int i = 0; i < totalPoolSize(); i++) {
-            XAStatefulHolder xaStatefulHolder = (XAStatefulHolder) objects.get(i);
-            List xaResourceHolders = xaStatefulHolder.getXAResourceHolders();
+        for (XAStatefulHolder xaStatefulHolder : objects) {
+            List<XAResourceHolder> xaResourceHolders = xaStatefulHolder.getXAResourceHolders();
 
-            for (int j = 0; j < xaResourceHolders.size(); j++) {
-                XAResourceHolder holder = (XAResourceHolder) xaResourceHolders.get(j);
+            for (XAResourceHolder holder : xaResourceHolders) {
                 if (holder.getXAResource() == xaResource)
                     return holder;
             }
@@ -228,20 +221,20 @@ public class XAPool implements StateChangeListener {
         return null;
     }
 
-    public List getXAResourceHolders() {
-        return objects;
+    // used for testing
+    List<XAStatefulHolder> getXAResourceHolders() {
+        return Collections.unmodifiableList(objects);
     }
 
     public Date getNextShrinkDate() {
-        return new Date(System.currentTimeMillis() + bean.getMaxIdleTime() * 1000);
+        return new Date(MonotonicClock.currentTimeMillis() + bean.getMaxIdleTime() * 1000);
     }
 
     public synchronized void shrink() throws Exception {
         if (log.isDebugEnabled()) log.debug("shrinking " + this);
-        List toRemoveXaStatefulHolders = new ArrayList();
-        long now = System.currentTimeMillis();
-        for (int i = 0; i < totalPoolSize(); i++) {
-            XAStatefulHolder xaStatefulHolder = (XAStatefulHolder) objects.get(i);
+        List<XAStatefulHolder> toRemoveXaStatefulHolders = new ArrayList<XAStatefulHolder>();
+        long now = MonotonicClock.currentTimeMillis();
+        for (XAStatefulHolder xaStatefulHolder : objects) {
             if (xaStatefulHolder.getState() != XAStatefulHolder.STATE_IN_POOL)
                 continue;
 
@@ -249,7 +242,7 @@ public class XAPool implements StateChangeListener {
             if (log.isDebugEnabled()) log.debug("checking if connection can be closed: " + xaStatefulHolder + " - closing time: " + expirationTime + ", now time: " + now);
             if (expirationTime <= now) {
                 try {
-                xaStatefulHolder.close();
+                    xaStatefulHolder.close();
                 } catch (Exception ex) {
                     log.warn("error closing " + xaStatefulHolder, ex);
                 }
@@ -264,14 +257,13 @@ public class XAPool implements StateChangeListener {
 
     public synchronized void reset() throws Exception {
         if (log.isDebugEnabled()) log.debug("resetting " + this);
-        List toRemoveXaStatefulHolders = new ArrayList();
-        for (int i = 0; i < totalPoolSize(); i++) {
-            XAStatefulHolder xaStatefulHolder = (XAStatefulHolder) objects.get(i);
+        List<XAStatefulHolder> toRemoveXaStatefulHolders = new ArrayList<XAStatefulHolder>();
+        for (XAStatefulHolder xaStatefulHolder : objects) {
             if (xaStatefulHolder.getState() != XAStatefulHolder.STATE_IN_POOL)
                 continue;
 
             try {
-            xaStatefulHolder.close();
+                xaStatefulHolder.close();
             } catch (Exception ex) {
                 log.warn("error closing " + xaStatefulHolder, ex);
             }
@@ -287,7 +279,7 @@ public class XAPool implements StateChangeListener {
         return "an XAPool of resource " + bean.getUniqueName() + " with " + totalPoolSize() + " connection(s) (" + inPoolSize() + " still available)" + (failed ? " -failed-" : "");
     }
 
-    private void createPooledObject(Object xaFactory) throws Exception {
+    private synchronized void createPooledObject(Object xaFactory) throws Exception {
         XAStatefulHolder xaStatefulHolder = xaResourceProducer.createPooledConnection(xaFactory, bean);
         xaStatefulHolder.addStateChangeEventListener(this);
         objects.add(xaStatefulHolder);
@@ -300,14 +292,12 @@ public class XAPool implements StateChangeListener {
         Class xaFactoryClass = ClassLoaderUtils.loadClass(className);
         Object xaFactory = xaFactoryClass.newInstance();
 
-        Iterator it = bean.getDriverProperties().entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry entry = (Map.Entry) it.next();
+        for (Map.Entry<Object, Object> entry : bean.getDriverProperties().entrySet()) {
             String name = (String) entry.getKey();
-            String value = (String) entry.getValue();
+            Object value = entry.getValue();
 
             if (name.endsWith(PASSWORD_PROPERTY_NAME)) {
-                value = decrypt(value);
+                value = decrypt((String) value);
             }
 
             if (log.isDebugEnabled()) log.debug("setting vendor property '" + name + "' to '" + value + "'");
@@ -328,7 +318,7 @@ public class XAPool implements StateChangeListener {
         return CryptoEngine.decrypt(cipher, resourcePassword.substring(endIdx + 1));
     }
 
-    private XAStatefulHolder getNotAccessible() {
+    private synchronized XAStatefulHolder getNotAccessible() {
         if (log.isDebugEnabled()) log.debug("trying to recycle a NOT_ACCESSIBLE connection of " + this);
         BitronixTransaction transaction = TransactionContextHelper.currentTransaction();
         if (transaction == null) {
@@ -338,8 +328,7 @@ public class XAPool implements StateChangeListener {
         Uid currentTxGtrid = transaction.getResourceManager().getGtrid();
         if (log.isDebugEnabled()) log.debug("current transaction GTRID is [" + currentTxGtrid + "]");
 
-        for (int i = 0; i < totalPoolSize(); i++) {
-            XAStatefulHolder xaStatefulHolder = (XAStatefulHolder) objects.get(i);
+        for (XAStatefulHolder xaStatefulHolder : objects) {
             if (xaStatefulHolder.getState() == XAStatefulHolder.STATE_NOT_ACCESSIBLE) {
                 if (log.isDebugEnabled()) log.debug("found a connection in NOT_ACCESSIBLE state: " + xaStatefulHolder);
                 if (containsXAResourceHolderMatchingGtrid(xaStatefulHolder, currentTxGtrid))
@@ -352,20 +341,15 @@ public class XAPool implements StateChangeListener {
         return null;
     }
 
-    private boolean containsXAResourceHolderMatchingGtrid(XAStatefulHolder xaStatefulHolder, Uid currentTxGtrid) {
-        List xaResourceHolders = xaStatefulHolder.getXAResourceHolders();
+    private static boolean containsXAResourceHolderMatchingGtrid(XAStatefulHolder xaStatefulHolder, Uid currentTxGtrid) {
+        List<XAResourceHolder> xaResourceHolders = xaStatefulHolder.getXAResourceHolders();
         if (log.isDebugEnabled()) log.debug(xaResourceHolders.size() + " xa resource(s) created by connection in NOT_ACCESSIBLE state: " + xaStatefulHolder);
-        for (int i = 0; i < xaResourceHolders.size(); i++) {
-            XAResourceHolder xaResourceHolder = (XAResourceHolder) xaResourceHolders.get(i);
-
-            Map statesForGtrid = xaResourceHolder.getXAResourceHolderStatesForGtrid(currentTxGtrid);
+        for (XAResourceHolder xaResourceHolder : xaResourceHolders) {
+            Map<Uid, XAResourceHolderState> statesForGtrid = xaResourceHolder.getXAResourceHolderStatesForGtrid(currentTxGtrid);
             if (statesForGtrid == null)
                 return false;
 
-            Iterator statesForGtridIt = statesForGtrid.values().iterator();
-            while (statesForGtridIt.hasNext()) {
-                XAResourceHolderState xaResourceHolderState = (XAResourceHolderState) statesForGtridIt.next();
-            
+            for (XAResourceHolderState xaResourceHolderState : statesForGtrid.values()) {
                 // compare GTRIDs
                 BitronixXid bitronixXid = xaResourceHolderState.getXid();
                 Uid resourceGtrid = bitronixXid.getGlobalTransactionIdUid();
@@ -379,7 +363,7 @@ public class XAPool implements StateChangeListener {
         return false;
     }
 
-    private XAStatefulHolder getInPool() throws Exception {
+    private synchronized XAStatefulHolder getInPool() throws Exception {
         if (log.isDebugEnabled()) log.debug("getting a IN_POOL connection from " + this);
 
         if (inPoolSize() == 0) {
@@ -388,8 +372,7 @@ public class XAPool implements StateChangeListener {
         }
 
         waitForConnectionInPool();
-        for (int i = 0; i < totalPoolSize(); i++) {
-            XAStatefulHolder xaStatefulHolder = (XAStatefulHolder) objects.get(i);
+        for (XAStatefulHolder xaStatefulHolder : objects) {
             if (xaStatefulHolder.getState() == XAStatefulHolder.STATE_IN_POOL)
                 return xaStatefulHolder;
         }
@@ -407,17 +390,22 @@ public class XAPool implements StateChangeListener {
             for (int i=0; i < increment ;i++) {
                 createPooledObject(xaFactory);
             }
-        }
-        else {
+        } else {
             if (log.isDebugEnabled()) log.debug("pool " + bean.getUniqueName() + " already at max size of " + totalPoolSize() + " connection(s), not growing it");
         }
     }
 
+    private synchronized void growUntilMinPoolSize() throws Exception {
+        for (int i = (int)totalPoolSize(); i < bean.getMinPoolSize() ;i++) {
+            createPooledObject(xaFactory);
+        }
+    }
+
     private synchronized void waitForConnectionInPool() {
         long remainingTime = bean.getAcquisitionTimeout() * 1000L;
         if (log.isDebugEnabled()) log.debug("waiting for IN_POOL connections count to be > 0, currently is " + inPoolSize());
         while (inPoolSize() == 0) {
-            long before = System.currentTimeMillis();
+            long before = MonotonicClock.currentTimeMillis();
             try {
                 if (log.isDebugEnabled()) log.debug("waiting " + remainingTime + "ms");
                 wait(remainingTime);
@@ -426,7 +414,7 @@ public class XAPool implements StateChangeListener {
                 // ignore
             }
 
-            long now = System.currentTimeMillis();
+            long now = MonotonicClock.currentTimeMillis();
             remainingTime -= (now - before);
             if (remainingTime <= 0 && inPoolSize() == 0) {
                 if (log.isDebugEnabled()) log.debug("connection pool dequeue timed out");
@@ -450,7 +438,7 @@ public class XAPool implements StateChangeListener {
      *
      * @return a shared XAStatefulHolder or <code>null</code>
      */
-    private XAStatefulHolder getSharedXAStatefulHolder() {
+    private synchronized XAStatefulHolder getSharedXAStatefulHolder() {
         BitronixTransaction transaction = TransactionContextHelper.currentTransaction();
         if (transaction == null) {
             if (log.isDebugEnabled()) log.debug("no current transaction, shared connection map will not be used");
@@ -458,9 +446,9 @@ public class XAPool implements StateChangeListener {
         }
         Uid currentTxGtrid = transaction.getResourceManager().getGtrid();
 
-        ThreadLocal threadLocal = (ThreadLocal) statefulHolderTransactionMap.get(currentTxGtrid);
+        ThreadLocal<XAStatefulHolder> threadLocal = statefulHolderTransactionMap.get(currentTxGtrid);
         if (threadLocal != null) {
-            XAStatefulHolder xaStatefulHolder = (XAStatefulHolder) threadLocal.get();
+            XAStatefulHolder xaStatefulHolder = threadLocal.get();
             // Additional sanity checks...
             if (xaStatefulHolder != null &&
                 xaStatefulHolder.getState() != XAStatefulHolder.STATE_IN_POOL &&
@@ -486,7 +474,7 @@ public class XAPool implements StateChangeListener {
      * @param xaStatefulHolder a XAStatefulHolder to share with other callers
      *    on this thread.
      */
-    private void putSharedXAStatefulHolder(final XAStatefulHolder xaStatefulHolder) {
+    private synchronized void putSharedXAStatefulHolder(XAStatefulHolder xaStatefulHolder) {
         BitronixTransaction transaction = TransactionContextHelper.currentTransaction();
         if (transaction == null) {
             if (log.isDebugEnabled()) log.debug("no current transaction, not adding " + xaStatefulHolder + " to shared connection map");
@@ -494,7 +482,7 @@ public class XAPool implements StateChangeListener {
         }
         final Uid currentTxGtrid = transaction.getResourceManager().getGtrid();
 
-        ThreadLocal threadLocal = (ThreadLocal) statefulHolderTransactionMap.get(currentTxGtrid);
+        ThreadLocal<XAStatefulHolder> threadLocal = statefulHolderTransactionMap.get(currentTxGtrid);
         if (threadLocal == null) {
             // This is the first time this TxGtrid/ThreadLocal is going into the map,
             // register interest in synchronization so we can remove it at commit/rollback
@@ -505,7 +493,7 @@ public class XAPool implements StateChangeListener {
                 return;
             }
 
-            threadLocal = new ThreadLocal();
+            threadLocal = new ThreadLocal<XAStatefulHolder>();
             statefulHolderTransactionMap.put(currentTxGtrid, threadLocal);
             if (log.isDebugEnabled()) log.debug("added shared connection mapping for " + currentTxGtrid + " holder " + xaStatefulHolder);           
         }
@@ -516,7 +504,7 @@ public class XAPool implements StateChangeListener {
     }
 
     private final class SharedStatefulHolderCleanupSynchronization implements Synchronization {
-        private Uid gtrid;
+        private final Uid gtrid;
 
         private SharedStatefulHolderCleanupSynchronization(Uid gtrid) {
             this.gtrid = gtrid;
diff --git a/src/bitronix/tm/resource/common/XAResourceHolder.java b/src/bitronix/tm/resource/common/XAResourceHolder.java
index 602389a..3c51c16 100644
--- a/src/bitronix/tm/resource/common/XAResourceHolder.java
+++ b/src/bitronix/tm/resource/common/XAResourceHolder.java
@@ -48,7 +48,7 @@ public interface XAResourceHolder extends XAStatefulHolder {
      * @param gtrid the GTRID of the transaction state to add.
      * @return the {@link XAResourceHolderState}.
      */
-    public Map getXAResourceHolderStatesForGtrid(Uid gtrid);
+    public Map<Uid, XAResourceHolderState> getXAResourceHolderStatesForGtrid(Uid gtrid);
 
     /**
      * Add a {@link XAResourceHolderState} of this wrapped resource.
diff --git a/src/bitronix/tm/resource/common/XAStatefulHolder.java b/src/bitronix/tm/resource/common/XAStatefulHolder.java
index d765196..187c07a 100644
--- a/src/bitronix/tm/resource/common/XAStatefulHolder.java
+++ b/src/bitronix/tm/resource/common/XAStatefulHolder.java
@@ -86,7 +86,7 @@ public interface XAStatefulHolder {
      * @return the list of {@link XAResourceHolder}s created by this
      *         {@link bitronix.tm.resource.common.XAStatefulHolder} that are still open.
      */
-    public List getXAResourceHolders();
+    public List<XAResourceHolder> getXAResourceHolders();
 
     /**
      * Create a disposable handler used to drive a pooled instance of
diff --git a/src/bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.java b/src/bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.java
index 8b42af4..709069c 100644
--- a/src/bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.java
+++ b/src/bitronix/tm/resource/ehcache/EhCacheXAResourceHolder.java
@@ -22,14 +22,16 @@ package bitronix.tm.resource.ehcache;
 
 import bitronix.tm.resource.common.AbstractXAResourceHolder;
 import bitronix.tm.resource.common.ResourceBean;
+import bitronix.tm.resource.common.XAResourceHolder;
 
 import javax.transaction.xa.XAResource;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
 /**
- * EHCache implementation of BTM's XAResourceHolder.
+ * Ehcache implementation of BTM's XAResourceHolder.
  * <p>
  *   Copyright 2003-2010 Terracotta, Inc.
  * </p>
@@ -88,10 +90,8 @@ public class EhCacheXAResourceHolder extends AbstractXAResourceHolder {
     /**
      * {@inheritDoc}
      */
-    public List getXAResourceHolders() {
-        List xaResourceHolders = new ArrayList(1);
-        xaResourceHolders.add(this);
-        return xaResourceHolders;
+    public List<XAResourceHolder> getXAResourceHolders() {
+        return Arrays.asList((XAResourceHolder) this);
     }
 
 }
diff --git a/src/bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.java b/src/bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.java
index 6fd44e4..8029998 100644
--- a/src/bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.java
+++ b/src/bitronix/tm/resource/ehcache/EhCacheXAResourceProducer.java
@@ -37,10 +37,10 @@ import javax.naming.NamingException;
 import javax.naming.Reference;
 import javax.naming.StringRefAddr;
 import javax.transaction.xa.XAResource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * EHCache implementation of BTM's XAResourceProducer.
@@ -51,12 +51,13 @@ import java.util.Map;
  */
 public final class EhCacheXAResourceProducer extends ResourceBean implements XAResourceProducer {
 
-    private static final Logger LOG = LoggerFactory.getLogger(EhCacheXAResourceProducer.class.getName());
+    private static final Logger log = LoggerFactory.getLogger(EhCacheXAResourceProducer.class.getName());
 
-    private static final Map PRODUCERS = new HashMap();
+    private static final ConcurrentMap<String, EhCacheXAResourceProducer> producers = new ConcurrentHashMap<String, EhCacheXAResourceProducer>();
 
-    private final List xaResourceHolders = new ArrayList();
-    private RecoveryXAResourceHolder recoveryXAResourceHolder;
+    private final ConcurrentMap<Integer, EhCacheXAResourceHolder> xaResourceHolders = new ConcurrentHashMap<Integer, EhCacheXAResourceHolder>();
+    private final AtomicInteger xaResourceHolderCounter = new AtomicInteger();
+    private volatile RecoveryXAResourceHolder recoveryXAResourceHolder;
 
 
     private EhCacheXAResourceProducer() {
@@ -71,20 +72,21 @@ public final class EhCacheXAResourceProducer extends ResourceBean implements XAR
      * @param xaResource the XAResource to be registered
      */
     public static void registerXAResource(String uniqueName, XAResource xaResource) {
-        synchronized (PRODUCERS) {
-            EhCacheXAResourceProducer xaResourceProducer = (EhCacheXAResourceProducer) PRODUCERS.get(uniqueName);
-
-            if (xaResourceProducer == null) {
-                xaResourceProducer = new EhCacheXAResourceProducer();
-                xaResourceProducer.setUniqueName(uniqueName);
-                // the initial xaResource must be added before init() is called
-                xaResourceProducer.addXAResource(xaResource);
+        EhCacheXAResourceProducer xaResourceProducer = producers.get(uniqueName);
+        if (xaResourceProducer == null) {
+            xaResourceProducer = new EhCacheXAResourceProducer();
+            xaResourceProducer.setUniqueName(uniqueName);
+            // the initial xaResource must be added before init() can be called
+            xaResourceProducer.addXAResource(xaResource);
+
+            EhCacheXAResourceProducer previous = producers.putIfAbsent(uniqueName, xaResourceProducer);
+            if (previous == null) {
                 xaResourceProducer.init();
-
-                PRODUCERS.put(uniqueName, xaResourceProducer);
             } else {
-                xaResourceProducer.addXAResource(xaResource);
+                previous.addXAResource(xaResource);
             }
+        } else {
+            xaResourceProducer.addXAResource(xaResource);
         }
     }
 
@@ -93,63 +95,57 @@ public final class EhCacheXAResourceProducer extends ResourceBean implements XAR
      * @param uniqueName the uniqueName of this XAResourceProducer, usually the cache's name
      * @param xaResource the XAResource to be registered
      */
-    public static synchronized void unregisterXAResource(String uniqueName, XAResource xaResource) {
-        synchronized (PRODUCERS) {
-            EhCacheXAResourceProducer xaResourceProducer = (EhCacheXAResourceProducer) PRODUCERS.get(uniqueName);
-
-            if (xaResourceProducer != null) {
-                boolean found = xaResourceProducer.removeXAResource(xaResource);
-                if (!found) {
-                    LOG.error("no XAResource " + xaResource + " found in XAResourceProducer with name " + uniqueName);
-                }
-                if (xaResourceProducer.xaResourceHolders.isEmpty()) {
-                    xaResourceProducer.close();
-                    PRODUCERS.remove(uniqueName);
-                }
-            } else {
-                LOG.error("no XAResourceProducer registered with name " + uniqueName);
+    public static void unregisterXAResource(String uniqueName, XAResource xaResource) {
+        EhCacheXAResourceProducer xaResourceProducer = producers.get(uniqueName);
+
+        if (xaResourceProducer != null) {
+            boolean found = xaResourceProducer.removeXAResource(xaResource);
+            if (!found) {
+                log.error("no XAResource " + xaResource + " found in XAResourceProducer with name " + uniqueName);
+            }
+            if (xaResourceProducer.xaResourceHolders.isEmpty()) {
+                xaResourceProducer.close();
+                producers.remove(uniqueName);
             }
+        } else {
+            log.error("no XAResourceProducer registered with name " + uniqueName);
         }
     }
 
 
     private void addXAResource(XAResource xaResource) {
-        synchronized (xaResourceHolders) {
-            EhCacheXAResourceHolder xaResourceHolder = new EhCacheXAResourceHolder(xaResource, this);
+        EhCacheXAResourceHolder xaResourceHolder = new EhCacheXAResourceHolder(xaResource, this);
+        int key = xaResourceHolderCounter.incrementAndGet();
 
-            xaResourceHolders.add(xaResourceHolder);
-        }
+        xaResourceHolders.put(key, xaResourceHolder);
     }
 
     private boolean removeXAResource(XAResource xaResource) {
-        synchronized (xaResourceHolders) {
-            for (int i = 0; i < xaResourceHolders.size(); i++) {
-                EhCacheXAResourceHolder xaResourceHolder = (EhCacheXAResourceHolder) xaResourceHolders.get(i);
-                if (xaResourceHolder.getXAResource() == xaResource) {
-                    xaResourceHolders.remove(i);
-                    return true;
-                }
+        for (Map.Entry<Integer, EhCacheXAResourceHolder> entry : xaResourceHolders.entrySet()) {
+            Integer key = entry.getKey();
+            EhCacheXAResourceHolder xaResourceHolder = entry.getValue();
+            if (xaResourceHolder.getXAResource() == xaResource) {
+                xaResourceHolders.remove(key);
+                return true;
             }
-            return false;
         }
+        return false;
     }
 
     /**
      * {@inheritDoc}
      */
     public XAResourceHolderState startRecovery() throws RecoveryException {
-        synchronized (xaResourceHolders) {
-            if (recoveryXAResourceHolder != null) {
-                throw new RecoveryException("recovery already in progress on " + this);
-            }
-
-            if (xaResourceHolders.isEmpty()) {
-                throw new RecoveryException("no XAResource registered, recovery cannot be done on " + this);
-            }
+        if (recoveryXAResourceHolder != null) {
+            throw new RecoveryException("recovery already in progress on " + this);
+        }
 
-            recoveryXAResourceHolder = new RecoveryXAResourceHolder((XAResourceHolder) xaResourceHolders.get(0));
-            return new XAResourceHolderState(recoveryXAResourceHolder, this);
+        if (xaResourceHolders.isEmpty()) {
+            throw new RecoveryException("no XAResource registered, recovery cannot be done on " + this);
         }
+
+        recoveryXAResourceHolder = new RecoveryXAResourceHolder(xaResourceHolders.values().iterator().next());
+        return new XAResourceHolderState(recoveryXAResourceHolder, this);
     }
 
     /**
@@ -170,16 +166,13 @@ public final class EhCacheXAResourceProducer extends ResourceBean implements XAR
      * {@inheritDoc}
      */
     public XAResourceHolder findXAResourceHolder(XAResource xaResource) {
-        synchronized (xaResourceHolders) {
-            for (int i = 0; i < xaResourceHolders.size(); i++) {
-                EhCacheXAResourceHolder xaResourceHolder = (EhCacheXAResourceHolder) xaResourceHolders.get(i);
-                if (xaResource == xaResourceHolder.getXAResource()) {
-                    return xaResourceHolder;
-                }
+        for (EhCacheXAResourceHolder xaResourceHolder : xaResourceHolders.values()) {
+            if (xaResource == xaResourceHolder.getXAResource()) {
+                return xaResourceHolder;
             }
-
-            return null;
         }
+
+        return null;
     }
 
     /**
@@ -188,8 +181,8 @@ public final class EhCacheXAResourceProducer extends ResourceBean implements XAR
     public void init() {
         try {
             ResourceRegistrar.register(this);
-        } catch (RecoveryException e) {
-            throw new BitronixRuntimeException("error recovering " + this, e);
+        } catch (RecoveryException ex) {
+            throw new BitronixRuntimeException("error recovering " + this, ex);
         }
     }
 
@@ -197,17 +190,16 @@ public final class EhCacheXAResourceProducer extends ResourceBean implements XAR
      * {@inheritDoc}
      */
     public void close() {
-        synchronized (xaResourceHolders) {
-            xaResourceHolders.clear();
-            ResourceRegistrar.unregister(this);
-        }
+        xaResourceHolders.clear();
+        xaResourceHolderCounter.set(0);
+        ResourceRegistrar.unregister(this);
     }
 
     /**
      * {@inheritDoc}
      */
     public XAStatefulHolder createPooledConnection(Object xaFactory, ResourceBean bean) throws Exception {
-        throw new UnsupportedOperationException("EhCache is not connection-oriented");
+        throw new UnsupportedOperationException("Ehcache is not connection-oriented");
     }
 
     /**
@@ -219,4 +211,7 @@ public final class EhCacheXAResourceProducer extends ResourceBean implements XAR
                 ResourceObjectFactory.class.getName(), null);
     }
 
+    public String toString() {
+        return "a EhCacheXAResourceProducer with uniqueName " + getUniqueName();
+    }
 }
diff --git a/src/bitronix/tm/resource/jdbc/BaseProxyHandlerClass.java b/src/bitronix/tm/resource/jdbc/BaseProxyHandlerClass.java
index e5bc31c..7356973 100644
--- a/src/bitronix/tm/resource/jdbc/BaseProxyHandlerClass.java
+++ b/src/bitronix/tm/resource/jdbc/BaseProxyHandlerClass.java
@@ -23,8 +23,8 @@ package bitronix.tm.resource.jdbc;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 
 /**
  * Base class for Proxy InvocationHandlers.  Maintains a method cache
@@ -36,17 +36,18 @@ import java.util.Map;
  * @author brettw
  */
 public abstract class BaseProxyHandlerClass implements InvocationHandler {
-    private static Map classMethodCache = new HashMap();
-    private Map methodCache;
+    private static final ConcurrentMap<Class, ConcurrentMap<Method, Method>> classMethodCache = new ConcurrentHashMap<Class, ConcurrentMap<Method, Method>>();
+    private final ConcurrentMap<Method, Method> methodCache;
 
     public BaseProxyHandlerClass() {
-        synchronized (this.getClass()) {
-            methodCache = (Map) classMethodCache.get(this.getClass());
-            if (methodCache == null) {
-                methodCache = new HashMap();
-                classMethodCache.put(this.getClass(), methodCache);
-            }
+        ConcurrentMap<Method, Method> methodCache = classMethodCache.get(this.getClass());
+        if (methodCache == null) {
+            methodCache = new ConcurrentHashMap<Method, Method>();
+            ConcurrentMap<Method, Method> previous = classMethodCache.putIfAbsent(this.getClass(), methodCache);
+            if (previous != null)
+                methodCache = previous;
         }
+        this.methodCache = methodCache;
     }
 
     /**
@@ -59,7 +60,7 @@ public abstract class BaseProxyHandlerClass implements InvocationHandler {
             // If the method is directly overridden by "this" (i.e. sub-class)
             // class call "this" class' Method with "this" object, otherwise
             // call the non-overridden Method with the proxied object
-            Method delegatedMethod = (Method) getDelegatedMethod(method);
+            Method delegatedMethod = getDelegatedMethod(method);
             return delegatedMethod.invoke(isOurMethod(delegatedMethod) ? this : getProxiedDelegate(), args);
         } catch (InvocationTargetException ite) {
             // the InvocationTargetException's target actually is the exception thrown by the delegate
@@ -81,8 +82,8 @@ public abstract class BaseProxyHandlerClass implements InvocationHandler {
      * @return the Method object that should be invoked, either ours
      *         (overridden) or the underlying proxied object
      */
-    private synchronized Method getDelegatedMethod(Method method) {
-        Method delegated = (Method) methodCache.get(method);
+    private Method getDelegatedMethod(Method method) {
+        Method delegated = methodCache.get(method);
         if (delegated != null) {
             return delegated;
         }
@@ -90,10 +91,15 @@ public abstract class BaseProxyHandlerClass implements InvocationHandler {
         try {
             Class[] parameterTypes = method.getParameterTypes();
             delegated = this.getClass().getMethod(method.getName(), parameterTypes);
-        } catch (Exception e) {
+        } catch (Exception ex) {
             delegated = method;
         }
-        methodCache.put(method, delegated);
+
+        Method previous = methodCache.putIfAbsent(method, delegated);
+        if (previous != null) {
+            delegated = previous;
+        }
+
         return delegated;
     }
 
diff --git a/src/bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.java b/src/bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.java
index ad5d649..9aaccc1 100644
--- a/src/bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.java
+++ b/src/bitronix/tm/resource/jdbc/JdbcCallableStatementHandle.java
@@ -20,7 +20,9 @@
  */
 package bitronix.tm.resource.jdbc;
 
-import java.sql.*;
+import java.sql.CallableStatement;
+import java.sql.SQLException;
+import java.sql.Statement;
 
 /**
  * CallableStatement {@link Statement} wrapper.
@@ -38,9 +40,9 @@ public class JdbcCallableStatementHandle extends BaseProxyHandlerClass { // impl
 
     // The 'parent' connection. Used to remove this statement delegate
     // from the un-closed statements list when close() is called.
-    private JdbcPooledConnection parentConnection;
+    private final JdbcPooledConnection parentConnection;
 
-    private CallableStatement delegate;
+    private final CallableStatement delegate;
 
     public JdbcCallableStatementHandle(CallableStatement delegate, JdbcPooledConnection pooledConnection) {
         this.delegate = delegate;
@@ -53,16 +55,13 @@ public class JdbcCallableStatementHandle extends BaseProxyHandlerClass { // impl
 
     /* java.sql.Wrapper implementation */
 
-	public boolean isWrapperFor(Class iface) throws SQLException {
-	    if (CallableStatement.class.equals(iface)) {
-	        return true;
-	    }
-		return false;
-	}
+	public boolean isWrapperFor(Class<?> iface) throws SQLException {
+        return iface.isAssignableFrom(delegate.getClass());
+    }
 
-	public Object unwrap(Class iface) throws SQLException {
-        if (CallableStatement.class.equals(iface)) {
-            return delegate;
+	public <T> T unwrap(Class<T> iface) throws SQLException {
+        if (iface.isAssignableFrom(delegate.getClass())) {
+            return (T) delegate;
 	    }
 	    throw new SQLException(getClass().getName() + " is not a wrapper for interface " + iface.getName());
 	}
diff --git a/src/bitronix/tm/resource/jdbc/JdbcConnectionHandle.java b/src/bitronix/tm/resource/jdbc/JdbcConnectionHandle.java
index a2ddcf9..5ffc795 100644
--- a/src/bitronix/tm/resource/jdbc/JdbcConnectionHandle.java
+++ b/src/bitronix/tm/resource/jdbc/JdbcConnectionHandle.java
@@ -44,8 +44,9 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
 
     private final static Logger log = LoggerFactory.getLogger(JdbcConnectionHandle.class);
 
-    private JdbcPooledConnection jdbcPooledConnection;
-    private Connection delegate;
+    private final JdbcPooledConnection jdbcPooledConnection;
+    private final Connection delegate;
+    private volatile boolean closed = false;
 
     public JdbcConnectionHandle(JdbcPooledConnection jdbcPooledConnection, Connection connection) {
         this.jdbcPooledConnection = jdbcPooledConnection;
@@ -57,7 +58,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     private Connection getDelegate() throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection is closed");
         return delegate;
     }
@@ -76,7 +77,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
      * @throws SQLException thrown when an error occurs during elistment.
      */
     private void enlistResource() throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
 
         if (jdbcPooledConnection.getPoolingDataSource().getAutomaticEnlistingEnabled()) {
@@ -96,15 +97,15 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
         if (log.isDebugEnabled()) log.debug("closing " + this);
 
         // in case the connection has already been closed
-        if (jdbcPooledConnection == null)
+        if (closed)
             return;
 
         jdbcPooledConnection.release();
-        jdbcPooledConnection = null;
+        closed = true;
     }
 
     public void commit() throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
         if (jdbcPooledConnection.isParticipatingInActiveGlobalTransaction())
             throw new SQLException("cannot commit a resource enlisted in a global transaction");
@@ -113,7 +114,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     public void rollback() throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
         if (jdbcPooledConnection.isParticipatingInActiveGlobalTransaction())
             throw new SQLException("cannot rollback a resource enlisted in a global transaction");
@@ -122,7 +123,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     public void rollback(Savepoint savepoint) throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
         if (jdbcPooledConnection.isParticipatingInActiveGlobalTransaction())
             throw new SQLException("cannot rollback a resource enlisted in a global transaction");
@@ -131,7 +132,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     public Savepoint setSavepoint() throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
         if (jdbcPooledConnection.isParticipatingInActiveGlobalTransaction())
             throw new SQLException("cannot set a savepoint on a resource enlisted in a global transaction");
@@ -140,7 +141,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     public Savepoint setSavepoint(String name) throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
         if (jdbcPooledConnection.isParticipatingInActiveGlobalTransaction())
             throw new SQLException("cannot set a savepoint on a resource enlisted in a global transaction");
@@ -149,7 +150,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     public void releaseSavepoint(Savepoint savepoint) throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
         if (jdbcPooledConnection.isParticipatingInActiveGlobalTransaction())
             throw new SQLException("cannot release a savepoint on a resource enlisted in a global transaction");
@@ -158,7 +159,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     public boolean getAutoCommit() throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
 
         if (jdbcPooledConnection.isParticipatingInActiveGlobalTransaction())
@@ -168,7 +169,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     public void setAutoCommit(boolean autoCommit) throws SQLException {
-        if (jdbcPooledConnection == null)
+        if (closed)
             throw new SQLException("connection handle already closed");
 
         if (!jdbcPooledConnection.isParticipatingInActiveGlobalTransaction())
@@ -178,9 +179,7 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
     }
 
     public boolean isClosed() throws SQLException {
-        if (jdbcPooledConnection == null)
-            return true;
-        return getDelegate().isClosed();
+        return closed || getDelegate().isClosed();
     }
 
     public Statement createStatement() throws SQLException {
@@ -379,19 +378,16 @@ public class JdbcConnectionHandle extends BaseProxyHandlerClass { // implements
 
     /* java.sql.Wrapper implementation */
 
-    public boolean isWrapperFor(Class iface) throws SQLException {
-        if (Connection.class.equals(iface)) {
-            return true;
-        }
-        return false;
+    public boolean isWrapperFor(Class<?> iface) throws SQLException {
+        return iface.isAssignableFrom(delegate.getClass());
     }
 
-    public Object unwrap(Class iface) throws SQLException {
-        if (Connection.class.equals(iface)) {
-            return delegate;
-        }
-        throw new SQLException(getClass().getName() + " is not a wrapper for interface " + iface.getName());
-    }
+    public <T> T unwrap(Class<T> iface) throws SQLException {
+        if (iface.isAssignableFrom(delegate.getClass())) {
+            return (T) delegate;
+	    }
+	    throw new SQLException(getClass().getName() + " is not a wrapper for " + iface);
+	}
 
     /* BaseProxyHandler implementation */
 
diff --git a/src/bitronix/tm/resource/jdbc/JdbcPooledConnection.java b/src/bitronix/tm/resource/jdbc/JdbcPooledConnection.java
index 8fcdbcc..b16b5de 100644
--- a/src/bitronix/tm/resource/jdbc/JdbcPooledConnection.java
+++ b/src/bitronix/tm/resource/jdbc/JdbcPooledConnection.java
@@ -22,10 +22,17 @@ package bitronix.tm.resource.jdbc;
 
 import bitronix.tm.internal.BitronixRollbackSystemException;
 import bitronix.tm.internal.BitronixSystemException;
-import bitronix.tm.resource.common.*;
+import bitronix.tm.resource.common.AbstractXAResourceHolder;
+import bitronix.tm.resource.common.RecoveryXAResourceHolder;
+import bitronix.tm.resource.common.ResourceBean;
+import bitronix.tm.resource.common.StateChangeListener;
+import bitronix.tm.resource.common.TransactionContextHelper;
+import bitronix.tm.resource.common.XAResourceHolder;
+import bitronix.tm.resource.common.XAStatefulHolder;
 import bitronix.tm.resource.jdbc.lrc.LrcXADataSource;
 import bitronix.tm.utils.Decoder;
 import bitronix.tm.utils.ManagementRegistrar;
+import bitronix.tm.utils.MonotonicClock;
 import bitronix.tm.utils.Scheduler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,9 +41,17 @@ import javax.sql.XAConnection;
 import javax.transaction.SystemException;
 import javax.transaction.xa.XAResource;
 import java.lang.reflect.Method;
-import java.sql.*;
-import java.util.*;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.Date;
+import java.util.List;
 
 /**
  * Implementation of a JDBC pooled connection wrapping vendor's {@link XAConnection} implementation.
@@ -49,21 +64,21 @@ public class JdbcPooledConnection extends AbstractXAResourceHolder implements St
 
     private final static int DETECTION_TIMEOUT = 5; // seconds
 
-    private XAConnection xaConnection;
-    private Connection connection;
-    private XAResource xaResource;
-    private PoolingDataSource poolingDataSource;
-    private LruStatementCache statementsCache;
-    private List uncachedStatements;
-    private int usageCount;
+    private final XAConnection xaConnection;
+    private final Connection connection;
+    private final XAResource xaResource;
+    private final PoolingDataSource poolingDataSource;
+    private final LruStatementCache statementsCache;
+    private final List<Statement> uncachedStatements;
+    private volatile int usageCount;
 
     /* management */
-    private String jmxName;
-    private Date acquisitionDate;
-    private Date lastReleaseDate;
+    private final String jmxName;
+    private volatile Date acquisitionDate;
+    private volatile Date lastReleaseDate;
 
-    private int jdbcVersionDetected;
-    private Method isValidMethod;
+    private volatile int jdbcVersionDetected;
+    private volatile Method isValidMethod;
 
 
     public JdbcPooledConnection(PoolingDataSource poolingDataSource, XAConnection xaConnection) throws SQLException {
@@ -71,8 +86,8 @@ public class JdbcPooledConnection extends AbstractXAResourceHolder implements St
         this.xaConnection = xaConnection;
         this.xaResource = xaConnection.getXAResource();
         this.statementsCache = new LruStatementCache(poolingDataSource.getPreparedStatementCacheSize());
-        this.uncachedStatements = Collections.synchronizedList(new ArrayList());
-        this.lastReleaseDate = new Date();
+        this.uncachedStatements = Collections.synchronizedList(new ArrayList<Statement>());
+        this.lastReleaseDate = new Date(MonotonicClock.currentTimeMillis());
         statementsCache.addEvictionListener(new LruEvictionListener() {
             public void onEviction(Object value) {
                 PreparedStatement stmt = (PreparedStatement) value;
@@ -108,8 +123,8 @@ public class JdbcPooledConnection extends AbstractXAResourceHolder implements St
             return;
 
         try {
-            isValidMethod = connection.getClass().getMethod("isValid", new Class[]{Integer.TYPE});
-            isValidMethod.invoke(connection, new Object[] {new Integer(DETECTION_TIMEOUT)}); // test invoke
+            isValidMethod = connection.getClass().getMethod("isValid", Integer.TYPE);
+            isValidMethod.invoke(connection, DETECTION_TIMEOUT); // test invoke
             jdbcVersionDetected = 4;
             if (!poolingDataSource.isEnableJdbc4ConnectionTest()) {
                 if (log.isDebugEnabled()) log.debug("dataSource is JDBC4 or newer and supports isValid(), but enableJdbc4ConnectionTest is not set or is false");
@@ -173,14 +188,14 @@ public class JdbcPooledConnection extends AbstractXAResourceHolder implements St
             Boolean isValid = null;
             try {
                 if (log.isDebugEnabled()) log.debug("testing with JDBC4 isValid() method, connection of " + this);
-                isValid = (Boolean) isValidMethod.invoke(connection, new Object[]{new Integer(poolingDataSource.getAcquisitionTimeout())});
+                isValid = (Boolean) isValidMethod.invoke(connection, poolingDataSource.getAcquisitionTimeout());
             } catch (Exception e) {
                 log.warn("dysfunctional JDBC4 Connection.isValid() method, or negative acquisition timeout, in call to test connection of " + this + ".  Falling back to test query.");
                 jdbcVersionDetected = 3;
             }
             // if isValid is null, and exception was caught above and we fall through to the query test
             if (isValid != null) {
-                if (isValid.booleanValue()) {
+                if (isValid) {
                     if (log.isDebugEnabled()) log.debug("isValid successfully tested connection of " + this);
                     return;
                 }
@@ -256,10 +271,8 @@ public class JdbcPooledConnection extends AbstractXAResourceHolder implements St
         return poolingDataSource;
     }
 
-    public List getXAResourceHolders() {
-        List xaResourceHolders = new ArrayList();
-        xaResourceHolders.add(this);
-        return xaResourceHolders;
+    public List<XAResourceHolder> getXAResourceHolders() {
+        return Arrays.asList((XAResourceHolder) this);
     }
 
     public Object getConnectionHandle() throws Exception {
@@ -302,10 +315,10 @@ public class JdbcPooledConnection extends AbstractXAResourceHolder implements St
     public void stateChanged(XAStatefulHolder source, int oldState, int newState) {
         if (newState == STATE_IN_POOL) {
             if (log.isDebugEnabled()) log.debug("requeued JDBC connection of " + poolingDataSource);
-            lastReleaseDate = new Date();
+            lastReleaseDate = new Date(MonotonicClock.currentTimeMillis());
         }
         if (oldState == STATE_IN_POOL && newState == STATE_ACCESSIBLE) {
-            acquisitionDate = new Date();
+            acquisitionDate = new Date(MonotonicClock.currentTimeMillis());
         }
         if (oldState == STATE_NOT_ACCESSIBLE && newState == STATE_ACCESSIBLE) {
             TransactionContextHelper.recycle(this);
@@ -322,8 +335,7 @@ public class JdbcPooledConnection extends AbstractXAResourceHolder implements St
         if (futureState == STATE_IN_POOL || futureState == STATE_NOT_ACCESSIBLE) {
             // close all uncached statements
             if (log.isDebugEnabled()) log.debug("closing " + uncachedStatements.size() + " dangling uncached statement(s)");
-            for (int i = 0; i < uncachedStatements.size(); i++) {
-                Statement statement = (Statement) uncachedStatements.get(i);
+            for (Statement statement : uncachedStatements) {
                 try {
                     statement.close();
                 } catch (SQLException ex) {
diff --git a/src/bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.java b/src/bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.java
index b9d68f6..f3bec6a 100644
--- a/src/bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.java
+++ b/src/bitronix/tm/resource/jdbc/JdbcPreparedStatementHandle.java
@@ -20,7 +20,9 @@
  */
 package bitronix.tm.resource.jdbc;
 
-import java.sql.*;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
 import java.util.Arrays;
 
 /**
@@ -49,7 +51,7 @@ public class JdbcPreparedStatementHandle extends BaseProxyHandlerClass { // impl
     //
     // All of these attributes must match a proposed statement before the
     // statement can be considered "the same" and delivered from the cache.
-    private String sql;
+    private final String sql;
     private int resultSetType = ResultSet.TYPE_FORWARD_ONLY;
     private int resultSetConcurrency = ResultSet.CONCUR_READ_ONLY;
     private Integer resultSetHoldability;
@@ -97,16 +99,13 @@ public class JdbcPreparedStatementHandle extends BaseProxyHandlerClass { // impl
 
     /* java.sql.Wrapper implementation */
 
-	public boolean isWrapperFor(Class iface) throws SQLException {
-	    if (PreparedStatement.class.equals(iface)) {
-	        return true;
-	    }
-		return false;
-	}
+	public boolean isWrapperFor(Class<?> iface) throws SQLException {
+        return iface.isAssignableFrom(delegate.getClass());
+    }
 
-	public Object unwrap(Class iface) throws SQLException {
-        if (PreparedStatement.class.equals(iface)) {
-            return delegate;
+	public <T> T unwrap(Class<T> iface) throws SQLException {
+        if (iface.isAssignableFrom(delegate.getClass())) {
+            return (T) delegate;
 	    }
 	    throw new SQLException(getClass().getName() + " is not a wrapper for interface " + iface.getName());
 	}
diff --git a/src/bitronix/tm/resource/jdbc/JdbcStatementHandle.java b/src/bitronix/tm/resource/jdbc/JdbcResultSetHandle.java
similarity index 54%
copy from src/bitronix/tm/resource/jdbc/JdbcStatementHandle.java
copy to src/bitronix/tm/resource/jdbc/JdbcResultSetHandle.java
index 9881226..6b1b781 100644
--- a/src/bitronix/tm/resource/jdbc/JdbcStatementHandle.java
+++ b/src/bitronix/tm/resource/jdbc/JdbcResultSetHandle.java
@@ -20,14 +20,18 @@
  */
 package bitronix.tm.resource.jdbc;
 
-import javax.sql.XADataSource;
-import java.sql.*;
+import java.lang.reflect.Proxy;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import bitronix.tm.utils.ClassLoaderUtils;
 
 /**
- * Statement {@link Statement} wrapper.
+ * ResultSet {@link ResultSet} wrapper.
  * <p/>
- * This class is a proxy handler for a Statement.  It does not
- * implement the Statement interface or extend a class directly,
+ * This class is a proxy handler for a ResultSet.  It does not
+ * implement the ResultSet interface or extend a class directly,
  * but you methods implemented here will override those of the
  * underlying delegate.  Simply implement a method with the same
  * signature, and the local method will be called rather than the delegate.
@@ -35,33 +39,28 @@ import java.sql.*;
  *
  * @author brettw
  */
-public class JdbcStatementHandle extends BaseProxyHandlerClass { // implements Statement
-
-    // The 'parent' connection. Used to remove this statement delegate
-    // from the un-closed statements list when close() is called.
-    private JdbcPooledConnection parentConnection;
+public class JdbcResultSetHandle extends BaseProxyHandlerClass { // implements ResultSet
 
-    private Statement delegate;
+    private final ResultSet delegate;
+    private final BaseProxyHandlerClass statementHandle;
 
-    public JdbcStatementHandle(Statement delegate, JdbcPooledConnection pooledConnection) {
+    public JdbcResultSetHandle(ResultSet delegate, BaseProxyHandlerClass statementHandle) {
         this.delegate = delegate;
-        this.parentConnection = pooledConnection;
+        this.statementHandle = statementHandle;
     }
 
     /* java.sql.Wrapper implementation */
 
-	public boolean isWrapperFor(Class iface) throws SQLException {
-	    if (Statement.class.equals(iface)) {
-	        return true;
-	    }
-		return false;
-	}
 
-	public Object unwrap(Class iface) throws SQLException {
-        if (Statement.class.equals(iface)) {
-            return delegate;
+    public boolean isWrapperFor(Class<?> iface) throws SQLException {
+        return iface.isAssignableFrom(delegate.getClass());
+    }
+
+    public <T> T unwrap(Class<T> iface) throws SQLException {
+        if (iface.isAssignableFrom(delegate.getClass())) {
+            return (T) delegate;
 	    }
-	    throw new SQLException(getClass().getName() + " is not a wrapper for interface " + iface.getName());
+	    throw new SQLException(getClass().getName() + " is not a wrapper for " + iface);
 	}
 
     /* Internal methods */
@@ -70,10 +69,15 @@ public class JdbcStatementHandle extends BaseProxyHandlerClass { // implements S
         return delegate;
     }
 
-    /* Overridden methods of java.sql.PreparedStatement */
+    /* Overridden methods of java.sql.ResultSet */
 
     public void close() throws SQLException {
-        parentConnection.unregisterUncachedStatement(delegate);
         delegate.close();
     }
+
+
+    public Statement getStatement() throws SQLException {
+        return (Statement) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{Statement.class}, statementHandle);
+    }
+
 }
diff --git a/src/bitronix/tm/resource/jdbc/JdbcStatementHandle.java b/src/bitronix/tm/resource/jdbc/JdbcStatementHandle.java
index 9881226..b88a895 100644
--- a/src/bitronix/tm/resource/jdbc/JdbcStatementHandle.java
+++ b/src/bitronix/tm/resource/jdbc/JdbcStatementHandle.java
@@ -20,8 +20,12 @@
  */
 package bitronix.tm.resource.jdbc;
 
-import javax.sql.XADataSource;
-import java.sql.*;
+import java.lang.reflect.Proxy;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import bitronix.tm.utils.ClassLoaderUtils;
 
 /**
  * Statement {@link Statement} wrapper.
@@ -39,9 +43,9 @@ public class JdbcStatementHandle extends BaseProxyHandlerClass { // implements S
 
     // The 'parent' connection. Used to remove this statement delegate
     // from the un-closed statements list when close() is called.
-    private JdbcPooledConnection parentConnection;
+    private final JdbcPooledConnection parentConnection;
 
-    private Statement delegate;
+    private final Statement delegate;
 
     public JdbcStatementHandle(Statement delegate, JdbcPooledConnection pooledConnection) {
         this.delegate = delegate;
@@ -50,18 +54,16 @@ public class JdbcStatementHandle extends BaseProxyHandlerClass { // implements S
 
     /* java.sql.Wrapper implementation */
 
-	public boolean isWrapperFor(Class iface) throws SQLException {
-	    if (Statement.class.equals(iface)) {
-	        return true;
-	    }
-		return false;
-	}
 
-	public Object unwrap(Class iface) throws SQLException {
-        if (Statement.class.equals(iface)) {
-            return delegate;
+    public boolean isWrapperFor(Class<?> iface) throws SQLException {
+        return iface.isAssignableFrom(delegate.getClass());
+    }
+
+    public <T> T unwrap(Class<T> iface) throws SQLException {
+        if (iface.isAssignableFrom(delegate.getClass())) {
+            return (T) delegate;
 	    }
-	    throw new SQLException(getClass().getName() + " is not a wrapper for interface " + iface.getName());
+	    throw new SQLException(getClass().getName() + " is not a wrapper for " + iface);
 	}
 
     /* Internal methods */
@@ -76,4 +78,22 @@ public class JdbcStatementHandle extends BaseProxyHandlerClass { // implements S
         parentConnection.unregisterUncachedStatement(delegate);
         delegate.close();
     }
+
+    public ResultSet executeQuery(String sql) throws SQLException {
+        return (ResultSet) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{ResultSet.class}, new JdbcResultSetHandle(delegate.executeQuery(sql), this));
+    }
+
+    public ResultSet getGeneratedKeys() throws SQLException {
+        return (ResultSet) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{ResultSet.class}, new JdbcResultSetHandle(delegate.getGeneratedKeys(), this));
+    }
+
+    public ResultSet getResultSet() throws SQLException {
+        return (ResultSet) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{ResultSet.class}, new JdbcResultSetHandle(delegate.getResultSet(), this));
+    }
+
+    public boolean equals(Object object) {
+        Object handler = Proxy.getInvocationHandler(object);
+        return super.equals(handler);
+    }
+
 }
diff --git a/src/bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.java b/src/bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.java
index b4a50dc..d44d305 100644
--- a/src/bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.java
+++ b/src/bitronix/tm/resource/jdbc/JdbcUncachedPreparedStatementHandle.java
@@ -20,15 +20,20 @@
  */
 package bitronix.tm.resource.jdbc;
 
-import java.sql.*;
+import java.lang.reflect.Proxy;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import bitronix.tm.utils.ClassLoaderUtils;
 
 public class JdbcUncachedPreparedStatementHandle extends BaseProxyHandlerClass {
 
     // The 'parent' connection. Used to remove this statement delegate
     // from the un-closed statements list when close() is called.
-    private JdbcPooledConnection parentConnection;
+    private final JdbcPooledConnection parentConnection;
 
-    private PreparedStatement delegate;
+    private final PreparedStatement delegate;
 
     public JdbcUncachedPreparedStatementHandle(PreparedStatement delegate, JdbcPooledConnection pooledConnection) {
         this.delegate = delegate;
@@ -41,18 +46,15 @@ public class JdbcUncachedPreparedStatementHandle extends BaseProxyHandlerClass {
 
     /* java.sql.Wrapper implementation */
 
-	public boolean isWrapperFor(Class iface) throws SQLException {
-	    if (PreparedStatement.class.equals(iface)) {
-	        return true;
-	    }
-		return false;
-	}
+    public boolean isWrapperFor(Class<?> iface) throws SQLException {
+        return iface.isAssignableFrom(delegate.getClass());
+    }
 
-	public Object unwrap(Class iface) throws SQLException {
-        if (PreparedStatement.class.equals(iface)) {
-            return delegate;
+    public <T> T unwrap(Class<T> iface) throws SQLException {
+        if (iface.isAssignableFrom(delegate.getClass())) {
+            return (T) delegate;
 	    }
-	    throw new SQLException(getClass().getName() + " is not a wrapper for interface " + iface.getName());
+	    throw new SQLException(getClass().getName() + " is not a wrapper for " + iface);
 	}
 
     /* Overridden methods of java.sql.PreparedStatement */
@@ -61,4 +63,27 @@ public class JdbcUncachedPreparedStatementHandle extends BaseProxyHandlerClass {
         parentConnection.unregisterUncachedStatement(delegate);
         delegate.close();
     }
+    
+
+    public ResultSet executeQuery(String sql) throws SQLException {
+        return (ResultSet) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{ResultSet.class}, new JdbcResultSetHandle(delegate.executeQuery(sql), this));
+    }
+
+    public ResultSet getGeneratedKeys() throws SQLException {
+        return (ResultSet) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{ResultSet.class}, new JdbcResultSetHandle(delegate.getGeneratedKeys(), this));
+    }
+
+    public ResultSet getResultSet() throws SQLException {
+        return (ResultSet) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{ResultSet.class}, new JdbcResultSetHandle(delegate.getResultSet(), this));
+    }
+
+    public ResultSet executeQuery() throws SQLException {
+        return (ResultSet) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{ResultSet.class}, new JdbcResultSetHandle(delegate.executeQuery(), this));
+    }
+    
+    public boolean equals(Object object) {
+        Object handler = Proxy.getInvocationHandler(object);
+        return super.equals(handler);
+    }
+
 }
diff --git a/src/bitronix/tm/resource/jdbc/LruStatementCache.java b/src/bitronix/tm/resource/jdbc/LruStatementCache.java
index eecfb6e..c52a336 100644
--- a/src/bitronix/tm/resource/jdbc/LruStatementCache.java
+++ b/src/bitronix/tm/resource/jdbc/LruStatementCache.java
@@ -20,19 +20,19 @@
  */
 package bitronix.tm.resource.jdbc;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.sql.PreparedStatement;
-import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
- * Last Recently Used PreparedStatement cache with eviction listeners 
+ * Last Recently Used PreparedStatement cache with eviction listeners
  * support implementation.
  *
  *
@@ -45,31 +45,31 @@ public class LruStatementCache {
     /**
      * The <i>target</i> maxSize of the cache.  The cache may drift slightly
      * higher in size in the case that every statement in the cache is 
-     * in use and therefore nothing can be evicted.  But eventually 
+     * in use and therefore nothing can be evicted.  But eventually
      * (probably quickly) the cache will return to maxSize.
      */
     private int maxSize;
-    
+
     /**
      * We use a LinkedHashMap with _access order_ specified in the
      * constructor.  According to the LinkedHashMap documentation:
      * <pre>
      *   A special constructor is provided to create a linked hash map
-     *   whose order of iteration is the order in which its entries 
+     *   whose order of iteration is the order in which its entries
      *   were last accessed, from least-recently accessed to most-recently
-     *   (access-order). This kind of map is well-suited to building LRU 
-     *   caches. Invoking the put or get method results in an access to 
-     *   the corresponding entry (assuming it exists after the invocation 
+     *   (access-order). This kind of map is well-suited to building LRU
+     *   caches. Invoking the put or get method results in an access to
+     *   the corresponding entry (assuming it exists after the invocation
      *   completes).
      * </pre>
      */
-    private LinkedHashMap cache;
+    private final LinkedHashMap<JdbcPreparedStatementHandle, StatementTracker> cache;
 
     /**
      * A list of listeners concerned with prepared statement cache
      * evictions.
      */
-    private List evictionListners;
+    private final List<LruEvictionListener> evictionListners;
 
     /**
      * See the LinkedHashMap documentation.  We maintain our own size
@@ -82,8 +82,8 @@ public class LruStatementCache {
 
     public LruStatementCache(int maxSize) {
         this.maxSize = maxSize;
-        cache = new LinkedHashMap(maxSize, 0.75f, true /* access order */);
-        evictionListners = new ArrayList();
+        cache = new LinkedHashMap<JdbcPreparedStatementHandle, StatementTracker>(maxSize, 0.75f, true /* access order */);
+        evictionListners = new CopyOnWriteArrayList<LruEvictionListener>();
     }
 
     /**
@@ -93,7 +93,7 @@ public class LruStatementCache {
      * flag, cursor holdability, etc.  See the equals() method in the
      * JdbcPreparedStatementHandle class.  It is a complete key for a cached
      * statement.
-     * 
+     *
      * If there is a matching cached PreparedStatement, it will be set as the
      * delegate in the provided JdbcPreparedStatementHandle.
      *
@@ -101,18 +101,17 @@ public class LruStatementCache {
      * @return the cached JdbcPreparedStatementHandle statement, or null
      */
     public JdbcPreparedStatementHandle get(JdbcPreparedStatementHandle key) {
-    	synchronized (cache)
-    	{
-	        // See LinkedHashMap documentation.  Getting an entry means it is 
+    	synchronized (cache) {
+            // See LinkedHashMap documentation.  Getting an entry means it is
 	        // updated as the 'youngest' (Most Recently Used) entry.
-	        StatementTracker cached = (StatementTracker) cache.get(key);
+	        StatementTracker cached = cache.get(key);
 	        if (cached != null) {
 	            cached.usageCount++;
 	            key.setDelegate(cached.statement);
 	            if (log.isDebugEnabled()) log.debug("delivered from cache with usage count " + cached.usageCount + " statement <" + key + "> in " + key.getPooledConnection());
 	            return key;
 	        }
-	        
+
 	        return null;
     	}
     }
@@ -127,15 +126,14 @@ public class LruStatementCache {
      * @return a prepared statement
      */
     public JdbcPreparedStatementHandle put(JdbcPreparedStatementHandle key) {
-    	synchronized (cache)
-    	{
-	        if (maxSize < 1) {
+    	synchronized (cache) {
+            if (maxSize < 1) {
 	            return null;
 	        }
-	
-	        // See LinkedHashMap documentation.  Getting an entry means it is 
+
+	        // See LinkedHashMap documentation.  Getting an entry means it is
 	        // updated as the 'youngest' (Most Recently Used) entry.
-	        StatementTracker cached = (StatementTracker) cache.get(key);
+	        StatementTracker cached = cache.get(key);
 	        if (cached == null) {
 	            if (log.isDebugEnabled()) log.debug("adding to cache statement <" + key + "> in " + key.getPooledConnection());
 	            cache.put(key, new StatementTracker(key.getDelegateUnchecked()));
@@ -144,15 +142,15 @@ public class LruStatementCache {
 	            cached.usageCount--;
 	            if (log.isDebugEnabled()) log.debug("returning to cache statement <" + key + "> with usage count " + cached.usageCount + " in " + key.getPooledConnection());
 	        }
-	
-	        // If the size is exceeded, we will _try_ to evict one (or more) 
+
+	        // If the size is exceeded, we will _try_ to evict one (or more)
 	        // statements until the max level is again reached.  However, if
 	        // every statement in the cache is 'in use', the size of the cache
 	        // is not reduced.  Eventually the cache will be reduced, no worries.
 	        if (size > maxSize) {
 	            tryEviction();
 	        }
-	
+
 	        return key;
     	}
     }
@@ -162,9 +160,8 @@ public class LruStatementCache {
      * connection close.
      */
     protected void clear() {
-    	synchronized (cache)
-    	{
-	        Iterator it = cache.entrySet().iterator();
+    	synchronized (cache) {
+            Iterator it = cache.entrySet().iterator();
 	        while (it.hasNext()) {
 	            Map.Entry entry = (Entry) it.next();
 	            StatementTracker tracker = (StatementTracker) entry.getValue();
@@ -182,28 +179,29 @@ public class LruStatementCache {
      * evicted until the cache is reduced to maxSize.
      */
     private void tryEviction() {
-        // Iteration order of the LinkedHashMap is from LRU to MRU
-        Iterator it = cache.entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry entry = (Entry) it.next();
-            StatementTracker tracker = (StatementTracker) entry.getValue();
-            if (tracker.usageCount == 0) {
-                it.remove();
-                size--;
-                JdbcPreparedStatementHandle key = (JdbcPreparedStatementHandle) entry.getKey();
-                if (log.isDebugEnabled()) log.debug("evicting from cache statement <" + key + "> " + key.getDelegateUnchecked() + " in " + key.getPooledConnection());
-                fireEvictionEvent(tracker.statement);
-                // We can stop evicting if we're at maxSize...
-                if (size <= maxSize) {
-                    break;
+        synchronized (cache) {
+            // Iteration order of the LinkedHashMap is from LRU to MRU
+            Iterator it = cache.entrySet().iterator();
+            while (it.hasNext()) {
+                Entry entry = (Entry) it.next();
+                StatementTracker tracker = (StatementTracker) entry.getValue();
+                if (tracker.usageCount == 0) {
+                    it.remove();
+                    size--;
+                    JdbcPreparedStatementHandle key = (JdbcPreparedStatementHandle) entry.getKey();
+                    if (log.isDebugEnabled()) log.debug("evicting from cache statement <" + key + "> " + key.getDelegateUnchecked() + " in " + key.getPooledConnection());
+                    fireEvictionEvent(tracker.statement);
+                    // We can stop evicting if we're at maxSize...
+                    if (size <= maxSize) {
+                        break;
+                    }
                 }
             }
         }
     }
 
     private void fireEvictionEvent(Object value) {
-        for (int i = 0; i < evictionListners.size(); i++) {
-            LruEvictionListener listener = (LruEvictionListener) evictionListners.get(i);
+        for (LruEvictionListener listener : evictionListners) {
             listener.onEviction(value);
         }
     }
@@ -216,9 +214,8 @@ public class LruStatementCache {
         evictionListners.remove(listener);
     }
 
-    private final static class StatementTracker
-    {
-        private PreparedStatement statement;
+    private final static class StatementTracker {
+        private final PreparedStatement statement;
         private int usageCount;
 
         private StatementTracker(PreparedStatement stmt) {
diff --git a/src/bitronix/tm/resource/jdbc/PoolingDataSource.java b/src/bitronix/tm/resource/jdbc/PoolingDataSource.java
index 8a3d36d..f054f27 100644
--- a/src/bitronix/tm/resource/jdbc/PoolingDataSource.java
+++ b/src/bitronix/tm/resource/jdbc/PoolingDataSource.java
@@ -20,26 +20,37 @@
  */
 package bitronix.tm.resource.jdbc;
 
+import bitronix.tm.internal.XAResourceHolderState;
+import bitronix.tm.recovery.RecoveryException;
+import bitronix.tm.resource.ResourceConfigurationException;
+import bitronix.tm.resource.ResourceObjectFactory;
+import bitronix.tm.resource.ResourceRegistrar;
+import bitronix.tm.resource.common.RecoveryXAResourceHolder;
+import bitronix.tm.resource.common.ResourceBean;
+import bitronix.tm.resource.common.XAPool;
+import bitronix.tm.resource.common.XAResourceHolder;
+import bitronix.tm.resource.common.XAResourceProducer;
+import bitronix.tm.resource.common.XAStatefulHolder;
+import bitronix.tm.utils.ClassLoaderUtils;
+import bitronix.tm.utils.ManagementRegistrar;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.naming.NamingException;
+import javax.naming.Reference;
+import javax.naming.StringRefAddr;
+import javax.sql.DataSource;
+import javax.sql.XADataSource;
+import javax.transaction.xa.XAResource;
 import java.io.PrintWriter;
-import java.lang.reflect.*;
-import java.sql.*;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+import java.sql.Connection;
+import java.sql.SQLException;
 import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import javax.naming.*;
-import javax.sql.*;
-import javax.transaction.xa.XAResource;
-
-import bitronix.tm.utils.ClassLoaderUtils;
-import bitronix.tm.utils.ManagementRegistrar;
-import org.slf4j.*;
-
-import bitronix.tm.internal.XAResourceHolderState;
-import bitronix.tm.recovery.RecoveryException;
-import bitronix.tm.resource.*;
-import bitronix.tm.resource.common.*;
-
 /**
  * Implementation of a JDBC {@link DataSource} wrapping vendor's {@link XADataSource} implementation.
  *
@@ -49,18 +60,19 @@ public class PoolingDataSource extends ResourceBean implements DataSource, XARes
 
     private final static Logger log = LoggerFactory.getLogger(PoolingDataSource.class);
 
-    private transient XAPool pool;
-    private transient XADataSource xaDataSource;
-    private transient RecoveryXAResourceHolder recoveryXAResourceHolder;
-    private transient JdbcConnectionHandle recoveryConnectionHandle;
-    private String testQuery;
-    private boolean enableJdbc4ConnectionTest;
-    private int preparedStatementCacheSize = 0;
-    private String isolationLevel;
-	private String cursorHoldability;
-	private String localAutoCommit;
-    private String jmxName;
-    private final List connectionCustomizers = new CopyOnWriteArrayList();
+    private volatile transient XAPool pool;
+    private volatile transient XADataSource xaDataSource;
+    private volatile transient RecoveryXAResourceHolder recoveryXAResourceHolder;
+    private volatile transient JdbcConnectionHandle recoveryConnectionHandle;
+
+    private volatile String testQuery;
+    private volatile boolean enableJdbc4ConnectionTest;
+    private volatile int preparedStatementCacheSize = 0;
+    private volatile String isolationLevel;
+	private volatile String cursorHoldability;
+	private volatile String localAutoCommit;
+    private volatile String jmxName;
+    private final List<ConnectionCustomizer> connectionCustomizers = new CopyOnWriteArrayList<ConnectionCustomizer>();
 
     public PoolingDataSource() {
     }
@@ -81,7 +93,7 @@ public class PoolingDataSource extends ResourceBean implements DataSource, XARes
         }
     }
 
-    private void buildXAPool() throws Exception {
+    private synchronized void buildXAPool() throws Exception {
         if (pool != null)
             return;
 
@@ -208,8 +220,7 @@ public class PoolingDataSource extends ResourceBean implements DataSource, XARes
     }
 
     void fireOnAcquire(Connection connection) {
-        for (int i = 0; i < connectionCustomizers.size(); i++) {
-            ConnectionCustomizer connectionCustomizer = (ConnectionCustomizer)connectionCustomizers.get(i);
+        for (ConnectionCustomizer connectionCustomizer : connectionCustomizers) {
             try {
                 connectionCustomizer.onAcquire(connection, getUniqueName());
             } catch (Exception ex) {
@@ -219,8 +230,7 @@ public class PoolingDataSource extends ResourceBean implements DataSource, XARes
     }
 
     void fireOnDestroy(Connection connection) {
-        for (int i = 0; i < connectionCustomizers.size(); i++) {
-            ConnectionCustomizer connectionCustomizer = (ConnectionCustomizer)connectionCustomizers.get(i);
+        for (ConnectionCustomizer connectionCustomizer : connectionCustomizers) {
             try {
                 connectionCustomizer.onDestroy(connection, getUniqueName());
             } catch (Exception ex) {
@@ -370,18 +380,15 @@ public class PoolingDataSource extends ResourceBean implements DataSource, XARes
 
     /* java.sql.Wrapper implementation */
 
-	public boolean isWrapperFor(Class iface) throws SQLException {
-	    if (XADataSource.class.equals(iface)) {
-	        return true;
-	    }
-		return false;
-	}
+    public boolean isWrapperFor(Class<?> iface) throws SQLException {
+        return iface.isAssignableFrom(xaDataSource.getClass());
+    }
 
-	public Object unwrap(Class iface) throws SQLException {
-        if (XADataSource.class.equals(iface)) {
-            return xaDataSource;
+    public <T> T unwrap(Class<T> iface) throws SQLException {
+        if (iface.isAssignableFrom(xaDataSource.getClass())) {
+            return (T) xaDataSource;
 	    }
-	    throw new SQLException(getClass().getName() + " is not a wrapper for interface " + iface.getName());
+	    throw new SQLException(getClass().getName() + " is not a wrapper for " + iface);
 	}
 
 	/* management */
diff --git a/src/bitronix/tm/resource/jdbc/lrc/LrcConnectionHandle.java b/src/bitronix/tm/resource/jdbc/lrc/LrcConnectionHandle.java
index aad63f7..b16d7a0 100644
--- a/src/bitronix/tm/resource/jdbc/lrc/LrcConnectionHandle.java
+++ b/src/bitronix/tm/resource/jdbc/lrc/LrcConnectionHandle.java
@@ -20,10 +20,12 @@
  */
 package bitronix.tm.resource.jdbc.lrc;
 
-import java.sql.*;
-
 import bitronix.tm.resource.jdbc.BaseProxyHandlerClass;
 
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Savepoint;
+
 /**
  * Connection handle implementation for a non-XA JDBC resource emulating XA with Last Resource Commit.
  *
@@ -31,8 +33,9 @@ import bitronix.tm.resource.jdbc.BaseProxyHandlerClass;
  */
 public class LrcConnectionHandle extends BaseProxyHandlerClass { // implements Connection
 
-    private Connection delegate;
-    private LrcXAResource xaResource;
+    private final Connection delegate;
+    private final LrcXAResource xaResource;
+    private volatile boolean closed = false;
 
     public LrcConnectionHandle(LrcXAResource xaResource, Connection delegate) {
         this.delegate = delegate;
@@ -52,11 +55,11 @@ public class LrcConnectionHandle extends BaseProxyHandlerClass { // implements C
     /* wrapped Connection methods that have special XA semantics */
 
     public void close() throws SQLException {
-        delegate = null;
+        closed = true;
     }
 
     public boolean isClosed() throws SQLException {
-        return delegate == null;
+        return closed;
     }
 
     public void setAutoCommit(boolean autoCommit) throws SQLException {
diff --git a/src/bitronix/tm/resource/jdbc/lrc/LrcXAConnection.java b/src/bitronix/tm/resource/jdbc/lrc/LrcXAConnection.java
index cc62112..468dabc 100644
--- a/src/bitronix/tm/resource/jdbc/lrc/LrcXAConnection.java
+++ b/src/bitronix/tm/resource/jdbc/lrc/LrcXAConnection.java
@@ -20,17 +20,20 @@
  */
 package bitronix.tm.resource.jdbc.lrc;
 
-import java.lang.reflect.*;
-import java.sql.*;
-import java.util.*;
-
-import javax.sql.*;
-import javax.transaction.xa.XAResource;
-
+import bitronix.tm.resource.jdbc.BaseProxyHandlerClass;
 import bitronix.tm.utils.ClassLoaderUtils;
-import org.slf4j.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import bitronix.tm.resource.jdbc.BaseProxyHandlerClass;
+import javax.sql.ConnectionEvent;
+import javax.sql.ConnectionEventListener;
+import javax.sql.XAConnection;
+import javax.transaction.xa.XAResource;
+import java.lang.reflect.Proxy;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * XAConnection implementation for a non-XA JDBC resource emulating XA with Last Resource Commit.
@@ -41,9 +44,9 @@ public class LrcXAConnection extends BaseProxyHandlerClass { // implements XACon
 
     private final static Logger log = LoggerFactory.getLogger(LrcXAConnection.class);
 
-    private Connection connection;
-    private LrcXAResource xaResource;
-    private List connectionEventListeners = new ArrayList();
+    private final Connection connection;
+    private final LrcXAResource xaResource;
+    private final List<ConnectionEventListener> connectionEventListeners = new CopyOnWriteArrayList<ConnectionEventListener>();
 
     public LrcXAConnection(Connection connection) {
         this.connection = connection;
@@ -74,9 +77,8 @@ public class LrcXAConnection extends BaseProxyHandlerClass { // implements XACon
 
     private void fireCloseEvent() {
         if (log.isDebugEnabled()) log.debug("notifying " + connectionEventListeners.size() + " connectionEventListeners(s) about closing of " + this);
-        for (int i = 0; i < connectionEventListeners.size(); i++) {
-            ConnectionEventListener connectionEventListener = (ConnectionEventListener) connectionEventListeners.get(i);
-            XAConnection conn = (XAConnection) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[] { XAConnection.class }, this);
+        for (ConnectionEventListener connectionEventListener : connectionEventListeners) {
+            XAConnection conn = (XAConnection) Proxy.newProxyInstance(ClassLoaderUtils.getClassLoader(), new Class[]{XAConnection.class}, this);
             connectionEventListener.connectionClosed(new ConnectionEvent(conn));
         }
     }
diff --git a/src/bitronix/tm/resource/jdbc/lrc/LrcXADataSource.java b/src/bitronix/tm/resource/jdbc/lrc/LrcXADataSource.java
index a789cae..95791f9 100644
--- a/src/bitronix/tm/resource/jdbc/lrc/LrcXADataSource.java
+++ b/src/bitronix/tm/resource/jdbc/lrc/LrcXADataSource.java
@@ -20,15 +20,17 @@
  */
 package bitronix.tm.resource.jdbc.lrc;
 
+import bitronix.tm.utils.ClassLoaderUtils;
+
+import javax.sql.XAConnection;
+import javax.sql.XADataSource;
 import java.io.PrintWriter;
 import java.lang.reflect.Proxy;
-import java.sql.*;
+import java.sql.Connection;
+import java.sql.Driver;
+import java.sql.SQLException;
 import java.util.Properties;
 
-import javax.sql.*;
-
-import bitronix.tm.utils.ClassLoaderUtils;
-
 /**
  * XADataSource implementation for a non-XA JDBC resource emulating XA with Last Resource Commit.
  *
@@ -36,11 +38,11 @@ import bitronix.tm.utils.ClassLoaderUtils;
  */
 public class LrcXADataSource implements XADataSource {
 
-    private int loginTimeout;
-    private String driverClassName;
-    private String url;
-    private String user;
-    private String password;
+    private volatile int loginTimeout;
+    private volatile String driverClassName;
+    private volatile String url;
+    private volatile String user;
+    private volatile String password;
 
     public LrcXADataSource() {
     }
diff --git a/src/bitronix/tm/resource/jdbc/lrc/LrcXAResource.java b/src/bitronix/tm/resource/jdbc/lrc/LrcXAResource.java
index b75797e..7f6902b 100644
--- a/src/bitronix/tm/resource/jdbc/lrc/LrcXAResource.java
+++ b/src/bitronix/tm/resource/jdbc/lrc/LrcXAResource.java
@@ -22,16 +22,15 @@ package bitronix.tm.resource.jdbc.lrc;
 
 import bitronix.tm.internal.BitronixXAException;
 import bitronix.tm.utils.Decoder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import javax.transaction.xa.XAResource;
 import javax.transaction.xa.XAException;
+import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 import java.sql.Connection;
 import java.sql.SQLException;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
  * XAResource implementation for a non-XA JDBC connection emulating XA with Last Resource Commit.
  * <p>The XA protocol flow is implemented by this state machine:</p>
@@ -70,10 +69,10 @@ public class LrcXAResource implements XAResource {
     public static final int ENDED = 2;
     public static final int PREPARED = 3;
 
-    private Connection connection;
-    private Xid xid;
-    private boolean autocommitActiveBeforeStart;
-    private int state = NO_TX;
+    private final Connection connection;
+    private volatile Xid xid;
+    private volatile boolean autocommitActiveBeforeStart;
+    private volatile int state = NO_TX;
 
     public LrcXAResource(Connection connection) {
         this.connection = connection;
diff --git a/src/bitronix/tm/resource/jms/DualSessionWrapper.java b/src/bitronix/tm/resource/jms/DualSessionWrapper.java
index a73315a..3db7e6d 100644
--- a/src/bitronix/tm/resource/jms/DualSessionWrapper.java
+++ b/src/bitronix/tm/resource/jms/DualSessionWrapper.java
@@ -21,20 +21,49 @@
 package bitronix.tm.resource.jms;
 
 import bitronix.tm.BitronixTransaction;
-import bitronix.tm.internal.BitronixSystemException;
 import bitronix.tm.internal.BitronixRollbackSystemException;
+import bitronix.tm.internal.BitronixSystemException;
+import bitronix.tm.resource.common.AbstractXAResourceHolder;
+import bitronix.tm.resource.common.ResourceBean;
+import bitronix.tm.resource.common.StateChangeListener;
+import bitronix.tm.resource.common.TransactionContextHelper;
+import bitronix.tm.resource.common.XAResourceHolder;
+import bitronix.tm.resource.common.XAStatefulHolder;
 import bitronix.tm.utils.Decoder;
-import bitronix.tm.resource.common.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jms.*;
+import javax.jms.BytesMessage;
+import javax.jms.Destination;
 import javax.jms.IllegalStateException;
+import javax.jms.JMSException;
+import javax.jms.MapMessage;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.ObjectMessage;
+import javax.jms.QueueBrowser;
+import javax.jms.Session;
+import javax.jms.StreamMessage;
+import javax.jms.TemporaryQueue;
+import javax.jms.TemporaryTopic;
+import javax.jms.TextMessage;
+import javax.jms.Topic;
+import javax.jms.TopicSubscriber;
+import javax.jms.TransactionInProgressException;
+import javax.jms.TransactionRolledBackException;
+import javax.jms.XASession;
 import javax.transaction.RollbackException;
 import javax.transaction.SystemException;
 import javax.transaction.xa.XAResource;
 import java.io.Serializable;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
 /**
  * JMS Session wrapper that will send calls to either a XASession or to a non-XA Session depending on the calling
@@ -46,9 +75,9 @@ public class DualSessionWrapper extends AbstractXAResourceHolder implements Sess
 
     private final static Logger log = LoggerFactory.getLogger(DualSessionWrapper.class);
 
-    private JmsPooledConnection pooledConnection;
-    private boolean transacted;
-    private int acknowledgeMode;
+    private final JmsPooledConnection pooledConnection;
+    private final boolean transacted;
+    private final int acknowledgeMode;
 
     private XASession xaSession;
     private Session session;
@@ -56,9 +85,9 @@ public class DualSessionWrapper extends AbstractXAResourceHolder implements Sess
     private MessageListener listener;
 
     //TODO: shouldn't producers/consumers/subscribers be separated between XA and non-XA session ?
-    private Map messageProducers = new HashMap();
-    private Map messageConsumers = new HashMap();
-    private Map topicSubscribers = new HashMap();
+    private final Map<MessageProducerConsumerKey, MessageProducer> messageProducers = new HashMap<MessageProducerConsumerKey, MessageProducer>();
+    private final Map<MessageProducerConsumerKey, MessageConsumer> messageConsumers = new HashMap<MessageProducerConsumerKey, MessageConsumer>();
+    private final Map<MessageProducerConsumerKey, TopicSubscriberWrapper> topicSubscribers = new HashMap<MessageProducerConsumerKey, TopicSubscriberWrapper>();
 
     public DualSessionWrapper(JmsPooledConnection pooledConnection, boolean transacted, int acknowledgeMode) {
         this.pooledConnection = pooledConnection;
@@ -298,7 +327,7 @@ public class DualSessionWrapper extends AbstractXAResourceHolder implements Sess
     public TopicSubscriber createDurableSubscriber(Topic topic, String name) throws JMSException {
         MessageProducerConsumerKey key = new MessageProducerConsumerKey(topic);
         if (log.isDebugEnabled()) log.debug("looking for durable subscriber based on " + key);
-        TopicSubscriberWrapper topicSubscriber = (TopicSubscriberWrapper) topicSubscribers.get(key);
+        TopicSubscriberWrapper topicSubscriber = topicSubscribers.get(key);
         if (topicSubscriber == null) {
             if (log.isDebugEnabled()) log.debug("found no durable subscriber based on " + key + ", creating it");
             topicSubscriber = new TopicSubscriberWrapper(getSession().createDurableSubscriber(topic, name), this, pooledConnection.getPoolingConnectionFactory());
@@ -315,7 +344,7 @@ public class DualSessionWrapper extends AbstractXAResourceHolder implements Sess
     public TopicSubscriber createDurableSubscriber(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException {
         MessageProducerConsumerKey key = new MessageProducerConsumerKey(topic, messageSelector, noLocal);
         if (log.isDebugEnabled()) log.debug("looking for durable subscriber based on " + key);
-        TopicSubscriberWrapper topicSubscriber = (TopicSubscriberWrapper) topicSubscribers.get(key);
+        TopicSubscriberWrapper topicSubscriber = topicSubscribers.get(key);
         if (topicSubscriber == null) {
             if (log.isDebugEnabled()) log.debug("found no durable subscriber based on " + key + ", creating it");
             topicSubscriber = new TopicSubscriberWrapper(getSession().createDurableSubscriber(topic, name, messageSelector, noLocal), this, pooledConnection.getPoolingConnectionFactory());
@@ -367,10 +396,8 @@ public class DualSessionWrapper extends AbstractXAResourceHolder implements Sess
 
     /* XAStatefulHolder implementation */
 
-    public List getXAResourceHolders() {
-        List holders = new ArrayList(1);
-        holders.add(this);
-        return holders;
+    public List<XAResourceHolder> getXAResourceHolders() {
+        return Arrays.asList((XAResourceHolder) this);
     }
 
     public Object getConnectionHandle() throws Exception {
diff --git a/src/bitronix/tm/resource/jms/JmsConnectionHandle.java b/src/bitronix/tm/resource/jms/JmsConnectionHandle.java
index 9f21b2a..0b0f3a9 100644
--- a/src/bitronix/tm/resource/jms/JmsConnectionHandle.java
+++ b/src/bitronix/tm/resource/jms/JmsConnectionHandle.java
@@ -20,7 +20,16 @@
  */
 package bitronix.tm.resource.jms;
 
-import javax.jms.*;
+import javax.jms.Connection;
+import javax.jms.ConnectionConsumer;
+import javax.jms.ConnectionMetaData;
+import javax.jms.Destination;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.ServerSessionPool;
+import javax.jms.Session;
+import javax.jms.Topic;
+import javax.jms.XAConnection;
 
 /**
  * Disposable Connection handle.
@@ -29,8 +38,9 @@ import javax.jms.*;
  */
 public class JmsConnectionHandle implements Connection {
 
-    private XAConnection xaConnection;
-    private JmsPooledConnection pooledConnection;
+    private final XAConnection xaConnection;
+    private final JmsPooledConnection pooledConnection;
+    private volatile boolean closed = false;
 
     public JmsConnectionHandle(JmsPooledConnection pooledConnection, XAConnection xaConnection) {
         this.pooledConnection = pooledConnection;
@@ -52,10 +62,10 @@ public class JmsConnectionHandle implements Connection {
     }
 
     public void close() throws JMSException {
-        if (xaConnection == null)
+        if (closed)
             return;
 
-        xaConnection = null;
+        closed = true;
         pooledConnection.release();
     }
 
diff --git a/src/bitronix/tm/resource/jms/JmsPooledConnection.java b/src/bitronix/tm/resource/jms/JmsPooledConnection.java
index a2ca3fc..cea3010 100644
--- a/src/bitronix/tm/resource/jms/JmsPooledConnection.java
+++ b/src/bitronix/tm/resource/jms/JmsPooledConnection.java
@@ -21,16 +21,32 @@
 package bitronix.tm.resource.jms;
 
 import bitronix.tm.internal.BitronixSystemException;
+import bitronix.tm.resource.common.AbstractXAStatefulHolder;
+import bitronix.tm.resource.common.RecoveryXAResourceHolder;
+import bitronix.tm.resource.common.StateChangeListener;
+import bitronix.tm.resource.common.TransactionContextHelper;
+import bitronix.tm.resource.common.XAResourceHolder;
+import bitronix.tm.resource.common.XAStatefulHolder;
+import bitronix.tm.resource.jms.lrc.LrcXAConnectionFactory;
 import bitronix.tm.utils.Decoder;
 import bitronix.tm.utils.ManagementRegistrar;
+import bitronix.tm.utils.MonotonicClock;
 import bitronix.tm.utils.Scheduler;
-import bitronix.tm.resource.common.*;
-import bitronix.tm.resource.jms.lrc.LrcXAConnectionFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jms.*;
-import java.util.*;
+import javax.jms.JMSException;
+import javax.jms.Session;
+import javax.jms.TemporaryQueue;
+import javax.jms.XAConnection;
+import javax.jms.XASession;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * Implementation of a JMS pooled connection wrapping vendor's {@link XAConnection} implementation.
@@ -42,19 +58,20 @@ public class JmsPooledConnection extends AbstractXAStatefulHolder implements Jms
 
     private final static Logger log = LoggerFactory.getLogger(JmsPooledConnection.class);
 
-    private XAConnection xaConnection;
-    private PoolingConnectionFactory poolingConnectionFactory;
-    private final List sessions = Collections.synchronizedList(new ArrayList());
+    private final XAConnection xaConnection;
+    private final PoolingConnectionFactory poolingConnectionFactory;
+    private final List<DualSessionWrapper> sessions = Collections.synchronizedList(new ArrayList<DualSessionWrapper>());
+    private boolean closed = false;
 
     /* management */
-    private String jmxName;
-    private Date acquisitionDate;
-    private Date lastReleaseDate;
+    private final String jmxName;
+    private volatile Date acquisitionDate;
+    private volatile Date lastReleaseDate;
 
     protected JmsPooledConnection(PoolingConnectionFactory poolingConnectionFactory, XAConnection connection) {
         this.poolingConnectionFactory = poolingConnectionFactory;
         this.xaConnection = connection;
-        this.lastReleaseDate = new Date();
+        this.lastReleaseDate = new Date(MonotonicClock.currentTimeMillis());
         addStateChangeEventListener(new JmsPooledConnectionStateChangeListener());
         
         if (poolingConnectionFactory.getClassName().equals(LrcXAConnectionFactory.class.getName())) {
@@ -85,16 +102,16 @@ public class JmsPooledConnection extends AbstractXAStatefulHolder implements Jms
     }
 
     public synchronized void close() throws JMSException {
-        if (xaConnection != null) {
+        if (!closed) {
             setState(STATE_CLOSED);
             xaConnection.close();
         }
-        xaConnection = null;
+        closed = true;
     }
 
-    public List getXAResourceHolders() {
+    public List<XAResourceHolder> getXAResourceHolders() {
         synchronized (sessions) {
-            return new ArrayList(sessions);
+            return new ArrayList<XAResourceHolder>(sessions);
         }
     }
 
@@ -148,8 +165,7 @@ public class JmsPooledConnection extends AbstractXAStatefulHolder implements Jms
 
     private void closePendingSessions() {
         synchronized (sessions) {
-            for (int i = 0; i < sessions.size(); i++) {
-                DualSessionWrapper dualSessionWrapper = (DualSessionWrapper) sessions.get(i);
+            for (DualSessionWrapper dualSessionWrapper : sessions) {
                 if (dualSessionWrapper.getState() != STATE_ACCESSIBLE)
                     continue;
 
@@ -185,8 +201,7 @@ public class JmsPooledConnection extends AbstractXAStatefulHolder implements Jms
      private DualSessionWrapper getNotAccessibleSession() {
         synchronized (sessions) {
             if (log.isDebugEnabled()) log.debug(sessions.size() + " session(s) open from " + this);
-            for (int i = 0; i < sessions.size(); i++) {
-                DualSessionWrapper sessionHandle = (DualSessionWrapper) sessions.get(i);
+            for (DualSessionWrapper sessionHandle : sessions) {
                 if (sessionHandle.getState() == XAResourceHolder.STATE_NOT_ACCESSIBLE)
                     return sessionHandle;
             }
@@ -215,11 +230,10 @@ public class JmsPooledConnection extends AbstractXAStatefulHolder implements Jms
         return acquisitionDate;
     }
 
-    public Collection getTransactionGtridsCurrentlyHoldingThis() {
+    public Collection<String> getTransactionGtridsCurrentlyHoldingThis() {
         synchronized (sessions) {
-            Set result = new HashSet();
-            for (int i = 0; i < sessions.size(); i++) {
-                DualSessionWrapper dsw = (DualSessionWrapper) sessions.get(i);
+            Set<String> result = new HashSet<String>();
+            for (DualSessionWrapper dsw : sessions) {
                 result.addAll(dsw.getXAResourceHolderStateGtrids());
             }
             return result;
@@ -235,10 +249,10 @@ public class JmsPooledConnection extends AbstractXAStatefulHolder implements Jms
         public void stateChanged(XAStatefulHolder source, int oldState, int newState) {
             if (newState == STATE_IN_POOL) {
                 if (log.isDebugEnabled()) log.debug("requeued JMS connection of " + poolingConnectionFactory);
-                lastReleaseDate = new Date();
+                lastReleaseDate = new Date(MonotonicClock.currentTimeMillis());
             }
             if (oldState == STATE_IN_POOL && newState == STATE_ACCESSIBLE) {
-                acquisitionDate = new Date();
+                acquisitionDate = new Date(MonotonicClock.currentTimeMillis());
             }
             if (newState == STATE_CLOSED) {
                 ManagementRegistrar.unregister(jmxName);
diff --git a/src/bitronix/tm/resource/jms/JmsPooledConnectionMBean.java b/src/bitronix/tm/resource/jms/JmsPooledConnectionMBean.java
index 2c697a3..166a187 100644
--- a/src/bitronix/tm/resource/jms/JmsPooledConnectionMBean.java
+++ b/src/bitronix/tm/resource/jms/JmsPooledConnectionMBean.java
@@ -32,6 +32,6 @@ public interface JmsPooledConnectionMBean {
 
     String getStateDescription();
     Date getAcquisitionDate();
-    Collection getTransactionGtridsCurrentlyHoldingThis();
+    Collection<String> getTransactionGtridsCurrentlyHoldingThis();
 
 }
diff --git a/src/bitronix/tm/resource/jms/JndiXAConnectionFactory.java b/src/bitronix/tm/resource/jms/JndiXAConnectionFactory.java
index 1b5334f..c805686 100644
--- a/src/bitronix/tm/resource/jms/JndiXAConnectionFactory.java
+++ b/src/bitronix/tm/resource/jms/JndiXAConnectionFactory.java
@@ -20,9 +20,9 @@
  */
 package bitronix.tm.resource.jms;
 
-import javax.jms.XAConnectionFactory;
-import javax.jms.XAConnection;
 import javax.jms.JMSException;
+import javax.jms.XAConnection;
+import javax.jms.XAConnectionFactory;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
@@ -38,15 +38,15 @@ import java.util.Properties;
  */
 public class JndiXAConnectionFactory implements XAConnectionFactory {
 
-    private String initialContextFactory;
-    private String providerUrl;
-    private String urlPkgPrefixes;
-    private String name;
-    private String securityPrincipal;
-    private String securityCredentials;
-    private Properties extraJndiProperties = new Properties();
-    private boolean narrowJndiObject = false;
-    private XAConnectionFactory wrappedFactory;
+    private volatile String initialContextFactory;
+    private volatile String providerUrl;
+    private volatile String urlPkgPrefixes;
+    private volatile String name;
+    private volatile String securityPrincipal;
+    private volatile String securityCredentials;
+    private volatile Properties extraJndiProperties = new Properties();
+    private volatile boolean narrowJndiObject = false;
+    private volatile XAConnectionFactory wrappedFactory;
 
 
     public JndiXAConnectionFactory() {
@@ -192,7 +192,7 @@ public class JndiXAConnectionFactory implements XAConnectionFactory {
 
         Context ctx;
         if (!isEmpty(initialContextFactory)) {
-            Hashtable env = new Hashtable();
+            Hashtable<Object, Object> env = new Hashtable<Object, Object>();
             env.put(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory);
             if (!isEmpty(providerUrl))
                 env.put(Context.PROVIDER_URL, providerUrl);
diff --git a/src/bitronix/tm/resource/jms/MessageConsumerWrapper.java b/src/bitronix/tm/resource/jms/MessageConsumerWrapper.java
index 161b7de..85ee211 100644
--- a/src/bitronix/tm/resource/jms/MessageConsumerWrapper.java
+++ b/src/bitronix/tm/resource/jms/MessageConsumerWrapper.java
@@ -36,9 +36,9 @@ import javax.transaction.SystemException;
  */
 public class MessageConsumerWrapper implements MessageConsumer {
 
-    private MessageConsumer messageConsumer;
-    protected DualSessionWrapper session;
-    private PoolingConnectionFactory poolingConnectionFactory;
+    private final MessageConsumer messageConsumer;
+    protected final DualSessionWrapper session;
+    private final PoolingConnectionFactory poolingConnectionFactory;
 
     public MessageConsumerWrapper(MessageConsumer messageConsumer, DualSessionWrapper session, PoolingConnectionFactory poolingConnectionFactory) {
         this.messageConsumer = messageConsumer;
diff --git a/src/bitronix/tm/resource/jms/MessageProducerConsumerKey.java b/src/bitronix/tm/resource/jms/MessageProducerConsumerKey.java
index bd60382..de3c58d 100644
--- a/src/bitronix/tm/resource/jms/MessageProducerConsumerKey.java
+++ b/src/bitronix/tm/resource/jms/MessageProducerConsumerKey.java
@@ -23,9 +23,9 @@ package bitronix.tm.resource.jms;
 import bitronix.tm.internal.BitronixRuntimeException;
 
 import javax.jms.Destination;
+import javax.jms.JMSException;
 import javax.jms.Queue;
 import javax.jms.Topic;
-import javax.jms.JMSException;
 
 /**
  * JMS destination wrapper optimized for use with hashed collections where it is the key and a
@@ -35,23 +35,26 @@ import javax.jms.JMSException;
  */
 public class MessageProducerConsumerKey {
 
-    private Destination destination;
-    private String messageSelector;
-    private Boolean noLocal;
+    private final Destination destination;
+    private final String messageSelector;
+    private final Boolean noLocal;
 
     public MessageProducerConsumerKey(Destination destination) {
         this.destination = destination;
+        this.messageSelector = null;
+        this.noLocal = null;
     }
 
     public MessageProducerConsumerKey(Destination destination, String messageSelector) {
         this.destination = destination;
         this.messageSelector = messageSelector;
+        this.noLocal = null;
     }
 
     public MessageProducerConsumerKey(Destination destination, String messageSelector, boolean noLocal) {
         this.destination = destination;
         this.messageSelector = messageSelector;
-        this.noLocal = Boolean.valueOf(noLocal);
+        this.noLocal = noLocal;
     }
 
     public boolean equals(Object obj) {
diff --git a/src/bitronix/tm/resource/jms/MessageProducerWrapper.java b/src/bitronix/tm/resource/jms/MessageProducerWrapper.java
index 9d444c4..d64fe5e 100644
--- a/src/bitronix/tm/resource/jms/MessageProducerWrapper.java
+++ b/src/bitronix/tm/resource/jms/MessageProducerWrapper.java
@@ -36,9 +36,9 @@ import javax.transaction.SystemException;
  */
 public class MessageProducerWrapper implements MessageProducer {
 
-    private MessageProducer messageProducer;
-    protected DualSessionWrapper session;
-    private PoolingConnectionFactory poolingConnectionFactory;
+    private final MessageProducer messageProducer;
+    protected final DualSessionWrapper session;
+    private final PoolingConnectionFactory poolingConnectionFactory;
 
     public MessageProducerWrapper(MessageProducer messageProducer, DualSessionWrapper session, PoolingConnectionFactory poolingConnectionFactory) {
         this.messageProducer = messageProducer;
diff --git a/src/bitronix/tm/resource/jms/PoolingConnectionFactory.java b/src/bitronix/tm/resource/jms/PoolingConnectionFactory.java
index 7e6c733..f6f0672 100644
--- a/src/bitronix/tm/resource/jms/PoolingConnectionFactory.java
+++ b/src/bitronix/tm/resource/jms/PoolingConnectionFactory.java
@@ -25,12 +25,21 @@ import bitronix.tm.recovery.RecoveryException;
 import bitronix.tm.resource.ResourceConfigurationException;
 import bitronix.tm.resource.ResourceObjectFactory;
 import bitronix.tm.resource.ResourceRegistrar;
-import bitronix.tm.resource.common.*;
+import bitronix.tm.resource.common.RecoveryXAResourceHolder;
+import bitronix.tm.resource.common.ResourceBean;
+import bitronix.tm.resource.common.XAPool;
+import bitronix.tm.resource.common.XAResourceHolder;
+import bitronix.tm.resource.common.XAResourceProducer;
+import bitronix.tm.resource.common.XAStatefulHolder;
 import bitronix.tm.utils.ManagementRegistrar;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jms.*;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.jms.XAConnection;
+import javax.jms.XAConnectionFactory;
 import javax.naming.NamingException;
 import javax.naming.Reference;
 import javax.naming.StringRefAddr;
@@ -45,16 +54,17 @@ public class PoolingConnectionFactory extends ResourceBean implements Connection
 
     private final static Logger log = LoggerFactory.getLogger(PoolingConnectionFactory.class);
 
-    private transient XAPool pool;
-    private transient JmsPooledConnection recoveryPooledConnection;
-    private transient RecoveryXAResourceHolder recoveryXAResourceHolder;
-
-    private boolean cacheProducersConsumers = true;
-    private boolean testConnections = false;
-    private String user;
-    private String password;
-    private JmsConnectionHandle recoveryConnectionHandle;
-    private String jmxName;
+    private volatile transient XAPool pool;
+    private volatile transient JmsPooledConnection recoveryPooledConnection;
+    private volatile transient RecoveryXAResourceHolder recoveryXAResourceHolder;
+
+    private volatile boolean cacheProducersConsumers = true;
+    private volatile boolean testConnections = false;
+    private volatile String user;
+    private volatile String password;
+    private volatile JmsConnectionHandle recoveryConnectionHandle;
+    
+    private volatile String jmxName;
 
 
     public PoolingConnectionFactory() {
diff --git a/src/bitronix/tm/resource/jms/TopicSubscriberWrapper.java b/src/bitronix/tm/resource/jms/TopicSubscriberWrapper.java
index cabdaaa..395047a 100644
--- a/src/bitronix/tm/resource/jms/TopicSubscriberWrapper.java
+++ b/src/bitronix/tm/resource/jms/TopicSubscriberWrapper.java
@@ -20,9 +20,9 @@
  */
 package bitronix.tm.resource.jms;
 
-import javax.jms.TopicSubscriber;
-import javax.jms.Topic;
 import javax.jms.JMSException;
+import javax.jms.Topic;
+import javax.jms.TopicSubscriber;
 
 /**
  * {@link TopicSubscriber} wrapper that adds XA enlistment semantics.
diff --git a/src/bitronix/tm/resource/jms/lrc/LrcXAConnection.java b/src/bitronix/tm/resource/jms/lrc/LrcXAConnection.java
index f722b2e..92df3dd 100644
--- a/src/bitronix/tm/resource/jms/lrc/LrcXAConnection.java
+++ b/src/bitronix/tm/resource/jms/lrc/LrcXAConnection.java
@@ -20,7 +20,17 @@
  */
 package bitronix.tm.resource.jms.lrc;
 
-import javax.jms.*;
+import javax.jms.Connection;
+import javax.jms.ConnectionConsumer;
+import javax.jms.ConnectionMetaData;
+import javax.jms.Destination;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.ServerSessionPool;
+import javax.jms.Session;
+import javax.jms.Topic;
+import javax.jms.XAConnection;
+import javax.jms.XASession;
 
 /**
  * XAConnection implementation for a non-XA JMS resource emulating XA with Last Resource Commit.
@@ -29,7 +39,7 @@ import javax.jms.*;
  */
 public class LrcXAConnection implements XAConnection {
 
-    private Connection nonXaConnection;
+    private final Connection nonXaConnection;
 
     public LrcXAConnection(Connection connection) {
         this.nonXaConnection = connection;
diff --git a/src/bitronix/tm/resource/jms/lrc/LrcXAConnectionFactory.java b/src/bitronix/tm/resource/jms/lrc/LrcXAConnectionFactory.java
index 85b5384..b765bc9 100644
--- a/src/bitronix/tm/resource/jms/lrc/LrcXAConnectionFactory.java
+++ b/src/bitronix/tm/resource/jms/lrc/LrcXAConnectionFactory.java
@@ -23,10 +23,10 @@ package bitronix.tm.resource.jms.lrc;
 import bitronix.tm.utils.ClassLoaderUtils;
 import bitronix.tm.utils.PropertyUtils;
 
-import javax.jms.XAConnectionFactory;
-import javax.jms.XAConnection;
-import javax.jms.JMSException;
 import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.jms.XAConnection;
+import javax.jms.XAConnectionFactory;
 import java.util.Properties;
 
 /**
@@ -36,8 +36,8 @@ import java.util.Properties;
  */
 public class LrcXAConnectionFactory implements XAConnectionFactory {
 
-    private String connectionFactoryClassName;
-    private Properties properties = new Properties();
+    private volatile String connectionFactoryClassName;
+    private volatile Properties properties = new Properties();
 
     public LrcXAConnectionFactory() {
     }
diff --git a/src/bitronix/tm/resource/jms/lrc/LrcXAResource.java b/src/bitronix/tm/resource/jms/lrc/LrcXAResource.java
index e8c08ba..efee09d 100644
--- a/src/bitronix/tm/resource/jms/lrc/LrcXAResource.java
+++ b/src/bitronix/tm/resource/jms/lrc/LrcXAResource.java
@@ -22,15 +22,14 @@ package bitronix.tm.resource.jms.lrc;
 
 import bitronix.tm.internal.BitronixXAException;
 import bitronix.tm.utils.Decoder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import javax.transaction.xa.XAResource;
+import javax.jms.JMSException;
+import javax.jms.Session;
 import javax.transaction.xa.XAException;
+import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
-import javax.jms.Session;
-import javax.jms.JMSException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * XAResource implementation for a non-XA JMS connection emulating XA with Last Resource Commit.
@@ -70,9 +69,9 @@ public class LrcXAResource implements XAResource {
     public static final int ENDED = 2;
     public static final int PREPARED = 3;
 
-    private Session session;
-    private Xid xid;
-    private int state = NO_TX;
+    private final Session session;
+    private volatile Xid xid;
+    private volatile int state = NO_TX;
 
     public LrcXAResource(Session session) {
         this.session = session;
diff --git a/src/bitronix/tm/resource/jms/lrc/LrcXASession.java b/src/bitronix/tm/resource/jms/lrc/LrcXASession.java
index 3bb1cce..dab0b50 100644
--- a/src/bitronix/tm/resource/jms/lrc/LrcXASession.java
+++ b/src/bitronix/tm/resource/jms/lrc/LrcXASession.java
@@ -23,7 +23,25 @@ package bitronix.tm.resource.jms.lrc;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jms.*;
+import javax.jms.BytesMessage;
+import javax.jms.Destination;
+import javax.jms.JMSException;
+import javax.jms.MapMessage;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueBrowser;
+import javax.jms.Session;
+import javax.jms.StreamMessage;
+import javax.jms.TemporaryQueue;
+import javax.jms.TemporaryTopic;
+import javax.jms.TextMessage;
+import javax.jms.Topic;
+import javax.jms.TopicSubscriber;
+import javax.jms.XASession;
 import javax.transaction.xa.XAResource;
 import java.io.Serializable;
 
diff --git a/src/bitronix/tm/timer/PoolShrinkingTask.java b/src/bitronix/tm/timer/PoolShrinkingTask.java
index b2e4569..76f1c73 100644
--- a/src/bitronix/tm/timer/PoolShrinkingTask.java
+++ b/src/bitronix/tm/timer/PoolShrinkingTask.java
@@ -31,7 +31,7 @@ import java.util.Date;
  */
 public class PoolShrinkingTask extends Task {
 
-    private XAPool xaPool;
+    private final XAPool xaPool;
 
     public PoolShrinkingTask(XAPool xaPool, Date executionTime, TaskScheduler scheduler) {
         super(executionTime, scheduler);
diff --git a/src/bitronix/tm/timer/RecoveryTask.java b/src/bitronix/tm/timer/RecoveryTask.java
index c11e148..86ba60f 100644
--- a/src/bitronix/tm/timer/RecoveryTask.java
+++ b/src/bitronix/tm/timer/RecoveryTask.java
@@ -36,7 +36,7 @@ public class RecoveryTask extends Task {
 
     private final static Logger log = LoggerFactory.getLogger(RecoveryTask.class);
 
-    private Recoverer recoverer;
+    private final Recoverer recoverer;
 
     public RecoveryTask(Recoverer recoverer, Date executionTime, TaskScheduler scheduler) {
         super(executionTime, scheduler);
diff --git a/src/bitronix/tm/timer/Task.java b/src/bitronix/tm/timer/Task.java
index ce0395d..8c5303e 100644
--- a/src/bitronix/tm/timer/Task.java
+++ b/src/bitronix/tm/timer/Task.java
@@ -27,10 +27,10 @@ import java.util.Date;
  *
  * @author lorban
  */
-public abstract class Task {
+public abstract class Task implements Comparable<Task> {
 
-    private Date executionTime;
-    private TaskScheduler taskScheduler;
+    private final Date executionTime;
+    private final TaskScheduler taskScheduler;
 
     protected Task(Date executionTime, TaskScheduler scheduler) {
         this.executionTime = executionTime;
@@ -41,14 +41,14 @@ public abstract class Task {
         return executionTime;
     }
 
-    public void setExecutionTime(Date executionTime) {
-        this.executionTime = executionTime;
-    }
-
     protected TaskScheduler getTaskScheduler() {
         return taskScheduler;
     }
 
+    public int compareTo(Task otherTask) {
+        return this.executionTime.compareTo(otherTask.executionTime);
+    }
+
     public abstract Object getObject();
 
     public abstract void execute() throws TaskException;
diff --git a/src/bitronix/tm/timer/TaskScheduler.java b/src/bitronix/tm/timer/TaskScheduler.java
index f1d2f5e..8a6dd16 100644
--- a/src/bitronix/tm/timer/TaskScheduler.java
+++ b/src/bitronix/tm/timer/TaskScheduler.java
@@ -24,11 +24,20 @@ import bitronix.tm.BitronixTransaction;
 import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.recovery.Recoverer;
 import bitronix.tm.resource.common.XAPool;
+import bitronix.tm.utils.ClassLoaderUtils;
+import bitronix.tm.utils.MonotonicClock;
 import bitronix.tm.utils.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.*;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
 
 /**
  * Timed tasks service.
@@ -39,14 +48,43 @@ public class TaskScheduler extends Thread implements Service {
 
     private final static Logger log = LoggerFactory.getLogger(TaskScheduler.class);
 
-    private final List tasks = Collections.synchronizedList(new ArrayList());
-    private volatile boolean active = true;
+    private final SortedSet<Task> tasks;
+    private final Lock tasksLock;
+    private final AtomicBoolean active = new AtomicBoolean(true);
 
     public TaskScheduler() {
         // it is up to the ShutdownHandler to control the lifespan of the JVM and give some time for this thread
         // to die gracefully, meaning enough time for all tasks to get executed. This is why it is set as daemon.
         setDaemon(true);
-        setName("bitronix-scheduler");
+        setName("bitronix-task-scheduler");
+
+        SortedSet<Task> tasks;
+        Lock tasksLock;
+        try {
+            @SuppressWarnings("unchecked")
+            Class<SortedSet<Task>> clazz = ClassLoaderUtils.loadClass("java.util.concurrent.ConcurrentSkipListSet");
+            tasks = clazz.newInstance();
+            tasksLock = null;
+            if (log.isDebugEnabled()) log.debug("task scheduler backed by ConcurrentSkipListSet");
+        } catch (Exception e) {
+            tasks = new TreeSet<Task>();
+            tasksLock = new ReentrantLock();
+            if (log.isDebugEnabled()) log.debug("task scheduler backed by locked TreeSet");
+        }
+        this.tasks = tasks;
+        this.tasksLock = tasksLock;
+    }
+
+    private void lock() {
+        if (tasksLock != null) {
+            tasksLock.lock();
+        }
+    }
+
+    private void unlock() {
+        if (tasksLock != null) {
+            tasksLock.unlock();
+        }
     }
 
     /**
@@ -54,17 +92,25 @@ public class TaskScheduler extends Thread implements Service {
      * @return the amount of tasks currently queued.
      */
     public int countTasksQueued() {
-        return tasks.size();
+        lock();
+        try {
+            return tasks.size();
+        } finally {
+            unlock();
+        }
     }
 
-    public synchronized void shutdown() {
-        try {
-            long gracefulShutdownTime = TransactionManagerServices.getConfiguration().getGracefulShutdownInterval() * 1000;
-            if (log.isDebugEnabled()) log.debug("graceful scheduler shutdown interval: " + gracefulShutdownTime + "ms");
-            setActive(false);
-            join(gracefulShutdownTime);
-        } catch (InterruptedException ex) {
-            log.error("could not stop the task scheduler within " + TransactionManagerServices.getConfiguration().getGracefulShutdownInterval() + "s");
+    public void shutdown() {
+        boolean wasActive = setActive(false);
+
+        if (wasActive) {
+            try {
+                long gracefulShutdownTime = TransactionManagerServices.getConfiguration().getGracefulShutdownInterval() * 1000;
+                if (log.isDebugEnabled()) log.debug("graceful scheduler shutdown interval: " + gracefulShutdownTime + "ms");
+                join(gracefulShutdownTime);
+            } catch (InterruptedException ex) {
+                log.error("could not stop the task scheduler within " + TransactionManagerServices.getConfiguration().getGracefulShutdownInterval() + "s");
+            }
         }
     }
 
@@ -156,19 +202,22 @@ public class TaskScheduler extends Thread implements Service {
             if (log.isDebugEnabled()) log.debug("no task found based on object " + xaPool);
     }
 
-    private void addTask(Task task) {
-        synchronized (tasks) {
+    void addTask(Task task) {
+        lock();
+        try {
             removeTaskByObject(task.getObject());
             tasks.add(task);
+        } finally {
+            unlock();
         }
     }
 
-    private boolean removeTaskByObject(Object obj) {
-        synchronized (tasks) {
+    boolean removeTaskByObject(Object obj) {
+        lock();
+        try {
             if (log.isDebugEnabled()) log.debug("removing task by " + obj);
-            for (int i = 0; i < tasks.size(); i++) {
-                Task task = (Task) tasks.get(i);
 
+            for (Task task : tasks) {
                 if (task.getObject() == obj) {
                     tasks.remove(task);
                     if (log.isDebugEnabled()) log.debug("cancelled " + task + ", total task(s) still queued: " + tasks.size());
@@ -176,15 +225,17 @@ public class TaskScheduler extends Thread implements Service {
                 }
             }
             return false;
+        } finally {
+            unlock();
         }
     }
 
-    void setActive(boolean active) {
-        this.active = active;
+    boolean setActive(boolean active) {
+        return this.active.getAndSet(active);
     }
 
     private boolean isActive() {
-        return active;
+        return active.get();
     }
 
     public void run() {
@@ -195,36 +246,35 @@ public class TaskScheduler extends Thread implements Service {
             } catch (InterruptedException ex) {
                 // ignore
             }
-        } // while
+        }
     }
 
     private void executeElapsedTasks() {
-        if (this.tasks.size() == 0)
-            return;
+        lock();
+        try {
+            if (this.tasks.isEmpty())
+                return;
 
-        // Copying a collection means iterating it so this block must be synchronized
-        List tasks;
-        synchronized (this.tasks) {
-            tasks = new ArrayList(this.tasks);
+            Set<Task> toRemove = new HashSet<Task>();
+            for (Task task : tasks) {
+                if (task.getExecutionTime().compareTo(new Date(MonotonicClock.currentTimeMillis())) <= 0) {
+                    // if the execution time is now or in the past
+                    if (log.isDebugEnabled()) log.debug("running " + task);
+                    try {
+                        task.execute();
+                        if (log.isDebugEnabled()) log.debug("successfully ran " + task);
+                    } catch (Exception ex) {
+                        log.warn("error running " + task, ex);
+                    } finally {
+                        toRemove.add(task);
+                        if (log.isDebugEnabled()) log.debug("total task(s) still queued: " + tasks.size());
+                    }
+                } // if
+            }
+            this.tasks.removeAll(toRemove);
+        } finally {
+            unlock();
         }
-
-        Iterator it = tasks.iterator();
-        while (it.hasNext()) {
-            Task task = (Task) it.next();
-            if (task.getExecutionTime().compareTo(new Date()) <= 0) { // if the execution time is now or in the past
-                if (log.isDebugEnabled()) log.debug("running " + task);
-                try {
-                    task.execute();
-                    if (log.isDebugEnabled()) log.debug("successfully ran " + task);
-                } catch (Exception ex) {
-                    log.warn("error running " + task, ex);
-                } finally {
-                    this.tasks.remove(task);
-                    if (log.isDebugEnabled()) log.debug("total task(s) still queued: " + tasks.size());
-                }
-            } // if
-        } // while
-
     }
 
 }
diff --git a/src/bitronix/tm/timer/TransactionTimeoutTask.java b/src/bitronix/tm/timer/TransactionTimeoutTask.java
index 6ac3ce1..a11f6a3 100644
--- a/src/bitronix/tm/timer/TransactionTimeoutTask.java
+++ b/src/bitronix/tm/timer/TransactionTimeoutTask.java
@@ -36,7 +36,7 @@ public class TransactionTimeoutTask extends Task {
 
     private final static Logger log = LoggerFactory.getLogger(TransactionTimeoutTask.class);
 
-    private BitronixTransaction transaction;
+    private final BitronixTransaction transaction;
 
     public TransactionTimeoutTask(BitronixTransaction transaction, Date executionTime, TaskScheduler scheduler) {
         super(executionTime, scheduler);
diff --git a/src/bitronix/tm/twopc/AbstractPhaseEngine.java b/src/bitronix/tm/twopc/AbstractPhaseEngine.java
index fd61c22..c48f7e8 100644
--- a/src/bitronix/tm/twopc/AbstractPhaseEngine.java
+++ b/src/bitronix/tm/twopc/AbstractPhaseEngine.java
@@ -20,6 +20,7 @@
  */
 package bitronix.tm.twopc;
 
+import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.internal.XAResourceManager;
 import bitronix.tm.internal.XAResourceHolderState;
 import bitronix.tm.twopc.executor.Job;
@@ -42,7 +43,7 @@ public abstract class AbstractPhaseEngine {
 
     private final static Logger log = LoggerFactory.getLogger(AbstractPhaseEngine.class);
 
-    private Executor executor;
+    private final Executor executor;
 
     protected AbstractPhaseEngine(Executor executor) {
         this.executor = executor;
@@ -57,12 +58,10 @@ public abstract class AbstractPhaseEngine {
      * @param reverse true if jobs should be executed in reverse position / enlistment order, false for natural position / enlistment order.
      * @throws PhaseException if one or more resource threw an exception during phase execution.
      * @see bitronix.tm.twopc.executor.SyncExecutor
-     * @see bitronix.tm.twopc.executor.SimpleAsyncExecutor
-     * @see bitronix.tm.twopc.executor.ConcurrentExecutor
-     * @see bitronix.tm.twopc.executor.BackportConcurrentExecutor 
+     * @see bitronix.tm.twopc.executor.AsyncExecutor
      */
     protected void executePhase(XAResourceManager resourceManager, boolean reverse) throws PhaseException {
-        SortedSet positions;
+        SortedSet<Integer> positions;
         if (reverse) {
             positions = resourceManager.getReverseOrderPositions();
             if (log.isDebugEnabled()) log.debug("executing phase on " + resourceManager.size() + " resource(s) enlisted in " + positions.size() + " position(s) in reverse position order");
@@ -72,17 +71,13 @@ public abstract class AbstractPhaseEngine {
             if (log.isDebugEnabled()) log.debug("executing phase on " + resourceManager.size() + " resource(s) enlisted in " + positions.size() + " position(s) in natural position order");
         }
 
-        List positionErrorReports = new ArrayList();
+        List<JobsExecutionReport> positionErrorReports = new ArrayList<JobsExecutionReport>();
 
-        Iterator it = positions.iterator();
-        while (it.hasNext()) {
-            Object positionKey = it.next();
-            
-            List resources;
+        for (Integer positionKey : positions) {
+            List<XAResourceHolderState> resources;
             if (reverse) {
                 resources = resourceManager.getReverseOrderResourcesForPosition(positionKey);
-            }
-            else {
+            } else {
                 resources = resourceManager.getNaturalOrderResourcesForPosition(positionKey);
             }
 
@@ -98,11 +93,10 @@ public abstract class AbstractPhaseEngine {
 
         if (positionErrorReports.size() > 0) {
             // merge all resources and exceptions lists
-            List exceptions = new ArrayList();
-            List resources = new ArrayList();
+            List<Exception> exceptions = new ArrayList<Exception>();
+            List<XAResourceHolderState> resources = new ArrayList<XAResourceHolderState>();
 
-            for (int i = 0; i < positionErrorReports.size(); i++) {
-                JobsExecutionReport report = (JobsExecutionReport) positionErrorReports.get(i);
+            for (JobsExecutionReport report : positionErrorReports) {
                 exceptions.addAll(report.getExceptions());
                 resources.addAll(report.getResources());
             }
@@ -111,30 +105,26 @@ public abstract class AbstractPhaseEngine {
         }
     }
 
-    private JobsExecutionReport runJobsForPosition(List resources) {
-        Iterator it = resources.iterator();
-        List jobs = new ArrayList();
-        List exceptions = new ArrayList();
-        List errorResources = new ArrayList();
+    private JobsExecutionReport runJobsForPosition(List<XAResourceHolderState> resources) {
+        List<Job> jobs = new ArrayList<Job>();
+        List<Exception> exceptions = new ArrayList<Exception>();
+        List<XAResourceHolderState> errorResources = new ArrayList<XAResourceHolderState>();
 
         // start threads
-        while (it.hasNext()) {
-            XAResourceHolderState resourceHolderState = (XAResourceHolderState) it.next();
-            if (!isParticipating(resourceHolderState)) {
-                if (log.isDebugEnabled()) log.debug("skipping not participating resource " + resourceHolderState);
+        for (XAResourceHolderState resource : resources) {
+            if (!isParticipating(resource)) {
+                if (log.isDebugEnabled()) log.debug("skipping not participating resource " + resource);
                 continue;
             }
 
-            Job job = createJob(resourceHolderState);
+            Job job = createJob(resource);
             Object future = executor.submit(job);
             job.setFuture(future);
             jobs.add(job);
         }
 
         // wait for threads to finish and check results
-        for (int i = 0; i < jobs.size(); i++) {
-            Job job = (Job) jobs.get(i);
-
+        for (Job job : jobs) {
             Object future = job.getFuture();
             while (!executor.isDone(future)) {
                 executor.waitFor(future, 1000L);
@@ -144,7 +134,9 @@ public abstract class AbstractPhaseEngine {
             RuntimeException runtimeException = job.getRuntimeException();
 
             if (xaException != null) {
-                if (log.isDebugEnabled()) log.debug("error executing " + job + ", errorCode=" + Decoder.decodeXAExceptionErrorCode(xaException));
+                String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(xaException);
+                if (log.isDebugEnabled()) log.debug("error executing " + job + ", errorCode=" + Decoder.decodeXAExceptionErrorCode(xaException) +
+                        (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails));
                 exceptions.add(xaException);
                 errorResources.add(job.getResource());
             } else if (runtimeException != null) {
@@ -178,34 +170,30 @@ public abstract class AbstractPhaseEngine {
      * @param ex the phase exception.
      */
     protected void logFailedResources(PhaseException ex) {
-        List exceptions = ex.getExceptions();
-        List resources = ex.getResourceStates();
+        List<Exception> exceptions = ex.getExceptions();
+        List<XAResourceHolderState> resources = ex.getResourceStates();
 
         for (int i = 0; i < exceptions.size(); i++) {
-            Throwable t = (Throwable) exceptions.get(i);
-            XAResourceHolderState holderState = (XAResourceHolderState) resources.get(i);
-            log.error("resource " + holderState.getUniqueName() + " failed on " + holderState.getXid(), t);
+            Exception e = exceptions.get(i);
+            XAResourceHolderState holderState = resources.get(i);
+            log.error("resource " + holderState.getUniqueName() + " failed on " + holderState.getXid(), e);
         }
     }
 
-    protected static Set collectResourcesUniqueNames(List resources) {
-        Set uniqueNames = new HashSet();
+    protected static Set<String> collectResourcesUniqueNames(List<XAResourceHolderState> resources) {
+        Set<String> uniqueNames = new HashSet<String>();
 
-        for (int i = 0; i < resources.size(); i++) {
-            XAResourceHolderState resourceHolderState = (XAResourceHolderState) resources.get(i);
-            String uniqueName = resourceHolderState.getUniqueName();
-            uniqueNames.add(uniqueName);
+        for (XAResourceHolderState resourceHolderState : resources) {
+            uniqueNames.add(resourceHolderState.getUniqueName());
         }
 
         return uniqueNames;
     }
 
-    protected static List collectNotInterestedResources(List allResources, List interestedResources) {
-        List result = new ArrayList();
-
-        for (int i = 0; i < allResources.size(); i++) {
-            XAResourceHolderState resourceHolderState = (XAResourceHolderState) allResources.get(i);
+    protected static List<XAResourceHolderState> collectNotInterestedResources(List<XAResourceHolderState> allResources, List<XAResourceHolderState> interestedResources) {
+        List<XAResourceHolderState> result = new ArrayList<XAResourceHolderState>();
 
+        for (XAResourceHolderState resourceHolderState : allResources) {
             if (!CollectionUtils.containsByIdentity(interestedResources, resourceHolderState))
                 result.add(resourceHolderState);
         }
@@ -214,19 +202,19 @@ public abstract class AbstractPhaseEngine {
     }
 
     private final static class JobsExecutionReport {
-        private List exceptions;
-        private List resources;
+        private final List<Exception> exceptions;
+        private final List<XAResourceHolderState> resources;
 
-        private JobsExecutionReport(List exceptions, List resources) {
-            this.exceptions = exceptions;
-            this.resources = resources;
+        private JobsExecutionReport(List<Exception> exceptions, List<XAResourceHolderState> resources) {
+            this.exceptions = Collections.unmodifiableList(exceptions);
+            this.resources = Collections.unmodifiableList(resources);
         }
 
-        public List getExceptions() {
+        public List<Exception> getExceptions() {
             return exceptions;
         }
 
-        public List getResources() {
+        public List<XAResourceHolderState> getResources() {
             return resources;
         }
     }
diff --git a/src/bitronix/tm/twopc/Committer.java b/src/bitronix/tm/twopc/Committer.java
index 9f6e1b0..b13fa9f 100644
--- a/src/bitronix/tm/twopc/Committer.java
+++ b/src/bitronix/tm/twopc/Committer.java
@@ -20,6 +20,7 @@
  */
 package bitronix.tm.twopc;
 
+import bitronix.tm.TransactionManagerServices;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import bitronix.tm.BitronixTransaction;
@@ -36,20 +37,21 @@ import java.util.List;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Collections;
+import java.util.Set;
 
 /**
  * Phase 2 Commit logic engine.
  *
  * @author lorban
  */
-public class Committer extends AbstractPhaseEngine {
+public final class Committer extends AbstractPhaseEngine {
 
     private final static Logger log = LoggerFactory.getLogger(Committer.class);
 
-    private boolean onePhase;
-    private List interestedResources;
+    private volatile boolean onePhase;
+    private final List<XAResourceHolderState> interestedResources = Collections.synchronizedList(new ArrayList<XAResourceHolderState>());
     // this list has to be thread-safe as the CommitJobs can be executed in parallel (when async 2PC is configured)
-    private final List committedResources = Collections.synchronizedList(new ArrayList());
+    private final List<XAResourceHolderState> committedResources = Collections.synchronizedList(new ArrayList<XAResourceHolderState>());
 
 
     public Committer(Executor executor) {
@@ -63,8 +65,9 @@ public class Committer extends AbstractPhaseEngine {
      * @throws HeuristicRollbackException when all resources committed instead.
      * @throws HeuristicMixedException when some resources committed and some rolled back.
      * @throws bitronix.tm.internal.BitronixSystemException when an internal error occured.
+     * @throws bitronix.tm.internal.BitronixRollbackException during 1PC when resource fails to commit
      */
-    public void commit(BitronixTransaction transaction, List interestedResources) throws HeuristicMixedException, HeuristicRollbackException, BitronixSystemException {
+    public void commit(BitronixTransaction transaction, List<XAResourceHolderState> interestedResources) throws HeuristicMixedException, HeuristicRollbackException, BitronixSystemException, BitronixRollbackException {
         XAResourceManager resourceManager = transaction.getResourceManager();
         if (resourceManager.size() == 0) {
             transaction.setStatus(Status.STATUS_COMMITTING); //TODO: there is a disk force here that could be avoided
@@ -75,15 +78,21 @@ public class Committer extends AbstractPhaseEngine {
 
         transaction.setStatus(Status.STATUS_COMMITTING);
 
-        this.interestedResources = Collections.unmodifiableList(interestedResources);
+        this.interestedResources.clear();
+        this.interestedResources.addAll(interestedResources);
         this.onePhase = resourceManager.size() == 1;
 
         try {
             executePhase(resourceManager, true);
         } catch (PhaseException ex) {
             logFailedResources(ex);
-            transaction.setStatus(Status.STATUS_UNKNOWN);
-            throwException("transaction failed during commit of " + transaction, ex, interestedResources.size());
+            if (onePhase) {
+                transaction.setStatus(Status.STATUS_ROLLEDBACK);
+                throw new BitronixRollbackException("transaction failed during 1PC commit of " + transaction, ex);
+            } else {
+                transaction.setStatus(Status.STATUS_UNKNOWN);
+                throwException("transaction failed during commit of " + transaction, ex, interestedResources.size());
+            }
         }
 
         if (log.isDebugEnabled()) log.debug("phase 2 commit executed on resources " + Decoder.collectResourcesNames(committedResources));
@@ -93,33 +102,33 @@ public class Committer extends AbstractPhaseEngine {
         // ones should be picked up by the recoverer.
         // Not interested resources have to be included as well since they returned XA_RDONLY and they
         // don't participate in phase 2: the TX succeded for them.
-        List committedAndNotInterestedUniqueNames = new ArrayList();
+        Set<String> committedAndNotInterestedUniqueNames = new HashSet<String>();
         committedAndNotInterestedUniqueNames.addAll(collectResourcesUniqueNames(committedResources));
-        List notInterestedResources = collectNotInterestedResources(resourceManager.getAllResources(), interestedResources);
+        List<XAResourceHolderState> notInterestedResources = collectNotInterestedResources(resourceManager.getAllResources(), interestedResources);
         committedAndNotInterestedUniqueNames.addAll(collectResourcesUniqueNames(notInterestedResources));
 
         if (log.isDebugEnabled()) {
-            List committedAndNotInterestedResources = new ArrayList();
+            List<XAResourceHolderState> committedAndNotInterestedResources = new ArrayList<XAResourceHolderState>();
             committedAndNotInterestedResources.addAll(committedResources);
             committedAndNotInterestedResources.addAll(notInterestedResources);
 
             log.debug("phase 2 commit succeeded on resources " + Decoder.collectResourcesNames(committedAndNotInterestedResources));
         }
 
-        transaction.setStatus(Status.STATUS_COMMITTED, new HashSet(committedAndNotInterestedUniqueNames));
+        transaction.setStatus(Status.STATUS_COMMITTED, committedAndNotInterestedUniqueNames);
     }
 
     private void throwException(String message, PhaseException phaseException, int totalResourceCount) throws HeuristicMixedException, HeuristicRollbackException {
-        List exceptions = phaseException.getExceptions();
-        List resources = phaseException.getResourceStates();
+        List<Exception> exceptions = phaseException.getExceptions();
+        List<XAResourceHolderState> resources = phaseException.getResourceStates();
 
         boolean hazard = false;
-        List heuristicResources = new ArrayList();
-        List errorResources = new ArrayList();
+        List<XAResourceHolderState> heuristicResources = new ArrayList<XAResourceHolderState>();
+        List<XAResourceHolderState> errorResources = new ArrayList<XAResourceHolderState>();
 
         for (int i = 0; i < exceptions.size(); i++) {
-            Exception ex = (Exception) exceptions.get(i);
-            XAResourceHolderState resourceHolder = (XAResourceHolderState) resources.get(i);
+            Exception ex = exceptions.get(i);
+            XAResourceHolderState resourceHolder = resources.get(i);
             if (ex instanceof XAException) {
                 XAException xaEx = (XAException) ex;
                 switch (xaEx.errorCode) {
@@ -155,8 +164,7 @@ public class Committer extends AbstractPhaseEngine {
     }
 
     protected boolean isParticipating(XAResourceHolderState xaResourceHolderState) {
-        for (int i = 0; i < interestedResources.size(); i++) {
-            XAResourceHolderState resourceHolderState = (XAResourceHolderState) interestedResources.get(i);
+        for (XAResourceHolderState resourceHolderState : interestedResources) {
             if (xaResourceHolderState == resourceHolderState)
                 return true;
         }
@@ -164,7 +172,7 @@ public class Committer extends AbstractPhaseEngine {
     }
 
 
-    private class CommitJob extends Job {
+    private final class CommitJob extends Job {
 
         public CommitJob(XAResourceHolderState resourceHolder) {
             super(resourceHolder);
@@ -195,11 +203,11 @@ public class Committer extends AbstractPhaseEngine {
                 committedResources.add(resourceHolder);
                 if (log.isDebugEnabled()) log.debug("committed resource " + resourceHolder);
             } catch (XAException ex) {
-               handleXAException(resourceHolder, ex);
+               handleXAException(resourceHolder, ex, onePhase);
             }
         }
 
-        private void handleXAException(XAResourceHolderState failedResourceHolder, XAException xaException) throws XAException {
+        private void handleXAException(XAResourceHolderState failedResourceHolder, XAException xaException, boolean onePhase) throws XAException {
             switch (xaException.errorCode) {
                 case XAException.XA_HEURCOM:
                     forgetHeuristicCommit(failedResourceHolder);
@@ -223,8 +231,14 @@ public class Committer extends AbstractPhaseEngine {
                     throw xaException;
 
                 default:
+                    if (onePhase) {
+                        if (log.isDebugEnabled()) log.debug("XAException thrown in commit phase of 1PC optimization, rethrowing it");
+                        throw xaException;
+                    }
+                    String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(xaException);
                     log.warn("resource '" + failedResourceHolder.getUniqueName() + "' reported " + Decoder.decodeXAExceptionErrorCode(xaException) +
-                            " when asked to commit transaction branch. Transaction is prepared and will commit via recovery service when resource availability allows.", xaException);
+                            (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails) + " when asked to commit transaction branch." +
+                            " Transaction is prepared and will commit via recovery service when resource availability allows.", xaException);
             }
         }
 
@@ -234,7 +248,9 @@ public class Committer extends AbstractPhaseEngine {
                 resourceHolder.getXAResource().forget(resourceHolder.getXid());
                 if (log.isDebugEnabled()) log.debug("forgotten heuristically committed resource " + resourceHolder.getXAResource());
             } catch (XAException ex) {
-                log.error("cannot forget " + resourceHolder.getXid() + " assigned to " + resourceHolder.getXAResource() + ", error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+                String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
+                log.error("cannot forget " + resourceHolder.getXid() + " assigned to " + resourceHolder.getXAResource() +
+                        ", error=" + Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
             }
         }
 
diff --git a/src/bitronix/tm/twopc/PhaseException.java b/src/bitronix/tm/twopc/PhaseException.java
index 5a73dc1..a8c9f19 100644
--- a/src/bitronix/tm/twopc/PhaseException.java
+++ b/src/bitronix/tm/twopc/PhaseException.java
@@ -20,12 +20,13 @@
  */
 package bitronix.tm.twopc;
 
+import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.internal.XAResourceHolderState;
 import bitronix.tm.utils.Decoder;
 
 import javax.transaction.xa.XAException;
+import java.util.Collections;
 import java.util.List;
-import java.util.ArrayList;
 
 /**
  * Thrown when a phase exection has thrown one or more exception(s).  
@@ -34,24 +35,24 @@ import java.util.ArrayList;
  */
 public class PhaseException extends Exception {
 
-    private List exceptions = new ArrayList();
-    private List resourceStates = new ArrayList();
+    private final List<Exception> exceptions;
+    private final List<XAResourceHolderState> resourceStates;
 
-    public PhaseException(List exceptions, List resourceStates) {
-        this.exceptions = exceptions;
-        this.resourceStates = resourceStates;
+    public PhaseException(List<Exception> exceptions, List<XAResourceHolderState> resourceStates) {
+        this.exceptions = Collections.unmodifiableList(exceptions);
+        this.resourceStates = Collections.unmodifiableList(resourceStates);
     }
 
     public String getMessage() {
-        StringBuffer errorMessage = new StringBuffer();
+        StringBuilder errorMessage = new StringBuilder();
         errorMessage.append("collected ");
         errorMessage.append(exceptions.size());
         errorMessage.append(" exception(s):");
         for (int i = 0; i < exceptions.size(); i++) {
             errorMessage.append(System.getProperty("line.separator"));
-            Throwable throwable = (Throwable) exceptions.get(i);
+            Throwable throwable = exceptions.get(i);
             String message = throwable.getMessage();
-            XAResourceHolderState holderState = (XAResourceHolderState) resourceStates.get(i);
+            XAResourceHolderState holderState = resourceStates.get(i);
 
             if (holderState != null) {
                 errorMessage.append(" [");
@@ -63,6 +64,8 @@ public class PhaseException extends Exception {
                 XAException xaEx = (XAException) throwable;
                 errorMessage.append("(");
                 errorMessage.append(Decoder.decodeXAExceptionErrorCode(xaEx));
+                String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(xaEx);
+                if (extraErrorDetails != null) errorMessage.append(" - ").append(extraErrorDetails);
                 errorMessage.append(")");
             }
             errorMessage.append(" - ");
@@ -77,7 +80,7 @@ public class PhaseException extends Exception {
      * Get the list of exceptions that have been thrown during a phase execution.
      * @return the list of exceptions that have been thrown during a phase execution.
      */
-    public List getExceptions() {
+    public List<Exception> getExceptions() {
         return exceptions;
     }
 
@@ -87,7 +90,7 @@ public class PhaseException extends Exception {
      * Indices of both list always match a resource against the exception it threw.
      * @return the list of resource which threw an exception during a phase execution.
      */
-    public List getResourceStates() {
+    public List<XAResourceHolderState> getResourceStates() {
         return resourceStates;
     }
 }
diff --git a/src/bitronix/tm/twopc/Preparer.java b/src/bitronix/tm/twopc/Preparer.java
index 0a6ee47..0cdfd0d 100644
--- a/src/bitronix/tm/twopc/Preparer.java
+++ b/src/bitronix/tm/twopc/Preparer.java
@@ -40,12 +40,12 @@ import java.util.*;
  *
  * @author lorban
  */
-public class Preparer extends AbstractPhaseEngine {
+public final class Preparer extends AbstractPhaseEngine {
 
     private final static Logger log = LoggerFactory.getLogger(Preparer.class);
 
     // this list has to be thread-safe as the PrepareJobs can be executed in parallel (when async 2PC is configured)
-    private final List preparedResources = Collections.synchronizedList(new ArrayList());
+    private final List<XAResourceHolderState> preparedResources = Collections.synchronizedList(new ArrayList<XAResourceHolderState>());
 
     public Preparer(Executor executor) {
         super(executor);
@@ -59,9 +59,10 @@ public class Preparer extends AbstractPhaseEngine {
      * @throws RollbackException when an error occured that can be fixed with a rollback.
      * @throws bitronix.tm.internal.BitronixSystemException when an internal error occured.
      */
-    public List prepare(BitronixTransaction transaction) throws RollbackException, BitronixSystemException {
+    public List<XAResourceHolderState> prepare(BitronixTransaction transaction) throws RollbackException, BitronixSystemException {
         XAResourceManager resourceManager = transaction.getResourceManager();
         transaction.setStatus(Status.STATUS_PREPARING);
+        preparedResources.clear();
 
         if (resourceManager.size() == 0) {
             if (TransactionManagerServices.getConfiguration().isWarnAboutZeroResourceTransaction())
@@ -75,7 +76,7 @@ public class Preparer extends AbstractPhaseEngine {
 
         // 1PC optimization
         if (resourceManager.size() == 1) {
-            XAResourceHolderState resourceHolder = (XAResourceHolderState) resourceManager.getAllResources().get(0);
+            XAResourceHolderState resourceHolder = resourceManager.getAllResources().get(0);
 
             preparedResources.add(resourceHolder);
             if (log.isDebugEnabled()) log.debug("1 resource enlisted, no prepare needed (1PC)");
@@ -92,19 +93,19 @@ public class Preparer extends AbstractPhaseEngine {
 
         transaction.setStatus(Status.STATUS_PREPARED);
         if (log.isDebugEnabled()) log.debug("successfully prepared " + preparedResources.size() + " resource(s)");
-        return preparedResources;
+        return Collections.unmodifiableList(preparedResources);
     }
 
     private void throwException(String message, PhaseException phaseException) throws BitronixRollbackException {
-        List exceptions = phaseException.getExceptions();
-        List resources = phaseException.getResourceStates();
+        List<Exception> exceptions = phaseException.getExceptions();
+        List<XAResourceHolderState> resources = phaseException.getResourceStates();
 
-        List heuristicResources = new ArrayList();
-        List errorResources = new ArrayList();
+        List<XAResourceHolderState> heuristicResources = new ArrayList<XAResourceHolderState>();
+        List<XAResourceHolderState> errorResources = new ArrayList<XAResourceHolderState>();
 
         for (int i = 0; i < exceptions.size(); i++) {
-            Exception ex = (Exception) exceptions.get(i);
-            XAResourceHolderState resourceHolder = (XAResourceHolderState) resources.get(i);
+            Exception ex = exceptions.get(i);
+            XAResourceHolderState resourceHolder = resources.get(i);
             if (ex instanceof XAException) {
                 XAException xaEx = (XAException) ex;
                 /**
@@ -140,7 +141,7 @@ public class Preparer extends AbstractPhaseEngine {
     }
 
 
-    private class PrepareJob extends Job {
+    private final class PrepareJob extends Job {
         public PrepareJob(XAResourceHolderState resourceHolder) {
             super(resourceHolder);
         }
diff --git a/src/bitronix/tm/twopc/Rollbacker.java b/src/bitronix/tm/twopc/Rollbacker.java
index 2e8a246..47fadef 100644
--- a/src/bitronix/tm/twopc/Rollbacker.java
+++ b/src/bitronix/tm/twopc/Rollbacker.java
@@ -20,6 +20,7 @@
  */
 package bitronix.tm.twopc;
 
+import bitronix.tm.TransactionManagerServices;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import bitronix.tm.BitronixTransaction;
@@ -36,28 +37,28 @@ import java.util.List;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Collections;
+import java.util.Set;
 
 /**
  * Phase 1 & 2 Rollback logic engine.
  *
  * @author lorban
  */
-public class Rollbacker extends AbstractPhaseEngine {
+public final class Rollbacker extends AbstractPhaseEngine {
 
     private final static Logger log = LoggerFactory.getLogger(Rollbacker.class);
 
-    private List interestedResources;
+    private final List<XAResourceHolderState> interestedResources = Collections.synchronizedList(new ArrayList<XAResourceHolderState>());
     // this list has to be thread-safe as the RollbackJobs can be executed in parallel (when async 2PC is configured)
-    private final List rolledbackResources = Collections.synchronizedList(new ArrayList());
+    private final List<XAResourceHolderState> rolledbackResources = Collections.synchronizedList(new ArrayList<XAResourceHolderState>());
 
     public Rollbacker(Executor executor) {
         super(executor);
     }
 
     /**
-     * Rollback the current XA transaction. {@link bitronix.tm.internal.TransactionTimeoutException} won't be thrown
-     * while changing status but rather by some extra logic that will manually throw the exception after doing as much
-     * cleanup as possible.
+     * Rollback the current XA transaction. Transaction will not timeout while changing status but rather by some
+     * extra logic that will manually throw the exception after doing as much cleanup as possible.
      *
      * @param transaction the transaction to rollback.
      * @param interestedResources resources that should be rolled back.
@@ -65,10 +66,11 @@ public class Rollbacker extends AbstractPhaseEngine {
      * @throws HeuristicMixedException when some resources committed and some rolled back.
      * @throws bitronix.tm.internal.BitronixSystemException when an internal error occured.
      */
-    public void rollback(BitronixTransaction transaction, List interestedResources) throws HeuristicMixedException, HeuristicCommitException, BitronixSystemException {
+    public void rollback(BitronixTransaction transaction, List<XAResourceHolderState> interestedResources) throws HeuristicMixedException, HeuristicCommitException, BitronixSystemException {
         XAResourceManager resourceManager = transaction.getResourceManager();
         transaction.setStatus(Status.STATUS_ROLLING_BACK);
-        this.interestedResources = Collections.unmodifiableList(interestedResources);
+        this.interestedResources.clear();
+        this.interestedResources.addAll(interestedResources);
 
         try {
             executePhase(resourceManager, true);
@@ -85,33 +87,33 @@ public class Rollbacker extends AbstractPhaseEngine {
         // ones should be picked up by the recoverer.
         // Not interested resources have to be included as well since they returned XA_RDONLY and they
         // don't participate in phase 2: the TX succeded for them.
-        List rolledbackAndNotInterestedUniqueNames = new ArrayList();
+        Set<String> rolledbackAndNotInterestedUniqueNames = new HashSet<String>();
         rolledbackAndNotInterestedUniqueNames.addAll(collectResourcesUniqueNames(rolledbackResources));
-        List notInterestedResources = collectNotInterestedResources(resourceManager.getAllResources(), interestedResources);
+        List<XAResourceHolderState> notInterestedResources = collectNotInterestedResources(resourceManager.getAllResources(), interestedResources);
         rolledbackAndNotInterestedUniqueNames.addAll(collectResourcesUniqueNames(notInterestedResources));
 
         if (log.isDebugEnabled()) {
-            List rolledbackAndNotInterestedResources = new ArrayList();
+            List<XAResourceHolderState> rolledbackAndNotInterestedResources = new ArrayList<XAResourceHolderState>();
             rolledbackAndNotInterestedResources.addAll(rolledbackResources);
             rolledbackAndNotInterestedResources.addAll(notInterestedResources);
 
             log.debug("rollback succeeded on resources " + Decoder.collectResourcesNames(rolledbackAndNotInterestedResources));
         }
 
-        transaction.setStatus(Status.STATUS_ROLLEDBACK, new HashSet(rolledbackAndNotInterestedUniqueNames));
+        transaction.setStatus(Status.STATUS_ROLLEDBACK, rolledbackAndNotInterestedUniqueNames);
     }
 
     private void throwException(String message, PhaseException phaseException, int totalResourceCount) throws HeuristicMixedException, HeuristicCommitException {
-        List exceptions = phaseException.getExceptions();
-        List resources = phaseException.getResourceStates();
+        List<Exception> exceptions = phaseException.getExceptions();
+        List<XAResourceHolderState> resources = phaseException.getResourceStates();
 
         boolean hazard = false;
-        List heuristicResources = new ArrayList();
-        List errorResources = new ArrayList();
+        List<XAResourceHolderState> heuristicResources = new ArrayList<XAResourceHolderState>();
+        List<XAResourceHolderState> errorResources = new ArrayList<XAResourceHolderState>();
 
         for (int i = 0; i < exceptions.size(); i++) {
-            Exception ex = (Exception) exceptions.get(i);
-            XAResourceHolderState resourceHolder = (XAResourceHolderState) resources.get(i);
+            Exception ex = exceptions.get(i);
+            XAResourceHolderState resourceHolder = resources.get(i);
             if (ex instanceof XAException) {
                 XAException xaEx = (XAException) ex;
                 switch (xaEx.errorCode) {
@@ -147,15 +149,14 @@ public class Rollbacker extends AbstractPhaseEngine {
     }
 
     protected boolean isParticipating(XAResourceHolderState xaResourceHolderState) {
-        for (int i = 0; i < interestedResources.size(); i++) {
-            XAResourceHolderState resourceHolderState = (XAResourceHolderState) interestedResources.get(i);
+        for (XAResourceHolderState resourceHolderState : interestedResources) {
             if (xaResourceHolderState == resourceHolderState)
                 return true;
         }
         return false;
     }
 
-    private class RollbackJob extends Job {
+    private final class RollbackJob extends Job {
 
         public RollbackJob(XAResourceHolderState resourceHolder) {
             super(resourceHolder);
@@ -195,8 +196,10 @@ public class Rollbacker extends AbstractPhaseEngine {
                     throw xaException;
 
                 default:
+                    String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(xaException);
                     log.warn("resource '" + failedResourceHolder.getUniqueName() + "' reported " + Decoder.decodeXAExceptionErrorCode(xaException) +
-                            " when asked to rollback transaction branch. Transaction is prepared and will rollback via recovery service when resource availability allows.", xaException);
+                            " when asked to rollback transaction branch. Transaction is prepared and will rollback via recovery service when resource availability allows."
+                            + (extraErrorDetails == null ? "" : " Extra error=" + extraErrorDetails), xaException);
             }
         }
 
@@ -206,7 +209,9 @@ public class Rollbacker extends AbstractPhaseEngine {
                 resourceHolder.getXAResource().forget(resourceHolder.getXid());
                 if (log.isDebugEnabled()) log.debug("forgotten heuristically rolled back resource " + resourceHolder.getXAResource());
             } catch (XAException ex) {
-                log.error("cannot forget " + resourceHolder.getXid() + " assigned to " + resourceHolder.getXAResource() + ", error=" + Decoder.decodeXAExceptionErrorCode(ex), ex);
+                String extraErrorDetails = TransactionManagerServices.getExceptionAnalyzer().extractExtraXAExceptionDetails(ex);
+                log.error("cannot forget " + resourceHolder.getXid() + " assigned to " + resourceHolder.getXAResource() +
+                        ", error=" + Decoder.decodeXAExceptionErrorCode(ex) + (extraErrorDetails == null ? "" : ", extra error=" + extraErrorDetails), ex);
             }
         }
 
diff --git a/src/bitronix/tm/twopc/executor/SimpleAsyncExecutor.java b/src/bitronix/tm/twopc/executor/AsyncExecutor.java
similarity index 54%
rename from src/bitronix/tm/twopc/executor/SimpleAsyncExecutor.java
rename to src/bitronix/tm/twopc/executor/AsyncExecutor.java
index 1cd192f..537eab9 100644
--- a/src/bitronix/tm/twopc/executor/SimpleAsyncExecutor.java
+++ b/src/bitronix/tm/twopc/executor/AsyncExecutor.java
@@ -1,7 +1,7 @@
 /*
  * Bitronix Transaction Manager
  *
- * Copyright (c) 2010, Bitronix Software.
+ * Copyright (c) 2011, Bitronix Software.
  *
  * This copyrighted material is made available to anyone wishing to use, modify,
  * copy, or redistribute it subject to the terms and conditions of the GNU
@@ -22,38 +22,52 @@ package bitronix.tm.twopc.executor;
 
 import bitronix.tm.internal.BitronixRuntimeException;
 
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
 /**
- * This implementation spawns a new thread per request.
+ * This implementation executes submitted jobs using a <code>java.util.concurrent</code> cached thread pool.
  *
  * @author lorban
  */
-public class SimpleAsyncExecutor implements Executor {
+public class AsyncExecutor implements Executor {
+
+    private final ExecutorService executorService;
+
+
+    public AsyncExecutor() {
+        executorService = Executors.newCachedThreadPool();
+    }
 
     public Object submit(Job job) {
-        Thread t = new Thread(job);
-        t.setDaemon(true);
-        t.start();
-        return t;
+        return executorService.submit(job);
     }
 
     public void waitFor(Object future, long timeout) {
-        Thread t = (Thread) future;
+        Future<?> f = (Future<?>) future;
+
         try {
-            t.join(timeout);
+            f.get(timeout, TimeUnit.MILLISECONDS);
         } catch (InterruptedException ex) {
             throw new BitronixRuntimeException("job interrupted", ex);
+        } catch (ExecutionException ex) {
+            throw new BitronixRuntimeException("job execution exception", ex);
+        } catch (TimeoutException ex) {
+            // ok, just return
         }
     }
 
     public boolean isDone(Object future) {
-        Thread t = (Thread) future;
-        return !t.isAlive();
-    }
+        Future<?> f = (Future<?>) future;
 
-    public boolean isUsable() {
-        return true;
+        return f.isDone();
     }
 
     public void shutdown() {
+        executorService.shutdownNow();
     }
 }
diff --git a/src/bitronix/tm/twopc/executor/ConcurrentExecutor.java b/src/bitronix/tm/twopc/executor/ConcurrentExecutor.java
deleted file mode 100644
index f8f0c39..0000000
--- a/src/bitronix/tm/twopc/executor/ConcurrentExecutor.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Bitronix Transaction Manager
- *
- * Copyright (c) 2010, Bitronix Software.
- *
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02110-1301 USA
- */
-package bitronix.tm.twopc.executor;
-
-import bitronix.tm.internal.BitronixRuntimeException;
-import bitronix.tm.utils.ClassLoaderUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-/**
- * Abstraction of the <code>java.util.concurrent</code> JDK 1.5+ implementation.
- *
- * @author lorban
- */
-public class ConcurrentExecutor implements Executor {
-
-    private final static Logger log = LoggerFactory.getLogger(ConcurrentExecutor.class);
-
-    private final static String[] implementations = {
-        "java.util.concurrent.Executors",
-        "java.util.concurrent.ExecutorService",
-        "java.util.concurrent.Future",
-        "java.util.concurrent.TimeUnit"
-    };
-
-
-    private Object executorService;
-    private Method executorServiceSubmitMethod;
-    private Method executorServiceShutdownMethod;
-    private Method futureGetMethod;
-    private Method futureIsDoneMethod;
-    private Object timeUnitMilliseconds;
-    private boolean usable = false;
-
-
-    public ConcurrentExecutor() {
-        this(implementations);
-    }
-
-    protected ConcurrentExecutor(String[] implementations) {
-        init(implementations);
-    }
-
-    private void init(String[] implementations) {
-        String executorsImpl = implementations[0];
-        String executorServiceImpl = implementations[1];
-        String futureImpl = implementations[2];
-        String timeUnitImpl = implementations[3];
-        if (log.isDebugEnabled()) log.debug("initializing concurrent executor implementation <" + executorsImpl + ">");
-
-        try {
-            Class executorsClass = ClassLoaderUtils.loadClass(executorsImpl);
-            Class executorServiceClass = ClassLoaderUtils.loadClass(executorServiceImpl);
-            Class timeUnitClass = ClassLoaderUtils.loadClass(timeUnitImpl);
-
-            executorService = executorsClass.getMethod("newCachedThreadPool", (Class[]) null).invoke(executorsClass, (Object[]) null);
-            executorServiceSubmitMethod = executorServiceClass.getMethod("submit", new Class[] { Runnable.class });
-            executorServiceShutdownMethod = executorServiceClass.getMethod("shutdownNow", (Class[]) null);
-            timeUnitMilliseconds = timeUnitClass.getField("MILLISECONDS").get(timeUnitClass);
-            futureGetMethod = ClassLoaderUtils.loadClass(futureImpl).getMethod("get", new Class[] { long.class, timeUnitClass });
-            futureIsDoneMethod = ClassLoaderUtils.loadClass(futureImpl).getMethod("isDone", (Class[]) null);
-
-            if (log.isDebugEnabled()) log.debug("found a valid implementation for this executor <" + executorsImpl + ">");
-            usable = true;
-        } catch (Exception ex) {
-            if (log.isDebugEnabled()) log.debug("error accessing executor implementation <" + executorsImpl + ">", ex);
-        }
-
-        if (!usable)
-            if (log.isDebugEnabled()) log.debug("cannot find a valid implementation for executor <" + executorsImpl + ">, disabling it");
-    }
-
-    public Object submit(Job job) {
-        if (!isUsable())
-            throw new BitronixRuntimeException("concurrent executor is disabled because there is no valid executor implementation");
-        try {
-            return executorServiceSubmitMethod.invoke(executorService, new Object[] { job });
-        } catch (IllegalAccessException ex) {
-            throw new BitronixRuntimeException("error calling ExecutorService.submit(Runnable task)", ex);
-        } catch (InvocationTargetException ex) {
-            throw new BitronixRuntimeException("error calling ExecutorService.submit(Runnable task)", ex);
-        }
-    }
-
-    public void waitFor(Object future, long timeout) {
-        if (!isUsable())
-            throw new BitronixRuntimeException("concurrent executor is disabled because there is no valid executor implementation");
-        try {
-            futureGetMethod.invoke(future, new Object[] { new Long(timeout), timeUnitMilliseconds});
-        } catch (IllegalAccessException ex) {
-            throw new BitronixRuntimeException("error calling Future.get()", ex);
-        } catch (InvocationTargetException ex) {
-            if (ex.getCause().getClass().getName().endsWith("TimeoutException"))
-                return; // wait timed out, simply return
-            throw new BitronixRuntimeException("error calling Future.get()", ex);
-        }
-    }
-
-    public boolean isDone(Object future) {
-        if (!isUsable())
-            throw new BitronixRuntimeException("concurrent executor is disabled because there is no valid executor implementation");
-        try {
-            Boolean b = (Boolean) futureIsDoneMethod.invoke(future, (Object[]) null);
-            return b.booleanValue();
-        } catch (IllegalAccessException ex) {
-            throw new BitronixRuntimeException("error calling Future.isDone()", ex);
-        } catch (InvocationTargetException ex) {
-            throw new BitronixRuntimeException("error calling Future.isDone()", ex);
-        }
-    }
-
-    public boolean isUsable() {
-        return usable;
-    }
-
-    public synchronized void shutdown() {
-        if (!isUsable())
-            throw new BitronixRuntimeException("concurrent executor is disabled because there is no valid executor implementation");
-        try {
-            executorServiceShutdownMethod.invoke(executorService, (Object[]) null);
-        } catch (IllegalAccessException ex) {
-            throw new BitronixRuntimeException("error calling ExecutorService.shutdown()", ex);
-        } catch (InvocationTargetException ex) {
-            throw new BitronixRuntimeException("error calling ExecutorService.shutdown()", ex);
-        }
-    }
-}
diff --git a/src/bitronix/tm/twopc/executor/Executor.java b/src/bitronix/tm/twopc/executor/Executor.java
index 3e1569d..3ed773d 100644
--- a/src/bitronix/tm/twopc/executor/Executor.java
+++ b/src/bitronix/tm/twopc/executor/Executor.java
@@ -20,7 +20,6 @@
  */
 package bitronix.tm.twopc.executor;
 
-import bitronix.tm.internal.BitronixRuntimeException;
 import bitronix.tm.utils.Service;
 
 /**
@@ -53,13 +52,6 @@ public interface Executor extends Service {
     public boolean isDone(Object future);
 
     /**
-     * Check if the thread pool can be used. The thread pool migh rely on an underlying implementation that may not be
-     * available. All other methods will throw a {@link BitronixRuntimeException} when called if this method returns false.
-     * @return true if the {@link Executor} can be used, false otherwise.
-     */
-    public boolean isUsable();
-
-    /**
      * Shutdown the thead pool.
      */
     public void shutdown();
diff --git a/src/bitronix/tm/twopc/executor/Job.java b/src/bitronix/tm/twopc/executor/Job.java
index 613934c..f9175a2 100644
--- a/src/bitronix/tm/twopc/executor/Job.java
+++ b/src/bitronix/tm/twopc/executor/Job.java
@@ -31,11 +31,11 @@ import javax.transaction.xa.XAException;
  * @author lorban
  */
 public abstract class Job implements Runnable {
-    private Object future;
-    private XAResourceHolderState resourceHolder;
+    private final XAResourceHolderState resourceHolder;
 
-    protected XAException xaException;
-    protected RuntimeException runtimeException;
+    private volatile Object future;
+    protected volatile XAException xaException;
+    protected volatile RuntimeException runtimeException;
 
     public Job(XAResourceHolderState resourceHolder) {
         this.resourceHolder = resourceHolder;
@@ -62,12 +62,17 @@ public abstract class Job implements Runnable {
     }
 
     public final void run() {
+        String oldThreadName = null;
         if (TransactionManagerServices.getConfiguration().isAsynchronous2Pc()) {
+            oldThreadName = Thread.currentThread().getName();
             Thread.currentThread().setName("bitronix-2pc [ " +
                     resourceHolder.getXid().toString() +
                     " ]");
         }
         execute();
+        if (oldThreadName != null) {
+            Thread.currentThread().setName(oldThreadName);
+        }
     }
 
     protected abstract void execute();
diff --git a/src/bitronix/tm/twopc/executor/SyncExecutor.java b/src/bitronix/tm/twopc/executor/SyncExecutor.java
index 2d86a41..f6ebc0f 100644
--- a/src/bitronix/tm/twopc/executor/SyncExecutor.java
+++ b/src/bitronix/tm/twopc/executor/SyncExecutor.java
@@ -39,10 +39,6 @@ public class SyncExecutor implements Executor {
         return true;
     }
 
-    public boolean isUsable() {
-        return true;
-    }
-
     public void shutdown() {
     }
 }
diff --git a/src/bitronix/tm/utils/CollectionUtils.java b/src/bitronix/tm/utils/CollectionUtils.java
index 2763743..5a46357 100644
--- a/src/bitronix/tm/utils/CollectionUtils.java
+++ b/src/bitronix/tm/utils/CollectionUtils.java
@@ -37,10 +37,8 @@ public class CollectionUtils {
      * @param toBeFound the object to search for.
      * @return true if the collection contains the object, false otherwise.
      */
-    public static boolean containsByIdentity(Collection collection, Object toBeFound) {
-        Iterator it = collection.iterator();
-        while (it.hasNext()) {
-            Object o =  it.next();
+    public static boolean containsByIdentity(Collection<?> collection, Object toBeFound) {
+        for (Object o : collection) {
             if (o == toBeFound)
                 return true;
         }
diff --git a/src/bitronix/tm/utils/CryptoEngine.java b/src/bitronix/tm/utils/CryptoEngine.java
index 8c7e1a3..d10c2d4 100644
--- a/src/bitronix/tm/utils/CryptoEngine.java
+++ b/src/bitronix/tm/utils/CryptoEngine.java
@@ -23,14 +23,19 @@ package bitronix.tm.utils;
 import bitronix.tm.Version;
 import bitronix.tm.internal.BitronixRuntimeException;
 
-import javax.crypto.*;
-import javax.crypto.spec.DESKeySpec;
+import javax.crypto.Cipher;
+import javax.crypto.CipherInputStream;
+import javax.crypto.CipherOutputStream;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SecretKey;
+import javax.crypto.SecretKeyFactory;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
 import java.security.spec.InvalidKeySpecException;
+import java.security.spec.KeySpec;
 
 /**
  * <p>Simple crypto helper that uses symetric keys to crypt and decrypt resources passwords.</p>
@@ -40,7 +45,7 @@ import java.security.spec.InvalidKeySpecException;
 public class CryptoEngine {
 
     private static final int LONG_SIZE_IN_BYTES = 8;
-    private static final String CRYPTO_PASSWORD = "B1tr0n!+";
+    private static final String CRYPTO_PASSWORD = "B1tr0n!+B1tr0n!+B1tr0n!+";
 
     /**
      * Crypt the given data using the given cipher.
@@ -57,7 +62,7 @@ public class CryptoEngine {
      * @throws IOException if an I/O error occurs.
      */
     public static String crypt(String cipher, String data) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeySpecException, IOException {
-        byte[] prependedBytes = Encoder.longToBytes(System.currentTimeMillis());
+        byte[] prependedBytes = Encoder.longToBytes(MonotonicClock.currentTimeMillis());
 
         byte[] dataBytes = data.getBytes("US-ASCII");
         byte[] toCrypt = new byte[LONG_SIZE_IN_BYTES + dataBytes.length];
@@ -65,9 +70,9 @@ public class CryptoEngine {
         System.arraycopy(dataBytes, 0, toCrypt, LONG_SIZE_IN_BYTES, dataBytes.length);
 
 
-        DESKeySpec desKeySpec = new DESKeySpec(CRYPTO_PASSWORD.getBytes());
+        KeySpec keySpec = loadKeySpec(CRYPTO_PASSWORD.getBytes(), cipher);
         SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(cipher);
-        SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
+        SecretKey secretKey = keyFactory.generateSecret(keySpec);
 
         Cipher desCipher = Cipher.getInstance(cipher);
         desCipher.init(Cipher.ENCRYPT_MODE, secretKey);
@@ -82,7 +87,16 @@ public class CryptoEngine {
         return Base64.encodeBytes(cypherBytes);
     }
 
-    /**
+    private static KeySpec loadKeySpec(byte[] bytes, String cipher) throws NoSuchAlgorithmException {
+        try {
+            Class<?> aClass = ClassLoaderUtils.loadClass("javax.crypto.spec." + cipher + "KeySpec");
+            return (KeySpec) aClass.getConstructor(byte[].class).newInstance(bytes);
+        } catch (Exception e) {
+            throw new NoSuchAlgorithmException("No such KeySpec: " + cipher, e);
+        }
+    }
+
+  /**
      * Decrypt using the given cipher the given base64-encoded, crypted data.
      * @param cipher the cypther to use.
      * @param data the base64-encoded data to decrypt.
@@ -96,9 +110,9 @@ public class CryptoEngine {
      * @throws IOException if an I/O error occurs.
      */
     public static String decrypt(String cipher, String data) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeySpecException, IOException {
-        DESKeySpec desKeySpec = new DESKeySpec(CRYPTO_PASSWORD.getBytes());
+        KeySpec keySpec = loadKeySpec(CRYPTO_PASSWORD.getBytes(), cipher);
         SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(cipher);
-        SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
+        SecretKey secretKey = keyFactory.generateSecret(keySpec);
 
         Cipher desCipher = Cipher.getInstance(cipher);
         desCipher.init(Cipher.DECRYPT_MODE, secretKey);
diff --git a/src/bitronix/tm/utils/Decoder.java b/src/bitronix/tm/utils/Decoder.java
index 2163ed0..4b6f381 100644
--- a/src/bitronix/tm/utils/Decoder.java
+++ b/src/bitronix/tm/utils/Decoder.java
@@ -132,13 +132,13 @@ public class Decoder {
      * @param resources a list of {@link bitronix.tm.resource.common.XAResourceHolder}s.
      * @return a String representation of the list.
      */
-    public static String collectResourcesNames(Collection resources) {
-        StringBuffer sb = new StringBuffer();
+    public static String collectResourcesNames(Collection<XAResourceHolderState> resources) {
+        StringBuilder sb = new StringBuilder();
         sb.append("[");
 
-        Iterator it = resources.iterator();
+        Iterator<XAResourceHolderState> it = resources.iterator();
         while (it.hasNext()) {
-            XAResourceHolderState resourceHolderState = (XAResourceHolderState) it.next();
+            XAResourceHolderState resourceHolderState = it.next();
             sb.append(resourceHolderState.getUniqueName());
 
             if (it.hasNext())
diff --git a/src/bitronix/tm/twopc/executor/SyncExecutor.java b/src/bitronix/tm/utils/DefaultExceptionAnalyzer.java
similarity index 58%
copy from src/bitronix/tm/twopc/executor/SyncExecutor.java
copy to src/bitronix/tm/utils/DefaultExceptionAnalyzer.java
index 2d86a41..2792cf4 100644
--- a/src/bitronix/tm/twopc/executor/SyncExecutor.java
+++ b/src/bitronix/tm/utils/DefaultExceptionAnalyzer.java
@@ -1,7 +1,7 @@
 /*
  * Bitronix Transaction Manager
  *
- * Copyright (c) 2010, Bitronix Software.
+ * Copyright (c) 2011, Bitronix Software.
  *
  * This copyrighted material is made available to anyone wishing to use, modify,
  * copy, or redistribute it subject to the terms and conditions of the GNU
@@ -18,31 +18,29 @@
  * 51 Franklin Street, Fifth Floor
  * Boston, MA 02110-1301 USA
  */
-package bitronix.tm.twopc.executor;
+package bitronix.tm.utils;
+
+import javax.transaction.xa.XAException;
 
 /**
- * This implementation executes submitted jobs synchronously.
+ * Default implementation of {@link ExceptionAnalyzer}.
  *
  * @author lorban
  */
-public class SyncExecutor implements Executor {
-
-    public Object submit(Job job) {
-        job.run();
-        return new Object();
-    }
-
-    public void waitFor(Object future, long timeout) {
-    }
-
-    public boolean isDone(Object future) {
-        return true;
-    }
+public class DefaultExceptionAnalyzer implements ExceptionAnalyzer {
 
-    public boolean isUsable() {
-        return true;
+    public String extractExtraXAExceptionDetails(XAException ex) {
+        if (ex.getClass().getName().equals("oracle.jdbc.xa.OracleXAException")) {
+            try {
+                return "ORA-" + PropertyUtils.getProperty(ex, "oracleError");
+            } catch (PropertyException e) {
+                return null;
+            }
+        }
+        return null;
     }
 
     public void shutdown() {
     }
+
 }
diff --git a/test/bitronix/tm/utils/CryptoEngineTest.java b/src/bitronix/tm/utils/ExceptionAnalyzer.java
similarity index 59%
copy from test/bitronix/tm/utils/CryptoEngineTest.java
copy to src/bitronix/tm/utils/ExceptionAnalyzer.java
index 04de7ad..0ac7be5 100644
--- a/test/bitronix/tm/utils/CryptoEngineTest.java
+++ b/src/bitronix/tm/utils/ExceptionAnalyzer.java
@@ -1,7 +1,7 @@
 /*
  * Bitronix Transaction Manager
  *
- * Copyright (c) 2010, Bitronix Software.
+ * Copyright (c) 2011, Bitronix Software.
  *
  * This copyrighted material is made available to anyone wishing to use, modify,
  * copy, or redistribute it subject to the terms and conditions of the GNU
@@ -20,21 +20,20 @@
  */
 package bitronix.tm.utils;
 
-import junit.framework.TestCase;
+import javax.transaction.xa.XAException;
 
 /**
+ * Exception analyzers are used to extract non-standard information from vendor exceptions.
  *
  * @author lorban
  */
-public class CryptoEngineTest extends TestCase {
+public interface ExceptionAnalyzer extends Service {
 
-    public void testCrypt() throws Exception {
-    	String textToCrypt = "java";
-
-    	String cypherText = CryptoEngine.crypt("DES", textToCrypt);
-        String decryptedText = CryptoEngine.decrypt("DES", cypherText);
-
-        assertEquals(textToCrypt, decryptedText);
-    }
+    /**
+     * Extract information from a vendor's XAException that isn't available through standard APIs.
+     * @param ex the {@link XAException} to analyze.
+     * @return extra error details as a human-readable string, or null if nothing extra was found.
+     */
+    public String extractExtraXAExceptionDetails(XAException ex);
 
 }
diff --git a/test/bitronix/tm/utils/CryptoEngineTest.java b/src/bitronix/tm/utils/ExceptionUtils.java
similarity index 58%
copy from test/bitronix/tm/utils/CryptoEngineTest.java
copy to src/bitronix/tm/utils/ExceptionUtils.java
index 04de7ad..7dbffdb 100644
--- a/test/bitronix/tm/utils/CryptoEngineTest.java
+++ b/src/bitronix/tm/utils/ExceptionUtils.java
@@ -20,21 +20,29 @@
  */
 package bitronix.tm.utils;
 
-import junit.framework.TestCase;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 
 /**
+ * Exception related utilities.
  *
- * @author lorban
+ * @author Stephane Nicoll
  */
-public class CryptoEngineTest extends TestCase {
+public final class ExceptionUtils {
 
-    public void testCrypt() throws Exception {
-    	String textToCrypt = "java";
-
-    	String cypherText = CryptoEngine.crypt("DES", textToCrypt);
-        String decryptedText = CryptoEngine.decrypt("DES", cypherText);
-
-        assertEquals(textToCrypt, decryptedText);
+    private ExceptionUtils() {
     }
 
+    /**
+     * Returns the stack trace of the specified {@link Throwable}.
+     *
+     * @param t the throwable
+     * @return the string representation of the stack trace
+     */
+    public static String getStackTrace(Throwable t) {
+        final StringWriter sw = new StringWriter();
+        final PrintWriter pw = new PrintWriter(sw, true);
+        t.printStackTrace(pw);
+        return sw.getBuffer().toString();
+    }
 }
diff --git a/src/bitronix/tm/utils/ManagementRegistrar.java b/src/bitronix/tm/utils/ManagementRegistrar.java
index 11d7dd6..9b9892b 100644
--- a/src/bitronix/tm/utils/ManagementRegistrar.java
+++ b/src/bitronix/tm/utils/ManagementRegistrar.java
@@ -20,47 +20,25 @@
  */
 package bitronix.tm.utils;
 
+import bitronix.tm.TransactionManagerServices;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.lang.reflect.Method;
-import java.lang.reflect.Constructor;
-
-import bitronix.tm.internal.BitronixRuntimeException;
-import bitronix.tm.TransactionManagerServices;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
 
 /**
- * Simple JMX facade. In case there is no JMX implementation available, calling methods of this class have no effect.
+ * Simple JMX facade. In case JMX is disabled, calling methods of this class have no effect.
  *
  * @author lorban
  */
-public class ManagementRegistrar {
+public final class ManagementRegistrar {
 
     private final static Logger log = LoggerFactory.getLogger(ManagementRegistrar.class);
-    private static Object mbeanServer;
-    private static Method registerMBeanMethod;
-    private static Method unregisterMBeanMethod;
-    private static Constructor objectNameConstructor;
-
-    static {
-        boolean enableJmx = !TransactionManagerServices.getConfiguration().isDisableJmx();
 
-        if (enableJmx) {
-            try {
-                Class managementFactoryClass = ClassLoaderUtils.loadClass("java.lang.management.ManagementFactory");
-                Method getPlatformMBeanServerMethod = managementFactoryClass.getMethod("getPlatformMBeanServer", (Class[]) null);
-                mbeanServer = getPlatformMBeanServerMethod.invoke(managementFactoryClass, (Object[]) null);
 
-                Class objectNameClass = ClassLoaderUtils.loadClass("javax.management.ObjectName");
-                objectNameConstructor = objectNameClass.getConstructor(new Class[] {String.class});
-
-                registerMBeanMethod = mbeanServer.getClass().getMethod("registerMBean", new Class[] {Object.class, objectNameClass});
-                unregisterMBeanMethod = mbeanServer.getClass().getMethod("unregisterMBean", new Class[] {objectNameClass});
-            } catch (Exception ex) {
-                // no management in case an exception is thrown
-                mbeanServer = null;
-            }
-        } // if (enableJmx)
+    private ManagementRegistrar() {
     }
 
     /**
@@ -78,12 +56,12 @@ public class ManagementRegistrar {
      * @param obj the management object.
      */
     public static void register(String name, Object obj) {
+        MBeanServer mbeanServer = getMBeanServer();
         if (mbeanServer == null)
             return;
 
         try {
-            Object objName = buildObjectName(name);
-            mbeanServerCall(registerMBeanMethod, new Object[] {obj, objName});
+            mbeanServer.registerMBean(obj, new ObjectName(name));
         } catch (Exception ex) {
             log.warn("cannot register object with name " + name, ex);
         }
@@ -94,33 +72,22 @@ public class ManagementRegistrar {
      * @param name the name of the object.
      */
     public static void unregister(String name) {
+        MBeanServer mbeanServer = getMBeanServer();
         if (mbeanServer == null)
             return;
 
         try {
-            Object objName = buildObjectName(name);
-            mbeanServerCall(unregisterMBeanMethod, new Object[] {objName});
+            mbeanServer.unregisterMBean(new ObjectName(name));
         } catch (Exception ex) {
             log.warn("cannot unregister object with name " + name, ex);
         }
     }
 
-
-    /* internal impl */
-
-    private static Object buildObjectName(String name) {
-        try {
-            return objectNameConstructor.newInstance(new Object[] {name});
-        } catch (Exception ex) {
-            throw new BitronixRuntimeException("cannot build ObjectName with name=" + name, ex);
-        }
-    }
-
-    private static void mbeanServerCall(Method method, Object[] params) {
-        try {
-            method.invoke(mbeanServer, params);
-        } catch (Exception ex) {
-            throw new BitronixRuntimeException("cannot call method '" + method.getName() + "'", ex);
+    private static MBeanServer getMBeanServer() {
+        if (!TransactionManagerServices.getConfiguration().isDisableJmx()) {
+            return ManagementFactory.getPlatformMBeanServer();
+        } else {
+            return null;
         }
     }
 
diff --git a/src/bitronix/tm/twopc/executor/BackportConcurrentExecutor.java b/src/bitronix/tm/utils/MonotonicClock.java
similarity index 52%
rename from src/bitronix/tm/twopc/executor/BackportConcurrentExecutor.java
rename to src/bitronix/tm/utils/MonotonicClock.java
index 279889a..168849d 100644
--- a/src/bitronix/tm/twopc/executor/BackportConcurrentExecutor.java
+++ b/src/bitronix/tm/utils/MonotonicClock.java
@@ -1,7 +1,7 @@
 /*
  * Bitronix Transaction Manager
  *
- * Copyright (c) 2010, Bitronix Software.
+ * Copyright (c) 2011, Bitronix Software.
  *
  * This copyrighted material is made available to anyone wishing to use, modify,
  * copy, or redistribute it subject to the terms and conditions of the GNU
@@ -18,24 +18,29 @@
  * 51 Franklin Street, Fifth Floor
  * Boston, MA 02110-1301 USA
  */
-package bitronix.tm.twopc.executor;
+package bitronix.tm.utils;
+
+import java.util.concurrent.atomic.AtomicLong;
 
 /**
- * Abstraction of the <code>java.util.concurrent</code>
- * <a href="http://www.dcl.mathcs.emory.edu/util/backport-util-concurrent/">backport</a> implementation.
+ * A System.currentTimeMillis() replacement which guarantees monotonic time increment.
  *
  * @author lorban
  */
-public class BackportConcurrentExecutor extends ConcurrentExecutor {
-
-    private final static String[] implementations = {
-        "edu.emory.mathcs.backport.java.util.concurrent.Executors",
-        "edu.emory.mathcs.backport.java.util.concurrent.ExecutorService",
-        "edu.emory.mathcs.backport.java.util.concurrent.Future",
-        "edu.emory.mathcs.backport.java.util.concurrent.TimeUnit"
-    };
+public class MonotonicClock {
+    private static final AtomicLong lastTime = new AtomicLong();
 
-    public BackportConcurrentExecutor() {
-        super(implementations);
+    /**
+     * Return the current time in milliseconds, guaranteeing monotonic time increment.
+     * @return the current time in milliseconds.
+     */
+    public static long currentTimeMillis() {
+        long now = System.nanoTime() / 1000000;
+        long time = lastTime.get();
+        if (now > time) {
+            lastTime.compareAndSet(time, now);
+            return lastTime.get();
+        }
+        return time;
     }
 }
diff --git a/src/bitronix/tm/utils/Scheduler.java b/src/bitronix/tm/utils/Scheduler.java
index b09e087..ad69dc0 100644
--- a/src/bitronix/tm/utils/Scheduler.java
+++ b/src/bitronix/tm/utils/Scheduler.java
@@ -29,43 +29,38 @@ import java.util.*;
  *
  * @author lorban
  */
-public class Scheduler {
+public class Scheduler<T> implements Iterable<T> {
 
-    public static final int DEFAULT_POSITION = 0;
-    public static final int ALWAYS_FIRST_POSITION = Integer.MIN_VALUE;
-    public static final int ALWAYS_LAST_POSITION = Integer.MAX_VALUE;
+    public static final Integer DEFAULT_POSITION = 0;
+    public static final Integer ALWAYS_FIRST_POSITION = Integer.MIN_VALUE;
+    public static final Integer ALWAYS_LAST_POSITION = Integer.MAX_VALUE;
 
-    public static final Object DEFAULT_POSITION_KEY = new Integer(DEFAULT_POSITION);
-    public static final Object ALWAYS_FIRST_POSITION_KEY = new Integer(ALWAYS_FIRST_POSITION);
-    public static final Object ALWAYS_LAST_POSITION_KEY = new Integer(ALWAYS_LAST_POSITION);
-
-    private List keys = new ArrayList();
-    private Map objects = new TreeMap();
+    private List<Integer> keys = new ArrayList<Integer>();
+    private Map<Integer, List<T>> objects = new TreeMap<Integer, List<T>>();
     private int size = 0;
 
 
     public Scheduler() {
     }
 
-    public synchronized void add(Object obj, int position) {
-        Integer key = new Integer(position);
-        List synchronizationsList = (List) objects.get(key);
-        if (synchronizationsList == null) {
-            if (!keys.contains(key)) {
-                keys.add(key);
+    public synchronized void add(T obj, Integer position) {
+        List<T> list = objects.get(position);
+        if (list == null) {
+            if (!keys.contains(position)) {
+                keys.add(position);
                 Collections.sort(keys);
             }
-            synchronizationsList = new ArrayList();
-            objects.put(key, synchronizationsList);
+            list = new ArrayList<T>();
+            objects.put(position, list);
         }
-        synchronizationsList.add(obj);
+        list.add(obj);
         size++;
     }
 
-    public synchronized void remove(Object obj) {
-        Iterator it = iterator();
+    public synchronized void remove(T obj) {
+        Iterator<T> it = iterator();
         while (it.hasNext()) {
-            Object o = it.next();
+            T o = it.next();
             if (o == obj) {
                 it.remove();
                 return;
@@ -74,22 +69,22 @@ public class Scheduler {
         throw new NoSuchElementException("no such element: " + obj);
     }
 
-    public synchronized SortedSet getNaturalOrderPositions() {
-        return new TreeSet(objects.keySet());
+    public synchronized SortedSet<Integer> getNaturalOrderPositions() {
+        return new TreeSet<Integer>(objects.keySet());
     }
 
-    public synchronized SortedSet getReverseOrderPositions() {
-        TreeSet result = new TreeSet(Collections.reverseOrder());
+    public synchronized SortedSet<Integer> getReverseOrderPositions() {
+        TreeSet<Integer> result = new TreeSet<Integer>(Collections.reverseOrder());
         result.addAll(getNaturalOrderPositions());
         return result;
     }
 
-    public synchronized List getByNaturalOrderForPosition(Object positionKey) {
-        return (List) objects.get(positionKey);
+    public synchronized List<T> getByNaturalOrderForPosition(Integer position) {
+        return objects.get(position);
     }
 
-    public synchronized List getByReverseOrderForPosition(Object positionKey) {
-        List result = new ArrayList(getByNaturalOrderForPosition(positionKey));
+    public synchronized List<T> getByReverseOrderForPosition(Integer position) {
+        List<T> result = new ArrayList<T>(getByNaturalOrderForPosition(position));
         Collections.reverse(result);
         return result;
     }
@@ -98,11 +93,11 @@ public class Scheduler {
         return size;
     }
 
-    public Iterator iterator() {
+    public Iterator<T> iterator() {
         return new SchedulerNaturalOrderIterator();
     }
 
-    public Iterator reverseIterator() {
+    public Iterator<T> reverseIterator() {
         return new SchedulerReverseOrderIterator();
     }
 
@@ -113,9 +108,9 @@ public class Scheduler {
     /**
      * This iterator supports in-flight updates of the iterated object.
      */
-    private final class SchedulerNaturalOrderIterator implements Iterator {
+    private final class SchedulerNaturalOrderIterator implements Iterator<T> {
         private int nextKeyIndex;
-        private List objectsOfCurrentKey;
+        private List<T> objectsOfCurrentKey;
         private int objectsOfCurrentKeyIndex;
 
         private SchedulerNaturalOrderIterator() {
@@ -132,7 +127,7 @@ public class Scheduler {
                 if (objectsOfCurrentKey.size() == 0) {
                     // there are no more objects in the current position's list -> remove it
                     nextKeyIndex--;
-                    Object key = Scheduler.this.keys.get(nextKeyIndex);
+                    Integer key = Scheduler.this.keys.get(nextKeyIndex);
                     Scheduler.this.keys.remove(nextKeyIndex);
                     Scheduler.this.objects.remove(key);
                     objectsOfCurrentKey = null;
@@ -148,8 +143,8 @@ public class Scheduler {
 
                     if (nextKeyIndex < Scheduler.this.keys.size()) {
                         // there is another position after this one
-                        Integer currentKey = (Integer) Scheduler.this.keys.get(nextKeyIndex++);
-                        objectsOfCurrentKey = (List) Scheduler.this.objects.get(currentKey);
+                        Integer currentKey = Scheduler.this.keys.get(nextKeyIndex++);
+                        objectsOfCurrentKey = Scheduler.this.objects.get(currentKey);
                         objectsOfCurrentKeyIndex = 0;
                         return true;
                     } else {
@@ -163,7 +158,7 @@ public class Scheduler {
             }
         }
 
-        public Object next() {
+        public T next() {
             synchronized (Scheduler.this) {
                 if (!hasNext())
                     throw new NoSuchElementException("iterator bounds reached");
@@ -175,9 +170,9 @@ public class Scheduler {
     /**
      * This iterator supports in-flight updates of the iterated object.
      */
-    private final class SchedulerReverseOrderIterator implements Iterator {
+    private final class SchedulerReverseOrderIterator implements Iterator<T> {
         private int nextKeyIndex;
-        private List objectsOfCurrentKey;
+        private List<T> objectsOfCurrentKey;
         private int objectsOfCurrentKeyIndex;
 
         private SchedulerReverseOrderIterator() {
@@ -193,7 +188,7 @@ public class Scheduler {
                 objectsOfCurrentKey.remove(objectsOfCurrentKeyIndex);
                 if (objectsOfCurrentKey.size() == 0) {
                     // there are no more objects in the current position's list -> remove it
-                    Object key = Scheduler.this.keys.get(nextKeyIndex+1);
+                    Integer key = Scheduler.this.keys.get(nextKeyIndex+1);
                     Scheduler.this.keys.remove(nextKeyIndex+1);
                     Scheduler.this.objects.remove(key);
                     objectsOfCurrentKey = null;
@@ -209,8 +204,8 @@ public class Scheduler {
 
                     if (nextKeyIndex >= 0) {
                         // there is another position after this one
-                        Integer currentKey = (Integer) Scheduler.this.keys.get(nextKeyIndex--);
-                        objectsOfCurrentKey = (List) Scheduler.this.objects.get(currentKey);
+                        Integer currentKey = Scheduler.this.keys.get(nextKeyIndex--);
+                        objectsOfCurrentKey = Scheduler.this.objects.get(currentKey);
                         objectsOfCurrentKeyIndex = 0;
                         return true;
                     } else {
@@ -224,7 +219,7 @@ public class Scheduler {
             }
         }
 
-        public Object next() {
+        public T next() {
             synchronized (Scheduler.this) {
                 if (!hasNext())
                     throw new NoSuchElementException("iterator bounds reached");
diff --git a/src/bitronix/tm/internal/TransactionTimeoutException.java b/src/bitronix/tm/utils/StackTrace.java
similarity index 70%
rename from src/bitronix/tm/internal/TransactionTimeoutException.java
rename to src/bitronix/tm/utils/StackTrace.java
index 45956d8..69df4de 100644
--- a/src/bitronix/tm/internal/TransactionTimeoutException.java
+++ b/src/bitronix/tm/utils/StackTrace.java
@@ -18,19 +18,12 @@
  * 51 Franklin Street, Fifth Floor
  * Boston, MA 02110-1301 USA
  */
-package bitronix.tm.internal;
+package bitronix.tm.utils;
 
 /**
- * Thrown when a transaction times out.
+ * A dummy {@link Throwable} used to build a call stack.
  *
- * @author lorban
+ * @author Ludovic Orban
  */
-public class TransactionTimeoutException extends Exception {
-    public TransactionTimeoutException(String message) {
-        super(message);
-    }
-
-    public TransactionTimeoutException(String message, Throwable cause) {
-        super(message, cause);
-    }
+public class StackTrace extends Throwable {
 }
diff --git a/src/bitronix/tm/utils/Uid.java b/src/bitronix/tm/utils/Uid.java
index 3915e6f..62f9291 100644
--- a/src/bitronix/tm/utils/Uid.java
+++ b/src/bitronix/tm/utils/Uid.java
@@ -29,9 +29,9 @@ import java.util.Arrays;
  */
 public final class Uid {
 
-    private byte[] array;
-    private int hashCodeValue;
-    private String toStringValue;
+    private final byte[] array;
+    private final int hashCodeValue;
+    private final String toStringValue;
 
     public Uid(byte[] array) {
         this.array = new byte[array.length];
diff --git a/src/bitronix/tm/utils/UidGenerator.java b/src/bitronix/tm/utils/UidGenerator.java
index 78d87f2..b388285 100644
--- a/src/bitronix/tm/utils/UidGenerator.java
+++ b/src/bitronix/tm/utils/UidGenerator.java
@@ -23,6 +23,8 @@ package bitronix.tm.utils;
 import bitronix.tm.BitronixXid;
 import bitronix.tm.TransactionManagerServices;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 /**
  * Helper that offers UID generation (GTRID, XID, sequences) needed by the transaction manager.
  * <p>Generated UIDs are at most 64 bytes long and are made of 3 subparts: the current time in milliseconds since
@@ -35,15 +37,15 @@ import bitronix.tm.TransactionManagerServices;
  */
 public class UidGenerator {
 
-    private static int sequenceNumber = 0;
+    private final static AtomicInteger sequenceGenerator = new AtomicInteger();
 
     /**
      * Generate a UID, globally unique. This method relies on the configured serverId for network uniqueness.
      * @return the generated UID.
      */
     public static Uid generateUid() {
-        byte[] timestamp = Encoder.longToBytes(System.currentTimeMillis());
-        byte[] sequence = Encoder.intToBytes(getNextSequenceNumber());
+        byte[] timestamp = Encoder.longToBytes(MonotonicClock.currentTimeMillis());
+        byte[] sequence = Encoder.intToBytes(sequenceGenerator.incrementAndGet());
         byte[] serverId = TransactionManagerServices.getConfiguration().buildServerIdArray();
 
         int uidLength = serverId.length + timestamp.length + sequence.length;
@@ -57,15 +59,6 @@ public class UidGenerator {
     }
 
     /**
-     * Atomically generate general-purpose sequence numbers starting at 0. The counter is reset at every
-     * JVM startup.
-     * @return a sequence number unique for the lifespan of this JVM.
-     */
-    public static synchronized int getNextSequenceNumber() {
-        return sequenceNumber++;
-    }
-
-    /**
      * Generate a XID with the specified globalTransactionId.
      * @param gtrid the GTRID to use to generate the Xid.
      * @return the generated Xid.
diff --git a/test/bitronix/tm/ConfigurationTest.java b/test/bitronix/tm/ConfigurationTest.java
index 09c3d4a..0ff8eba 100644
--- a/test/bitronix/tm/ConfigurationTest.java
+++ b/test/bitronix/tm/ConfigurationTest.java
@@ -95,10 +95,13 @@ public class ConfigurationTest extends TestCase {
     }
 
     public void testToString() {
-        final String expectation = "a Configuration with [allowMultipleLrc=false, asynchronous2Pc=false, backgroundRecoveryInterval=1," +
-                " backgroundRecoveryIntervalSeconds=60, currentNodeOnlyRecovery=true, defaultTransactionTimeout=60," +
-                " disableJmx=false, filterLogStatus=false, forceBatchingEnabled=true, forcedWriteEnabled=true, gracefulShutdownInterval=10," +
-                " jndiTransactionSynchronizationRegistryName=java:comp/TransactionSynchronizationRegistry, jndiUserTransactionName=java:comp/UserTransaction, journal=disk," +
+        final String expectation = "a Configuration with [allowMultipleLrc=false, asynchronous2Pc=false," +
+                " backgroundRecoveryInterval=1, backgroundRecoveryIntervalSeconds=60, currentNodeOnlyRecovery=true," +
+                " debugZeroResourceTransaction=false, defaultTransactionTimeout=60, disableJmx=false," +
+                " exceptionAnalyzer=null, filterLogStatus=false," +
+                " forceBatchingEnabled=true, forcedWriteEnabled=true, gracefulShutdownInterval=10," +
+                " jndiTransactionSynchronizationRegistryName=java:comp/TransactionSynchronizationRegistry," +
+                " jndiUserTransactionName=java:comp/UserTransaction, journal=disk," +
                 " logPart1Filename=target/btm1.tlog, logPart2Filename=target/btm2.tlog, maxLogSizeInMb=2," +
                 " resourceConfigurationFilename=null, serverId=null, skipCorruptedLogs=false," +
                 " warnAboutZeroResourceTransaction=true]";
diff --git a/test/bitronix/tm/ExceptionAnalyzerTest.java b/test/bitronix/tm/ExceptionAnalyzerTest.java
new file mode 100644
index 0000000..f9d88de
--- /dev/null
+++ b/test/bitronix/tm/ExceptionAnalyzerTest.java
@@ -0,0 +1,59 @@
+/*
+ * Bitronix Transaction Manager
+ *
+ * Copyright (c) 2010, Bitronix Software.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package bitronix.tm;
+
+import bitronix.tm.utils.DefaultExceptionAnalyzer;
+import bitronix.tm.utils.ExceptionAnalyzer;
+import junit.framework.TestCase;
+
+import javax.transaction.xa.XAException;
+
+/**
+ *
+ * @author lorban
+ */
+public class ExceptionAnalyzerTest extends TestCase {
+
+    public void testExceptionAnalyzer() throws Exception {
+        assertEquals(DefaultExceptionAnalyzer.class, TransactionManagerServices.getExceptionAnalyzer().getClass());
+
+        TransactionManagerServices.clear();
+
+        TransactionManagerServices.getConfiguration().setExceptionAnalyzer("nonexistentClass");
+        assertEquals(DefaultExceptionAnalyzer.class, TransactionManagerServices.getExceptionAnalyzer().getClass());
+
+        TransactionManagerServices.clear();
+
+        TransactionManagerServices.getConfiguration().setExceptionAnalyzer(TestExceptionAnalyzer.class.getName());
+        assertEquals(TestExceptionAnalyzer.class, TransactionManagerServices.getExceptionAnalyzer().getClass());
+    }
+    
+    public static class TestExceptionAnalyzer implements ExceptionAnalyzer {
+
+        public String extractExtraXAExceptionDetails(XAException ex) {
+            return "";
+        }
+
+        public void shutdown() {
+        }
+    }
+
+}
diff --git a/test/bitronix/tm/JtaTest.java b/test/bitronix/tm/JtaTest.java
index 7bcb4db..8e54655 100644
--- a/test/bitronix/tm/JtaTest.java
+++ b/test/bitronix/tm/JtaTest.java
@@ -20,6 +20,7 @@
  */
 package bitronix.tm;
 
+import bitronix.tm.utils.DefaultExceptionAnalyzer;
 import junit.framework.TestCase;
 
 import javax.transaction.*;
@@ -44,6 +45,8 @@ public class JtaTest extends TestCase {
     private BitronixTransactionManager btm;
 
     protected void setUp() throws Exception {
+        TransactionManagerServices.getConfiguration().setGracefulShutdownInterval(1);
+        TransactionManagerServices.getConfiguration().setExceptionAnalyzer(DefaultExceptionAnalyzer.class.getName());
         btm = TransactionManagerServices.getTransactionManager();
     }
 
@@ -53,7 +56,7 @@ public class JtaTest extends TestCase {
 
     public void testTransactionManagerGetTransaction() throws Exception {
         assertNull(btm.getTransaction());
-        
+
         btm.begin();
         assertNotNull(btm.getTransaction());
 
@@ -157,7 +160,7 @@ public class JtaTest extends TestCase {
 
         btm.begin();
         assertEquals(Status.STATUS_ACTIVE, btm.getStatus());
-        
+
         final Transaction tx = btm.getTransaction();
 
         // commit on a different thread
@@ -180,12 +183,28 @@ public class JtaTest extends TestCase {
 
     public void testBeforeCompletionAddsExtraSynchronizationInDifferentPriority() throws Exception {
         btm.begin();
-        
+
         btm.getCurrentTransaction().getSynchronizationScheduler().add(new SynchronizationRegisteringSynchronization(btm.getCurrentTransaction()), 5);
 
         btm.commit();
     }
 
+    public void testDebugZeroResourceTransactionDisabled() throws Exception {
+        btm.begin();
+        assertNull("Activation stack trace must not be available by default.", btm.getCurrentTransaction().getActivationStackTrace());
+        btm.commit();
+    }
+
+    public void testDebugZeroResourceTransaction() throws Exception {
+        btm.shutdown(); // necessary to change the configuration
+        TransactionManagerServices.getConfiguration().setDebugZeroResourceTransaction(true);
+        btm = TransactionManagerServices.getTransactionManager();
+
+        btm.begin();
+        assertNotNull("Activation stack trace must be available.", btm.getCurrentTransaction().getActivationStackTrace());
+        btm.commit();
+    }
+
     public void testBeforeCompletionRuntimeExceptionRethrown() throws Exception {
         btm.begin();
 
@@ -200,10 +219,13 @@ public class JtaTest extends TestCase {
         try {
             btm.commit();
             fail("expected runtime exception");
-        } catch (RuntimeException ex) {
-            assertEquals("beforeCompletion failure", ex.getMessage());
-            btm.rollback();
+        } catch (RollbackException ex) {
+            assertEquals(RuntimeException.class, ex.getCause().getClass());
+            assertEquals("beforeCompletion failure", ex.getCause().getMessage());
         }
+
+        btm.begin();
+        btm.commit();
      }
 
     private class SynchronizationRegisteringSynchronization implements Synchronization {
@@ -246,4 +268,4 @@ public class JtaTest extends TestCase {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/test/bitronix/tm/journal/DiskJournalTest.java b/test/bitronix/tm/journal/DiskJournalTest.java
index 05eb083..cbc8756 100644
--- a/test/bitronix/tm/journal/DiskJournalTest.java
+++ b/test/bitronix/tm/journal/DiskJournalTest.java
@@ -114,6 +114,18 @@ public class DiskJournalTest extends TestCase {
         journal.log(Status.STATUS_COMMITTED, gtrid2, csvToSet("name3,name1"));
         assertEquals(0, journal.collectDanglingRecords().size());
 
+        journal.log(Status.STATUS_COMMITTING, gtrid2, csvToSet("name1,name2,name3"));
+        assertEquals(1, journal.collectDanglingRecords().size());
+
+        journal.log(Status.STATUS_UNKNOWN, gtrid2, csvToSet("name2"));
+        assertEquals(1, journal.collectDanglingRecords().size());
+
+        journal.log(Status.STATUS_COMMITTED, gtrid2, csvToSet("name1"));
+        assertEquals(1, journal.collectDanglingRecords().size());
+
+        journal.log(Status.STATUS_ROLLEDBACK, gtrid2, csvToSet("name3"));
+        assertEquals(0, journal.collectDanglingRecords().size());
+
         journal.close();
     }
 
@@ -170,14 +182,6 @@ public class DiskJournalTest extends TestCase {
 
         tlr = new TransactionLogRecord(Status.STATUS_COMMITTED, 116, 28, 1220609394845L, 38266, -1380478121, uid, names, TransactionLogAppender.END_RECORD);
         assertTrue(tlr.isCrc32Correct());
-        
-        // test that removing unique names refreshes CRC32, see BTM-44
-        Set namesToRemove = new HashSet();
-        namesToRemove.add("ActiveMQ");
-
-        tlr.removeUniqueNames(namesToRemove);
-
-        assertTrue(tlr.isCrc32Correct());
     }
 
     private SortedSet csvToSet(String s) {
diff --git a/test/bitronix/tm/mock/AbstractMockJdbcTest.java b/test/bitronix/tm/mock/AbstractMockJdbcTest.java
index 41183e4..59f5492 100644
--- a/test/bitronix/tm/mock/AbstractMockJdbcTest.java
+++ b/test/bitronix/tm/mock/AbstractMockJdbcTest.java
@@ -22,7 +22,9 @@ package bitronix.tm.mock;
 
 import java.lang.reflect.Field;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 
+import bitronix.tm.journal.Journal;
 import junit.framework.TestCase;
 
 import org.slf4j.*;
@@ -76,9 +78,10 @@ public abstract class AbstractMockJdbcTest extends TestCase {
         poolingDataSource2.init();
 
         // change disk journal into mock journal
-        Field journalField = TransactionManagerServices.class.getDeclaredField("journal");
-        journalField.setAccessible(true);
-        journalField.set(TransactionManagerServices.class, new MockJournal());
+        Field field = TransactionManagerServices.class.getDeclaredField("journalRef");
+        field.setAccessible(true);
+        AtomicReference<Journal> journalRef = (AtomicReference<Journal>) field.get(TransactionManagerServices.class);
+        journalRef.set(new MockJournal());
 
         // change connection pools into mock pools
         XAPool p1 = getPool(this.poolingDataSource1);
@@ -104,7 +107,7 @@ public abstract class AbstractMockJdbcTest extends TestCase {
     private void registerPoolEventListener(XAPool pool) throws Exception {
         ArrayList connections = new ArrayList();
 
-        Iterator iterator = pool.getXAResourceHolders().iterator();
+        Iterator iterator = XAPoolHelper.getXAResourceHolders(pool).iterator();
         while (iterator.hasNext()) {
             XAStatefulHolder holder = (XAStatefulHolder) iterator.next();
             JdbcConnectionHandle connectionHandle = (JdbcConnectionHandle) holder.getConnectionHandle();
diff --git a/test/bitronix/tm/mock/AbstractMockJmsTest.java b/test/bitronix/tm/mock/AbstractMockJmsTest.java
index 7ceb0f0..a638cd9 100644
--- a/test/bitronix/tm/mock/AbstractMockJmsTest.java
+++ b/test/bitronix/tm/mock/AbstractMockJmsTest.java
@@ -21,6 +21,7 @@
 package bitronix.tm.mock;
 
 import bitronix.tm.TransactionManagerServices;
+import bitronix.tm.journal.Journal;
 import bitronix.tm.mock.events.EventRecorder;
 import bitronix.tm.mock.resource.MockJournal;
 import bitronix.tm.mock.resource.jms.MockXAConnectionFactory;
@@ -30,6 +31,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Field;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  *
@@ -63,9 +65,10 @@ public abstract class AbstractMockJmsTest extends TestCase {
         poolingConnectionFactory2.init();
 
         // change disk journal into mock journal
-        Field journalField = TransactionManagerServices.class.getDeclaredField("journal");
-        journalField.setAccessible(true);
-        journalField.set(TransactionManagerServices.class, new MockJournal());
+        Field field = TransactionManagerServices.class.getDeclaredField("journalRef");
+        field.setAccessible(true);
+        AtomicReference<Journal> journalRef = (AtomicReference<Journal>) field.get(TransactionManagerServices.class);
+        journalRef.set(new MockJournal());
 
         // start TM
         TransactionManagerServices.getTransactionManager();
diff --git a/test/bitronix/tm/mock/DelistmentTest.java b/test/bitronix/tm/mock/DelistmentTest.java
index 9cdbd0e..1e5e856 100644
--- a/test/bitronix/tm/mock/DelistmentTest.java
+++ b/test/bitronix/tm/mock/DelistmentTest.java
@@ -23,6 +23,7 @@ package bitronix.tm.mock;
 import bitronix.tm.BitronixTransactionManager;
 import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.internal.BitronixXAException;
+import bitronix.tm.journal.Journal;
 import bitronix.tm.mock.events.EventRecorder;
 import bitronix.tm.mock.events.JournalLogEvent;
 import bitronix.tm.mock.events.XAResourceEndEvent;
@@ -46,6 +47,7 @@ import java.lang.reflect.Field;
 import java.lang.reflect.Proxy;
 import java.sql.Connection;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
 
 
 public class DelistmentTest extends TestCase {
@@ -60,9 +62,10 @@ public class DelistmentTest extends TestCase {
         EventRecorder.clear();
 
         // change disk journal into mock journal
-        Field field = TransactionManagerServices.class.getDeclaredField("journal");
+        Field field = TransactionManagerServices.class.getDeclaredField("journalRef");
         field.setAccessible(true);
-        field.set(TransactionManagerServices.class, new MockJournal());
+        AtomicReference<Journal> journalRef = (AtomicReference<Journal>) field.get(TransactionManagerServices.class);
+        journalRef.set(new MockJournal());
 
         poolingDataSource1 = new PoolingDataSource();
         poolingDataSource1.setClassName(MockitoXADataSource.class.getName());
diff --git a/test/bitronix/tm/mock/JdbcPoolTest.java b/test/bitronix/tm/mock/JdbcPoolTest.java
index 63067e5..35f25ff 100644
--- a/test/bitronix/tm/mock/JdbcPoolTest.java
+++ b/test/bitronix/tm/mock/JdbcPoolTest.java
@@ -23,6 +23,7 @@ package bitronix.tm.mock;
 import bitronix.tm.TransactionManagerServices;
 import bitronix.tm.mock.resource.jdbc.MockitoXADataSource;
 import bitronix.tm.recovery.RecoveryException;
+import bitronix.tm.resource.ResourceConfigurationException;
 import bitronix.tm.resource.common.XAPool;
 import bitronix.tm.resource.jdbc.PoolingDataSource;
 import junit.framework.TestCase;
@@ -72,6 +73,18 @@ public class JdbcPoolTest extends TestCase {
         TransactionManagerServices.getTransactionManager().shutdown();        
     }
 
+    public void testObjectProperties() throws Exception {
+        pds.close();
+
+        pds = new PoolingDataSource();
+        pds.setUniqueName("pds");
+        pds.setClassName(MockitoXADataSource.class.getName());
+        pds.setMinPoolSize(1);
+        pds.setMaxPoolSize(1);
+        pds.getDriverProperties().put("uselessThing", new Object());
+        pds.init();
+    }
+
     public void testInitFailure() throws Exception {
         pds.close();
 
@@ -89,8 +102,11 @@ public class JdbcPoolTest extends TestCase {
         MockitoXADataSource.setStaticGetXAConnectionException(new SQLException("not yet started"));
         try {
             pds.init();
-        } catch (Exception e) {
-            
+            fail("expected ResourceConfigurationException");
+        } catch (ResourceConfigurationException ex) {
+            Throwable rootCause = ex.getCause().getCause();
+            assertEquals(SQLException.class, rootCause.getClass());
+            assertEquals("not yet started", rootCause.getMessage());
         }
 
         MockitoXADataSource.setStaticGetXAConnectionException(null);
diff --git a/test/bitronix/tm/mock/resource/MockJournal.java b/test/bitronix/tm/mock/resource/MockJournal.java
index e60fbe7..f8ab1e8 100644
--- a/test/bitronix/tm/mock/resource/MockJournal.java
+++ b/test/bitronix/tm/mock/resource/MockJournal.java
@@ -38,13 +38,13 @@ import java.util.Set;
  */
 public class MockJournal implements Journal {
 
-    private Map danglingRecords = new HashMap();
+    private Map<Uid, TransactionLogRecord> danglingRecords;
 
     private EventRecorder getEventRecorder() {
         return EventRecorder.getEventRecorder(this);
     }
 
-    public void log(int status, Uid gtrid, Set uniqueNames) throws IOException {
+    public void log(int status, Uid gtrid, Set<String> uniqueNames) throws IOException {
         TransactionLogRecord record = new TransactionLogRecord(status, gtrid, uniqueNames);
         if (status == Status.STATUS_COMMITTING) {
             danglingRecords.put(gtrid, record);
@@ -56,17 +56,17 @@ public class MockJournal implements Journal {
     }
 
     public void open() throws IOException {
-        danglingRecords = new HashMap();
+        danglingRecords = new HashMap<Uid, TransactionLogRecord>();
     }
 
     public void close() throws IOException {
-        danglingRecords = new HashMap();
+        danglingRecords = null;
     }
 
     public void force() throws IOException {
     }
 
-    public Map collectDanglingRecords() throws IOException {
+    public Map<Uid, TransactionLogRecord> collectDanglingRecords() throws IOException {
         return danglingRecords;
     }
 
diff --git a/test/bitronix/tm/mock/resource/jdbc/MockitoXADataSource.java b/test/bitronix/tm/mock/resource/jdbc/MockitoXADataSource.java
index 9a35e91..c316d95 100644
--- a/test/bitronix/tm/mock/resource/jdbc/MockitoXADataSource.java
+++ b/test/bitronix/tm/mock/resource/jdbc/MockitoXADataSource.java
@@ -20,7 +20,6 @@
  */
 package bitronix.tm.mock.resource.jdbc;
 
-import static org.mockito.Matchers.*;
 import static org.mockito.Mockito.*;
 
 import java.io.PrintWriter;
@@ -46,6 +45,7 @@ public class MockitoXADataSource implements XADataSource {
     private String userName;
     private String password;
     private String database;
+    private Object uselessThing;
     private List inDoubtXids = new ArrayList();
     private SQLException getXAConnectionException;
     private static SQLException staticGetXAConnectionException;
@@ -210,4 +210,12 @@ public class MockitoXADataSource implements XADataSource {
 
         return mockConnection;
     }
+
+    public Object getUselessThing() {
+        return uselessThing;
+    }
+
+    public void setUselessThing(Object uselessThing) {
+        this.uselessThing = uselessThing;
+    }
 }
diff --git a/test/bitronix/tm/recovery/RecovererTest.java b/test/bitronix/tm/recovery/RecovererTest.java
index 0e9e793..d17ae4c 100644
--- a/test/bitronix/tm/recovery/RecovererTest.java
+++ b/test/bitronix/tm/recovery/RecovererTest.java
@@ -24,6 +24,7 @@ import java.io.File;
 import java.lang.reflect.*;
 import java.sql.Connection;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 
 import javax.transaction.Status;
 import javax.transaction.xa.*;
@@ -293,12 +294,13 @@ public class RecovererTest extends TestCase {
         TransactionManagerServices.getTransactionManager().shutdown();
     }
 
-    boolean listenerExecuted = false;
+    volatile boolean listenerExecuted = false;
     public void testBackgroundRecovererSkippingInFlightTransactions() throws Exception {
         // change disk journal into mock journal
-        Field journalField = TransactionManagerServices.class.getDeclaredField("journal");
-        journalField.setAccessible(true);
-        journalField.set(TransactionManagerServices.class, new MockJournal());
+        Field field = TransactionManagerServices.class.getDeclaredField("journalRef");
+        field.setAccessible(true);
+        AtomicReference<Journal> journalRef = (AtomicReference<Journal>) field.get(TransactionManagerServices.class);
+        journalRef.set(new MockJournal());
 
         pds.setMaxPoolSize(2);
         BitronixTransactionManager btm = TransactionManagerServices.getTransactionManager();
diff --git a/test/bitronix/tm/resource/common/XAPoolHelper.java b/test/bitronix/tm/resource/common/XAPoolHelper.java
new file mode 100644
index 0000000..5d2a44b
--- /dev/null
+++ b/test/bitronix/tm/resource/common/XAPoolHelper.java
@@ -0,0 +1,14 @@
+package bitronix.tm.resource.common;
+
+import java.util.List;
+
+/**
+ * @author Ludovic Orban
+ */
+public class XAPoolHelper {
+
+    public static List<XAStatefulHolder> getXAResourceHolders(XAPool xaPool) {
+        return xaPool.getXAResourceHolders();
+    }
+
+}
diff --git a/test/bitronix/tm/timer/TaskSchedulerTest.java b/test/bitronix/tm/timer/TaskSchedulerTest.java
index 6958d53..b70d758 100644
--- a/test/bitronix/tm/timer/TaskSchedulerTest.java
+++ b/test/bitronix/tm/timer/TaskSchedulerTest.java
@@ -21,9 +21,13 @@
 package bitronix.tm.timer;
 
 import bitronix.tm.recovery.Recoverer;
+import bitronix.tm.utils.MonotonicClock;
 import junit.framework.TestCase;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -31,11 +35,23 @@ import java.util.Date;
  * @author lorban
  */
 public class TaskSchedulerTest extends TestCase {
-    
-    public void testRecoveryTask() throws Exception {
-        TaskScheduler ts = new TaskScheduler();
+
+    private TaskScheduler ts;
+
+    @Override
+    protected void setUp() throws Exception {
+        ts = new TaskScheduler();
         ts.start();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        assertEquals(0, ts.countTasksQueued());
+        ts.shutdown();
+    }
+
 
+    public void testRecoveryTask() throws Exception {
         Recoverer recoverer = new Recoverer();
         ts.scheduleRecovery(recoverer, new Date());
         assertEquals(1, ts.countTasksQueued());
@@ -46,9 +62,42 @@ public class TaskSchedulerTest extends TestCase {
         assertEquals(0, ts.countTasksQueued());
         Thread.sleep(1100);
         assertEquals(0, ts.countTasksQueued());
+    }
+
+    public void testTaskOrdering() throws Exception {
+        List<SimpleTask> result = Collections.synchronizedList(new ArrayList<SimpleTask>());
+
+        ts.addTask(new SimpleTask(new Date(MonotonicClock.currentTimeMillis() + 100), ts, 0, result));
+        ts.addTask(new SimpleTask(new Date(MonotonicClock.currentTimeMillis() + 200), ts, 1, result));
+        ts.addTask(new SimpleTask(new Date(MonotonicClock.currentTimeMillis() + 300), ts, 2, result));
+
+        ts.join(1000);
+
+        assertEquals(0, result.get(0).getObject());
+        assertEquals(1, result.get(1).getObject());
+        assertEquals(2, result.get(2).getObject());
+    }
+
+    private static class SimpleTask extends Task {
+
+        private final Object obj;
+        private final List<SimpleTask> result;
+
+        protected SimpleTask(Date executionTime, TaskScheduler scheduler, Object obj, List<SimpleTask> result) {
+            super(executionTime, scheduler);
+            this.obj = obj;
+            this.result = result;
+        }
+
+        @Override
+        public Object getObject() {
+            return obj;
+        }
 
-        ts.setActive(false);
-        ts.join();
+        @Override
+        public void execute() throws TaskException {
+            result.add(this);
+        }
     }
 
 }
diff --git a/test/bitronix/tm/twopc/OnePcFailureTest.java b/test/bitronix/tm/twopc/OnePcFailureTest.java
new file mode 100644
index 0000000..937417c
--- /dev/null
+++ b/test/bitronix/tm/twopc/OnePcFailureTest.java
@@ -0,0 +1,178 @@
+/*
+ * Bitronix Transaction Manager
+ *
+ * Copyright (c) 2010, Bitronix Software.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package bitronix.tm.twopc;
+
+import bitronix.tm.BitronixTransactionManager;
+import bitronix.tm.TransactionManagerServices;
+import bitronix.tm.journal.Journal;
+import bitronix.tm.mock.AbstractMockJdbcTest;
+import bitronix.tm.mock.events.Event;
+import bitronix.tm.mock.events.EventRecorder;
+import bitronix.tm.mock.events.JournalLogEvent;
+import bitronix.tm.mock.events.XAResourceCommitEvent;
+import bitronix.tm.mock.events.XAResourceForgetEvent;
+import bitronix.tm.mock.resource.MockJournal;
+import bitronix.tm.mock.resource.MockXAResource;
+import bitronix.tm.mock.resource.jdbc.MockitoXADataSource;
+import bitronix.tm.resource.ResourceRegistrar;
+import bitronix.tm.resource.jdbc.JdbcConnectionHandle;
+import bitronix.tm.resource.jdbc.PoolingDataSource;
+import junit.framework.TestCase;
+import oracle.jdbc.xa.OracleXAException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.sql.XAConnection;
+import javax.transaction.HeuristicMixedException;
+import javax.transaction.HeuristicRollbackException;
+import javax.transaction.RollbackException;
+import javax.transaction.Status;
+import javax.transaction.SystemException;
+import javax.transaction.xa.XAException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Proxy;
+import java.sql.Connection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ *
+ * @author lorban
+ */
+public class OnePcFailureTest extends TestCase {
+
+    private final static Logger log = LoggerFactory.getLogger(OnePcFailureTest.class);
+
+    private PoolingDataSource poolingDataSource1;
+    private BitronixTransactionManager tm;
+
+    /**
+     * Test scenario:
+     *
+     * XAResources: 2
+     * TX timeout: 10s
+     * TX resolution: heuristic mixed
+     *
+     * XAResource 1 resolution: successful
+     * XAResource 2 resolution: commit throws exception XAException.XAER_RMERR
+     *
+     * Expected outcome:
+     *   TM fails on resource 2 commit but does not report that via an exception
+     *   as the recoverer will clean that up
+     * Expected TM events:
+     *  2 XAResourcePrepareEvent, 2 XAResourceCommitEvent
+     * Expected journal events:
+     *   ACTIVE, PREPARING, PREPARED, COMMITTING, COMMITTED
+     * @throws Exception if any error happens.
+     */
+    public void testExpectNoHeuristic() throws Exception {
+        tm.begin();
+        tm.setTransactionTimeout(10); // TX must not timeout
+
+        Connection connection1 = poolingDataSource1.getConnection();
+        JdbcConnectionHandle handle = (JdbcConnectionHandle) Proxy.getInvocationHandler(connection1);
+        XAConnection xaConnection2 = (XAConnection) AbstractMockJdbcTest.getWrappedXAConnectionOf(handle.getPooledConnection());
+        connection1.createStatement();
+
+        final MockXAResource mockXAResource2 = (MockXAResource) xaConnection2.getXAResource();
+        mockXAResource2.setCommitException(createXAException("resource 2 commit failed with XAER_RMERR", XAException.XAER_RMERR));
+
+        try {
+            tm.commit();
+            fail("expected RollbackException");
+        } catch (RollbackException ex) {
+            assertTrue(ex.getMessage().matches("transaction failed during 1PC commit of a Bitronix Transaction with GTRID \\[.*\\], status=ROLLEDBACK, 1 resource\\(s\\) enlisted \\(.*\\)"));
+        }
+
+        log.info(EventRecorder.dumpToString());
+
+        int journalUnknownEventCount = 0;
+        int journalCommittingEventCount = 0;
+        int journalRolledbackEventCount = 0;
+        int commitEventCount = 0;
+        List events = EventRecorder.getOrderedEvents();
+        for (int i = 0; i < events.size(); i++) {
+            Event event = (Event) events.get(i);
+
+            if (event instanceof XAResourceCommitEvent)
+                commitEventCount++;
+
+            if (event instanceof JournalLogEvent) {
+                if (((JournalLogEvent) event).getStatus() == Status.STATUS_UNKNOWN)
+                    journalUnknownEventCount++;
+            }
+
+            if (event instanceof JournalLogEvent) {
+                if (((JournalLogEvent) event).getStatus() == Status.STATUS_COMMITTING)
+                    journalCommittingEventCount++;
+            }
+
+            if (event instanceof JournalLogEvent) {
+                if (((JournalLogEvent) event).getStatus() == Status.STATUS_ROLLEDBACK)
+                    journalRolledbackEventCount++;
+            }
+        }
+        assertEquals("TM should have logged a COMMITTING status", 1, journalCommittingEventCount);
+        assertEquals("TM should have logged a ROLLEDBACK status", 1, journalRolledbackEventCount);
+        assertEquals("TM should not have logged ant UNKNOWN status", 0, journalUnknownEventCount);
+        assertEquals("TM haven't properly tried to commit", 1, commitEventCount);
+    }
+
+    protected void setUp() throws Exception {
+        Iterator it = ResourceRegistrar.getResourcesUniqueNames().iterator();
+        while (it.hasNext()) {
+            String name = (String) it.next();
+            ResourceRegistrar.unregister(ResourceRegistrar.get(name));
+        }
+
+        EventRecorder.clear();
+
+        // change disk journal into mock journal
+        Field field = TransactionManagerServices.class.getDeclaredField("journalRef");
+        field.setAccessible(true);
+        AtomicReference<Journal> journalRef = (AtomicReference<Journal>) field.get(TransactionManagerServices.class);
+        journalRef.set(new MockJournal());
+
+
+        poolingDataSource1 = new PoolingDataSource();
+        poolingDataSource1.setClassName(MockitoXADataSource.class.getName());
+        poolingDataSource1.setUniqueName("pds1");
+        poolingDataSource1.setMinPoolSize(5);
+        poolingDataSource1.setMaxPoolSize(5);
+        poolingDataSource1.setAutomaticEnlistingEnabled(true);
+        poolingDataSource1.init();
+
+        tm = TransactionManagerServices.getTransactionManager();
+    }
+
+    protected void tearDown() throws Exception {
+        poolingDataSource1.close();
+        tm.shutdown();
+    }
+
+    private XAException createXAException(String msg, int errorCode) {
+        XAException prepareException = new OracleXAException(msg, 9876);
+        prepareException.errorCode = errorCode;
+        return prepareException;
+    }
+
+}
diff --git a/test/bitronix/tm/twopc/Phase1FailureTest.java b/test/bitronix/tm/twopc/Phase1FailureTest.java
index 70d98e7..c84dc24 100644
--- a/test/bitronix/tm/twopc/Phase1FailureTest.java
+++ b/test/bitronix/tm/twopc/Phase1FailureTest.java
@@ -23,11 +23,13 @@ package bitronix.tm.twopc;
 import java.lang.reflect.*;
 import java.sql.Connection;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
 
 import javax.sql.XAConnection;
 import javax.transaction.*;
 import javax.transaction.xa.XAException;
 
+import bitronix.tm.journal.Journal;
 import junit.framework.TestCase;
 import bitronix.tm.*;
 import bitronix.tm.mock.AbstractMockJdbcTest;
@@ -280,9 +282,10 @@ public class Phase1FailureTest extends TestCase {
         EventRecorder.clear();
 
         // change disk journal into mock journal
-        Field field = TransactionManagerServices.class.getDeclaredField("journal");
+        Field field = TransactionManagerServices.class.getDeclaredField("journalRef");
         field.setAccessible(true);
-        field.set(TransactionManagerServices.class, new MockJournal());
+        AtomicReference<Journal> journalRef = (AtomicReference<Journal>) field.get(TransactionManagerServices.class);
+        journalRef.set(new MockJournal());
 
         poolingDataSource1 = new PoolingDataSource();
         poolingDataSource1.setClassName(MockitoXADataSource.class.getName());
diff --git a/test/bitronix/tm/twopc/Phase2FailureTest.java b/test/bitronix/tm/twopc/Phase2FailureTest.java
index c9e44a7..15ee6d4 100644
--- a/test/bitronix/tm/twopc/Phase2FailureTest.java
+++ b/test/bitronix/tm/twopc/Phase2FailureTest.java
@@ -23,11 +23,13 @@ package bitronix.tm.twopc;
 import java.lang.reflect.*;
 import java.sql.Connection;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 
 import javax.sql.XAConnection;
 import javax.transaction.*;
 import javax.transaction.xa.XAException;
 
+import bitronix.tm.journal.Journal;
 import junit.framework.TestCase;
 import bitronix.tm.*;
 import bitronix.tm.mock.AbstractMockJdbcTest;
@@ -78,7 +80,7 @@ public class Phase2FailureTest extends TestCase {
         connection1.createStatement();
 
         Connection connection2 = poolingDataSource2.getConnection();
-        JdbcConnectionHandle handle = (JdbcConnectionHandle) Proxy.getInvocationHandler(connection1);
+        JdbcConnectionHandle handle = (JdbcConnectionHandle) Proxy.getInvocationHandler(connection2);
         XAConnection xaConnection2 = (XAConnection) AbstractMockJdbcTest.getWrappedXAConnectionOf(handle.getPooledConnection());
         connection2.createStatement();
 
@@ -256,9 +258,10 @@ public class Phase2FailureTest extends TestCase {
         EventRecorder.clear();
 
         // change disk journal into mock journal
-        Field field = TransactionManagerServices.class.getDeclaredField("journal");
+        Field field = TransactionManagerServices.class.getDeclaredField("journalRef");
         field.setAccessible(true);
-        field.set(TransactionManagerServices.class, new MockJournal());
+        AtomicReference<Journal> journalRef = (AtomicReference<Journal>) field.get(TransactionManagerServices.class);
+        journalRef.set(new MockJournal());
 
 
         poolingDataSource1 = new PoolingDataSource();
diff --git a/test/bitronix/tm/utils/CryptoEngineTest.java b/test/bitronix/tm/utils/CryptoEngineTest.java
index 04de7ad..bc4d24c 100644
--- a/test/bitronix/tm/utils/CryptoEngineTest.java
+++ b/test/bitronix/tm/utils/CryptoEngineTest.java
@@ -28,8 +28,8 @@ import junit.framework.TestCase;
  */
 public class CryptoEngineTest extends TestCase {
 
-    public void testCrypt() throws Exception {
-    	String textToCrypt = "java";
+    public void testCryptDES() throws Exception {
+    	String textToCrypt = "java and bitronix will rule the earth";
 
     	String cypherText = CryptoEngine.crypt("DES", textToCrypt);
         String decryptedText = CryptoEngine.decrypt("DES", cypherText);
@@ -37,4 +37,13 @@ public class CryptoEngineTest extends TestCase {
         assertEquals(textToCrypt, decryptedText);
     }
 
+    public void testCrypt3DES() throws Exception {
+    	String textToCrypt = "java";
+
+    	String cypherText = CryptoEngine.crypt("DESede", textToCrypt);
+        String decryptedText = CryptoEngine.decrypt("DESede", cypherText);
+
+        assertEquals(textToCrypt, decryptedText);
+    }
+
 }
diff --git a/test/bitronix/tm/utils/DefaultExceptionAnalyzerTest.java b/test/bitronix/tm/utils/DefaultExceptionAnalyzerTest.java
new file mode 100644
index 0000000..c99a852
--- /dev/null
+++ b/test/bitronix/tm/utils/DefaultExceptionAnalyzerTest.java
@@ -0,0 +1,20 @@
+package bitronix.tm.utils;
+
+import bitronix.tm.internal.BitronixXAException;
+import junit.framework.TestCase;
+import oracle.jdbc.xa.OracleXAException;
+
+import javax.transaction.xa.XAException;
+
+/**
+ * @author lorban
+ */
+public class DefaultExceptionAnalyzerTest extends TestCase {
+
+    public void testExtract() throws Exception {
+        DefaultExceptionAnalyzer analyzer = new DefaultExceptionAnalyzer();
+        
+        assertNull(analyzer.extractExtraXAExceptionDetails(new BitronixXAException("XA error", XAException.XA_HEURCOM)));
+        assertEquals("ORA-1234", analyzer.extractExtraXAExceptionDetails(new OracleXAException(1234)));
+    }
+}
diff --git a/test/bitronix/tm/utils/SchedulerTest.java b/test/bitronix/tm/utils/SchedulerTest.java
index 5bf74d2..be7a0f0 100644
--- a/test/bitronix/tm/utils/SchedulerTest.java
+++ b/test/bitronix/tm/utils/SchedulerTest.java
@@ -36,7 +36,7 @@ import java.util.List;
 public class SchedulerTest extends TestCase {
 
     public void testNaturalOrdering() throws Exception {
-        Scheduler resourceScheduler = new Scheduler();
+        Scheduler<XAResourceHolderState> resourceScheduler = new Scheduler<XAResourceHolderState>();
 
         XAResourceHolderState xarhs0 = new XAResourceHolderState(null, new MockResourceBean(1));
         XAResourceHolderState xarhs1 = new XAResourceHolderState(null, new MockResourceBean(1));
@@ -54,32 +54,32 @@ public class SchedulerTest extends TestCase {
 
         /* testing natural order priorities */
         assertEquals(5, resourceScheduler.size());
-        Set priorities = resourceScheduler.getNaturalOrderPositions();
+        Set<Integer> priorities = resourceScheduler.getNaturalOrderPositions();
         assertEquals(3, priorities.size());
 
-        Iterator it = priorities.iterator();
-        Object key0 = it.next();
-        Object key1 = it.next();
-        Object key2 = it.next();
+        Iterator<Integer> it = priorities.iterator();
+        Integer key0 = it.next();
+        Integer key1 = it.next();
+        Integer key2 = it.next();
         assertFalse(it.hasNext());
 
-        List list0 = resourceScheduler.getByNaturalOrderForPosition(key0);
+        List<XAResourceHolderState> list0 = resourceScheduler.getByNaturalOrderForPosition(key0);
         assertEquals(1, list0.size());
         assertTrue(xarhs3 == list0.get(0));
 
-        List list1 = resourceScheduler.getByNaturalOrderForPosition(key1);
+        List<XAResourceHolderState> list1 = resourceScheduler.getByNaturalOrderForPosition(key1);
         assertEquals(3, list1.size());
         assertTrue(xarhs0 == list1.get(0));
         assertTrue(xarhs1 == list1.get(1));
         assertTrue(xarhs2 == list1.get(2));
 
-        List list2 = resourceScheduler.getByNaturalOrderForPosition(key2);
+        List<XAResourceHolderState> list2 = resourceScheduler.getByNaturalOrderForPosition(key2);
         assertEquals(1, list2.size());
         assertTrue(xarhs4 == list2.get(0));
     }
 
     public void testReverseOrdering() throws Exception {
-        Scheduler resourceScheduler = new Scheduler();
+        Scheduler<XAResourceHolderState> resourceScheduler = new Scheduler<XAResourceHolderState>();
 
         XAResourceHolderState xarhs0 = new XAResourceHolderState(null, new MockResourceBean(1));
         XAResourceHolderState xarhs1 = new XAResourceHolderState(null, new MockResourceBean(1));
@@ -95,32 +95,32 @@ public class SchedulerTest extends TestCase {
 
         assertEquals("a Scheduler with 5 object(s) in 3 position(s)", resourceScheduler.toString());
 
-        Set reverseOrderPriorities = resourceScheduler.getReverseOrderPositions();
+        Set<Integer> reverseOrderPriorities = resourceScheduler.getReverseOrderPositions();
         assertEquals(3, reverseOrderPriorities.size());
 
-        Iterator itReverse = reverseOrderPriorities.iterator();
-        Object key0r = itReverse.next();
-        Object key1r = itReverse.next();
-        Object key2r = itReverse.next();
+        Iterator<Integer> itReverse = reverseOrderPriorities.iterator();
+        Integer key0r = itReverse.next();
+        Integer key1r = itReverse.next();
+        Integer key2r = itReverse.next();
         assertFalse(itReverse.hasNext());
 
-        List list0r = resourceScheduler.getByReverseOrderForPosition(key0r);
+        List<XAResourceHolderState> list0r = resourceScheduler.getByReverseOrderForPosition(key0r);
         assertEquals(1, list0r.size());
         assertTrue(xarhs4 == list0r.get(0));
 
-        List list1r = resourceScheduler.getByReverseOrderForPosition(key1r);
+        List<XAResourceHolderState> list1r = resourceScheduler.getByReverseOrderForPosition(key1r);
         assertEquals(3, list1r.size());
         assertTrue(xarhs2 == list1r.get(0));
         assertTrue(xarhs1 == list1r.get(1));
         assertTrue(xarhs0 == list1r.get(2));
 
-        List list2r = resourceScheduler.getByReverseOrderForPosition(key2r);
+        List<XAResourceHolderState> list2r = resourceScheduler.getByReverseOrderForPosition(key2r);
         assertEquals(1, list2r.size());
         assertTrue(xarhs3 == list2r.get(0));
     }
 
     public void testIterator() {
-        Scheduler resourceScheduler = new Scheduler();
+        Scheduler<XAResourceHolderState> resourceScheduler = new Scheduler<XAResourceHolderState>();
 
         XAResourceHolderState xarhs0 = new XAResourceHolderState(null, new MockResourceBean(1));
         XAResourceHolderState xarhs1 = new XAResourceHolderState(null, new MockResourceBean(1));
@@ -136,7 +136,7 @@ public class SchedulerTest extends TestCase {
 
         assertEquals("a Scheduler with 5 object(s) in 3 position(s)", resourceScheduler.toString());
 
-        Iterator it = resourceScheduler.iterator();
+        Iterator<XAResourceHolderState> it = resourceScheduler.iterator();
         assertTrue(it.hasNext());
         assertTrue(xarhs3 == it.next());
         assertTrue(xarhs0 == it.next());
@@ -162,7 +162,7 @@ public class SchedulerTest extends TestCase {
     }
 
     public void testReverseIterator() {
-        Scheduler resourceScheduler = new Scheduler();
+        Scheduler<XAResourceHolderState> resourceScheduler = new Scheduler<XAResourceHolderState>();
 
         XAResourceHolderState xarhs0 = new XAResourceHolderState(null, new MockResourceBean(1));
         XAResourceHolderState xarhs1 = new XAResourceHolderState(null, new MockResourceBean(1));
@@ -191,7 +191,7 @@ public class SchedulerTest extends TestCase {
     }
 
     public void testRemove() {
-        Scheduler resourceScheduler = new Scheduler();
+        Scheduler<XAResourceHolderState> resourceScheduler = new Scheduler<XAResourceHolderState>();
 
         XAResourceHolderState xarhs0 = new XAResourceHolderState(null, new MockResourceBean(0));
         XAResourceHolderState xarhs1 = new XAResourceHolderState(null, new MockResourceBean(1));
@@ -202,7 +202,7 @@ public class SchedulerTest extends TestCase {
         resourceScheduler.remove(xarhs0);
         resourceScheduler.add(xarhs0, xarhs0.getTwoPcOrderingPosition());
 
-        Iterator it = resourceScheduler.iterator();
+        Iterator<XAResourceHolderState> it = resourceScheduler.iterator();
         assertTrue(it.hasNext());
         assertTrue(xarhs0 == it.next());
         it.remove();
@@ -211,7 +211,7 @@ public class SchedulerTest extends TestCase {
     }
 
     public void testReverseRemove() {
-        Scheduler resourceScheduler = new Scheduler();
+        Scheduler<XAResourceHolderState> resourceScheduler = new Scheduler<XAResourceHolderState>();
 
         XAResourceHolderState xarhs0 = new XAResourceHolderState(null, new MockResourceBean(0));
         XAResourceHolderState xarhs1 = new XAResourceHolderState(null, new MockResourceBean(1));
@@ -222,7 +222,7 @@ public class SchedulerTest extends TestCase {
         resourceScheduler.remove(xarhs0);
         resourceScheduler.add(xarhs0, xarhs0.getTwoPcOrderingPosition());
 
-        Iterator it = resourceScheduler.reverseIterator();
+        Iterator<XAResourceHolderState> it = resourceScheduler.reverseIterator();
         assertTrue(it.hasNext());
         assertTrue(xarhs1 == it.next());
         it.remove();
@@ -231,7 +231,7 @@ public class SchedulerTest extends TestCase {
     }
 
     public void testHasNext() {
-        Scheduler resourceScheduler = new Scheduler();
+        Scheduler<XAResourceHolderState> resourceScheduler = new Scheduler<XAResourceHolderState>();
 
         XAResourceHolderState xarhs0 = new XAResourceHolderState(null, new MockResourceBean(0));
         XAResourceHolderState xarhs1 = new XAResourceHolderState(null, new MockResourceBean(10));
@@ -240,7 +240,7 @@ public class SchedulerTest extends TestCase {
         resourceScheduler.add(xarhs1, xarhs1.getTwoPcOrderingPosition());
 
 
-        Iterator it = resourceScheduler.iterator();
+        Iterator<XAResourceHolderState> it = resourceScheduler.iterator();
 
         for (int i=0; i<10 ;i++) {
             assertTrue(it.hasNext());
diff --git a/test/log4j.xml b/test/log4j.xml
deleted file mode 100644
index 6fafc48..0000000
--- a/test/log4j.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "/work/bitronix/btm/m2/src/test/resources/log4j.dtd">
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-
-    <appender name="console" class="org.apache.log4j.ConsoleAppender">
-        <param name="Target" value="System.out"/>
-        <param name="Threshold" value="OFF"/>
-
-        <layout class="org.apache.log4j.PatternLayout">
-            <param name="ConversionPattern" value="%d{ABSOLUTE} {%8.8t} (%X{btm-gtrid}) [%-5p,%-10c{1}] %m%n"/>
-        </layout>
-    </appender>
-
-    <appender name="file" class="org.apache.log4j.FileAppender">
-        <param name="File" value="target/tests.log"/>
-        <param name="Append" value="false"/>
-        <param name="Threshold" value="DEBUG"/>
-
-        <layout class="org.apache.log4j.PatternLayout">
-            <param name="ConversionPattern" value="%d [%t] (%X{btm-gtrid}) %p - %m%n"/>
-        </layout>
-    </appender>
-
-    <category name="bitronix">
-        <level value="DEBUG"/>
-        <appender-ref ref="file"/>
-    </category>
-
-    <root>
-        <appender-ref ref="console"/>
-    </root>
-
-</log4j:configuration>
diff --git a/test/logback.xml b/test/logback.xml
new file mode 100644
index 0000000..74eb56c
--- /dev/null
+++ b/test/logback.xml
@@ -0,0 +1,44 @@
+<configuration>
+
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>OFF</level>
+        </filter>
+        <encoder>
+            <pattern>%d [%t] {%X{btm-gtrid}} [%p,%c{1}] %m%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="file" class="ch.qos.logback.core.FileAppender">
+        <file>target/tests.log</file>
+        <encoder>
+            <pattern>%d [%-25.25t] {%-50X{btm-gtrid}} [%-5p] %m%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="sift" class="ch.qos.logback.classic.sift.SiftingAppender">
+        <discriminator>
+            <key>btm-gtrid</key>
+            <defaultValue>N/A</defaultValue>
+        </discriminator>
+        <sift>
+            <appender name="file-${btm-gtrid}" class="ch.qos.logback.core.FileAppender">
+                <file>target/tests-${btm-gtrid}.log</file>
+                <append>false</append>
+                <encoder>
+                    <pattern>%d [%-25.25t] [%-5p] %m%n</pattern>
+                </encoder>
+            </appender>
+        </sift>
+    </appender>
+
+
+    <logger name="bitronix.tm" level="DEBUG">
+        <appender-ref ref="file"/>
+    </logger>
+
+    <root level="INFO">
+        <appender-ref ref="console"/>
+    </root>
+
+</configuration>
diff --git a/test/oracle/jdbc/xa/OracleXAException.java b/test/oracle/jdbc/xa/OracleXAException.java
new file mode 100644
index 0000000..711759c
--- /dev/null
+++ b/test/oracle/jdbc/xa/OracleXAException.java
@@ -0,0 +1,22 @@
+package oracle.jdbc.xa;
+
+import javax.transaction.xa.XAException;
+
+public class OracleXAException extends XAException {
+    
+    private int oracleError;
+
+    public OracleXAException(String msg, int oracleError) {
+        super(msg);
+        this.oracleError = oracleError;
+    }
+
+    public OracleXAException(int oracleError) {
+        this.oracleError = oracleError;
+    }
+
+    public int getOracleError() {
+        return oracleError;
+    }
+
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libbtm-java.git



More information about the pkg-java-commits mailing list