public T required()

in tx-control-services/tx-control-service-common/src/main/java/org/apache/aries/tx/control/service/common/impl/AbstractTransactionControlImpl.java [66:89]


		public <T> T required(Callable<T> work)
				throws TransactionException, TransactionRolledBackException {
			checkValid();
			
			boolean endTransaction = false;

			AbstractTransactionContextImpl existingTran = existingTx.get();
			AbstractTransactionContextImpl currentTran;
			try {
				if (existingTran == null || existingTran.getTransactionStatus() == NO_TRANSACTION) {
					currentTran = startTransaction(readOnly);
					endTransaction = true;
					existingTx.set(currentTran);
				} else if (existingTran.isReadOnly() && !readOnly){
					throw new TransactionException("A read only transaction is currently active, and cannot be upgraded to a writeable transaction");
				} else {
					currentTran = existingTran;
				}
				return doWork(work, currentTran, endTransaction);
			} finally {
				existingTx.set(existingTran);
			}
			
		}