This looks like a lot of tiresome work, thanks for doing it :)
Oliver
On 29 Nov 2004 18:28:17 -0000, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
> luetzkendorf 2004/11/29 10:28:17
>
> Modified: transaction/src/java/org/apache/commons/transaction/util/xa
> AbstractXAResource.java XidWrapper.java
> transaction/src/java/org/apache/commons/transaction/file
> FileResourceManager.java
> transaction/src/java/org/apache/commons/transaction/locking
> GenericLock.java
> transaction/src/java/org/apache/commons/transaction/util
> RendezvousBarrier.java
> Log:
> logging now tests for appropriate logging level as early as possible
>
> Revision Changes Path
> 1.2 +30 -20
> jakarta-commons/transaction/src/java/org/apache/commons/transaction/util/xa/AbstractXAResource.java
>
> Index: AbstractXAResource.java
> ===================================================================
> RCS file:
> /home/cvs/jakarta-commons/transaction/src/java/org/apache/commons/transaction/util/xa/AbstractXAResource.java,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- AbstractXAResource.java 18 Nov 2004 23:27:19 -0000 1.1
> +++ AbstractXAResource.java 29 Nov 2004 18:28:17 -0000 1.2
> @@ -53,7 +53,9 @@
> protected abstract boolean includeBranchInXid();
>
> public void forget(Xid xid) throws XAException {
> - getLoggerFacade().logFine("Forgetting transaction branch " + xid);
> + if (getLoggerFacade().isFineEnabled()) {
> + getLoggerFacade().logFine("Forgetting transaction branch " +
> xid);
> + }
> TransactionalResource ts = getTransactionalResource(xid);
> if (ts == null) {
> throw new XAException(XAException.XAER_NOTA);
> @@ -69,7 +71,9 @@
> throw new XAException(XAException.XAER_NOTA);
> }
>
> - getLoggerFacade().logFine("Committing transaction branch " + ts);
> + if (getLoggerFacade().isFineEnabled()) {
> + getLoggerFacade().logFine("Committing transaction branch " +
> ts);
> + }
>
> if (ts.getStatus() == STATUS_MARKED_ROLLBACK) {
> throw new XAException(XAException.XA_RBROLLBACK);
> @@ -94,7 +98,9 @@
> throw new XAException(XAException.XAER_NOTA);
> }
>
> - getLoggerFacade().logFine("Rolling back transaction branch " + ts);
> + if (getLoggerFacade().isFineEnabled()) {
> + getLoggerFacade().logFine("Rolling back transaction branch " +
> ts);
> + }
>
> ts.rollback();
> setCurrentlyActiveTransactionalResource(null);
> @@ -108,7 +114,9 @@
> throw new XAException(XAException.XAER_NOTA);
> }
>
> - getLoggerFacade().logFine("Preparing transaction branch " + ts);
> + if (getLoggerFacade().isFineEnabled()) {
> + getLoggerFacade().logFine("Preparing transaction branch " +
> ts);
> + }
>
> if (ts.getStatus() == STATUS_MARKED_ROLLBACK) {
> throw new XAException(XAException.XA_RBROLLBACK);
> @@ -127,12 +135,13 @@
> if (getCurrentlyActiveTransactionalResource() == null) {
> throw new XAException(XAException.XAER_INVAL);
> }
> - getLoggerFacade().logFine(
> - "Thread "
> - + Thread.currentThread()
> - + (flags == TMSUSPEND ? " suspends" : flags == TMFAIL ? "
> fails" : " ends")
> - + " work on behalf of transaction branch "
> - + ts);
> + if (getLoggerFacade().isFineEnabled()) {
> + getLoggerFacade().logFine(new StringBuffer(128)
> + .append("Thread ").append(Thread.currentThread())
> + .append(flags == TMSUSPEND ? " suspends" : flags ==
> TMFAIL ? " fails" : " ends")
> + .append(" work on behalf of transaction branch ")
> + .append(ts).toString());
> + }
>
> switch (flags) {
> case TMSUSPEND :
> @@ -153,13 +162,14 @@
> if (getCurrentlyActiveTransactionalResource() != null) {
> throw new XAException(XAException.XAER_INVAL);
> }
> - getLoggerFacade().logFine(
> - "Thread "
> - + Thread.currentThread()
> - + (flags == TMNOFLAGS ? " starts" : flags == TMJOIN ? "
> joins" : " resumes")
> - + " work on behalf of transaction branch "
> - + xid);
> -
> + if (getLoggerFacade().isFineEnabled()) {
> + getLoggerFacade().logFine(new StringBuffer(128)
> + .append("Thread ").append(Thread.currentThread())
> + .append(flags == TMNOFLAGS ? " starts" : flags ==
> TMJOIN ? " joins" : " resumes")
> + .append(" work on behalf of transaction branch ")
> + .append(xid).toString());
> + }
> +
> TransactionalResource ts;
> switch (flags) {
> // a new transaction
>
> 1.2 +8 -5
> jakarta-commons/transaction/src/java/org/apache/commons/transaction/util/xa/XidWrapper.java
>
> Index: XidWrapper.java
> ===================================================================
> RCS file:
> /home/cvs/jakarta-commons/transaction/src/java/org/apache/commons/transaction/util/xa/XidWrapper.java,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- XidWrapper.java 18 Nov 2004 23:27:19 -0000 1.1
> +++ XidWrapper.java 29 Nov 2004 18:28:17 -0000 1.2
> @@ -52,10 +52,13 @@
> private XidWrapper(Xid xid, boolean includeBranch) {
> this.xid = xid;
> // do calculations once for performance
> - asString =
> - new String(xid.getGlobalTransactionId())
> - + (includeBranch ? "-" + new
> String(xid.getBranchQualifier()) : "");
> + StringBuffer b = new StringBuffer(64);
> + b.append(xid.getGlobalTransactionId());
> + if (includeBranch) {
> + b.append("-").append(xid.getBranchQualifier());
> + }
>
> + asString = b.toString();
> hashCode = asString.hashCode();
> }
>
> 1.2 +36 -29
> jakarta-commons/transaction/src/java/org/apache/commons/transaction/file/FileResourceManager.java
>
> Index: FileResourceManager.java
> ===================================================================
> RCS file:
> /home/cvs/jakarta-commons/transaction/src/java/org/apache/commons/transaction/file/FileResourceManager.java,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- FileResourceManager.java 18 Nov 2004 23:27:19 -0000 1.1
> +++ FileResourceManager.java 29 Nov 2004 18:28:17 -0000 1.2
> @@ -342,7 +342,7 @@
> if (context == null) {
> msecs = getDefaultTransactionTimeout();
> } else {
> - msecs = ((TransactionContext) context).timeoutMSecs;
> + msecs = context.timeoutMSecs;
> }
> return msecs;
> }
> @@ -351,7 +351,7 @@
> assureRMReady();
> TransactionContext context = getContext(txId);
> if (context != null) {
> - ((TransactionContext) context).timeoutMSecs = mSecs;
> + context.timeoutMSecs = mSecs;
> } else {
> throw new ResourceManagerException(ERR_NO_TX, txId);
> }
> @@ -372,7 +372,7 @@
> TransactionContext context = getContext(txId);
> if (context != null) {
> if (level != ISOLATION_LEVEL_READ_COMMITTED || level !=
> ISOLATION_LEVEL_REPEATABLE_READ) {
> - ((TransactionContext) context).isolationLevel = level;
> + context.isolationLevel = level;
> } else {
> throw new
> ResourceManagerException(ERR_ISOLATION_LEVEL_UNSUPPORTED, txId);
> }
> @@ -462,7 +462,7 @@
>
> public void startTransaction(Object txId) throws
> ResourceManagerException {
>
> - logger.logFine("Starting Tx " + txId);
> + if (logger.isFineEnabled()) logger.logFine("Starting Tx " + txId);
>
> assureStarted(); // can only start a new transaction when not
> already stopping
> if (txId == null || txId.toString().length() == 0) {
> @@ -526,7 +526,7 @@
> return PREPARE_FAILURE;
> }
>
> - logger.logFine("Preparing Tx " + txId);
> + if (logger.isFineEnabled()) logger.logFine("Preparing Tx " +
> txId);
>
> int prepareStatus = PREPARE_FAILURE;
>
> @@ -549,7 +549,7 @@
> }
> context.status = STATUS_PREPARED;
> context.saveState();
> - logger.logFine("Prepared Tx " + txId);
> + if (logger.isFineEnabled()) logger.logFine("Prepared Tx " +
> txId);
>
> return prepareStatus;
> }
> @@ -562,7 +562,7 @@
> synchronized (context) {
> try {
>
> - logger.logFine("Rolling back Tx " + txId);
> + if (logger.isFineEnabled()) logger.logFine("Rolling back
> Tx " + txId);
>
> context.status = STATUS_ROLLING_BACK;
> context.saveState();
> @@ -572,7 +572,7 @@
> globalTransactions.remove(txId);
> context.cleanUp();
>
> - logger.logFine("Rolled back Tx " + txId);
> + if (logger.isFineEnabled()) logger.logFine("Rolled back Tx
> " + txId);
>
> // any system or runtime exceptions or errors thrown in
> rollback means we are in deep trouble, set the dirty flag
> } catch (Error e) {
> @@ -601,7 +601,7 @@
> synchronized (context) {
> try {
>
> - logger.logFine("Committing Tx " + txId);
> + if (logger.isFineEnabled()) logger.logFine("Committing Tx
> " + txId);
>
> context.status = STATUS_COMMITTING;
> context.saveState();
> @@ -611,7 +611,7 @@
> globalTransactions.remove(txId);
> context.cleanUp();
>
> - logger.logFine("Committed Tx " + txId);
> + if (logger.isFineEnabled()) logger.logFine("Committed Tx "
> + txId);
>
> // any system or runtime exceptions or errors thrown in
> rollback means we are in deep trouble, set the dirty flag
> } catch (Error e) {
> @@ -641,7 +641,8 @@
> TransactionContext context;
> synchronized (globalTransactions) {
> txId = generatedUniqueTxId();
> - logger.logFiner("Creating temporary light weight tx " + txId +
> " to check for exists");
> + if (logger.isFinerEnabled())
> + logger.logFiner("Creating temporary light weight tx " +
> txId + " to check for exists");
> context = new TransactionContext(txId);
> context.isLightWeight = true;
> // XXX higher isolation might be needed to make sure upgrade
> to commit lock always works
> @@ -654,7 +655,8 @@
>
> context.freeLocks();
> globalTransactions.remove(txId);
> - logger.logFiner("Removing temporary light weight tx " + txId);
> + if (logger.isFinerEnabled())
> + logger.logFiner("Removing temporary light weight tx " + txId);
>
> return exists;
> }
> @@ -670,7 +672,7 @@
>
> public void deleteResource(Object txId, Object resourceId, boolean
> assureOnly) throws ResourceManagerException {
>
> - logger.logFine(txId + " deleting " + resourceId);
> + if (logger.isFineEnabled()) logger.logFine(txId + " deleting " +
> resourceId);
>
> assureLock(resourceId, txId, false);
>
> @@ -707,7 +709,7 @@
>
> public void createResource(Object txId, Object resourceId, boolean
> assureOnly) throws ResourceManagerException {
>
> - logger.logFine(txId + " creating " + resourceId);
> + if (logger.isFineEnabled()) logger.logFine(txId + " creating " +
> resourceId);
>
> assureLock(resourceId, txId, false);
>
> @@ -749,7 +751,8 @@
> Object txId;
> synchronized (globalTransactions) {
> txId = generatedUniqueTxId();
> - logger.logFiner("Creating temporary light weight tx " + txId +
> " for reading");
> + if (logger.isFinerEnabled())
> + logger.logFiner("Creating temporary light weight tx " +
> txId + " for reading");
> TransactionContext context = new TransactionContext(txId);
> context.isLightWeight = true;
> // XXX higher isolation might be needed to make sure upgrade
> to commit lock always works
> @@ -764,7 +767,7 @@
>
> public InputStream readResource(Object txId, Object resourceId) throws
> ResourceManagerException {
>
> - logger.logFine(txId + " reading " + resourceId);
> + if (logger.isFineEnabled()) logger.logFine(txId + " reading " +
> resourceId);
>
> assureLock(resourceId, txId, true);
>
> @@ -785,7 +788,7 @@
>
> public OutputStream writeResource(Object txId, Object resourceId)
> throws ResourceManagerException {
>
> - logger.logFine(txId + " writing " + resourceId);
> + if (logger.isFineEnabled()) logger.logFine(txId + " writing " +
> resourceId);
>
> assureLock(resourceId, txId, false);
>
> @@ -1097,7 +1100,8 @@
> */
>
> protected void registerOpenResource(Object openResource) {
> - logger.logFiner("Registering open resource " + openResource);
> + if (logger.isFinerEnabled())
> + logger.logFiner("Registering open resource " + openResource);
> globalOpenResources.add(openResource);
> }
>
> @@ -1114,7 +1118,7 @@
> }
>
> protected void closeOpenResource(Object openResource) {
> - logger.logFiner("Releasing resource " + openResource);
> + if (logger.isFinerEnabled()) logger.logFiner("Releasing resource "
> + openResource);
> globalOpenResources.remove(openResource);
> if (openResource instanceof InputStream) {
> InputStream is = (InputStream) openResource;
> @@ -1556,18 +1560,21 @@
> }
> synchronized (context) {
> if (context.isLightWeight) {
> - logger.logFiner("Upon close of resource removing
> temporary light weight tx " + txId);
> + if (logger.isFinerEnabled())
> + logger.logFiner("Upon close of resource
> removing temporary light weight tx " + txId);
> context.freeLocks();
> globalTransactions.remove(txId);
> } else {
> // release access lock in order to allow other
> transactions to commit
> MultiLevelLock lock =
> lockManager.atomicGetOrCreateLock(resourceId);
> if (lock.getLockLevel(txId) == LOCK_ACCESS) {
> - logger.logFiner(
> - "Upon close of resource releasing access
> lock for tx "
> - + txId
> - + " on resource at "
> - + resourceId);
> + if (logger.isFinerEnabled()) {
> + logger.logFiner(
> + "Upon close of resource releasing
> access lock for tx "
> + + txId
> + + " on resource at "
> + + resourceId);
> + }
> lock.release(txId);
> }
> }
>
> 1.2 +69 -55
> jakarta-commons/transaction/src/java/org/apache/commons/transaction/locking/GenericLock.java
>
> Index: GenericLock.java
> ===================================================================
> RCS file:
> /home/cvs/jakarta-commons/transaction/src/java/org/apache/commons/transaction/locking/GenericLock.java,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- GenericLock.java 18 Nov 2004 23:27:17 -0000 1.1
> +++ GenericLock.java 29 Nov 2004 18:28:17 -0000 1.2
> @@ -195,23 +195,27 @@
> long timeoutMSecs)
> throws InterruptedException {
>
> - logger.logFiner(
> - ownerId.toString()
> - + " trying to acquire lock for "
> - + resourceId.toString()
> - + " at level "
> - + targetLockLevel
> - + " at "
> - + System.currentTimeMillis());
> + if (logger.isFinerEnabled()) {
> + logger.logFiner(
> + ownerId.toString()
> + + " trying to acquire lock for "
> + + resourceId.toString()
> + + " at level "
> + + targetLockLevel
> + + " at "
> + + System.currentTimeMillis());
> + }
>
> if (tryLock(ownerId, targetLockLevel, compatibility)) {
> -
> - logger.logFiner(
> - ownerId.toString()
> - + " actually acquired lock for "
> - + resourceId.toString()
> - + " at "
> - + System.currentTimeMillis());
> +
> + if (logger.isFinerEnabled()) {
> + logger.logFiner(
> + ownerId.toString()
> + + " actually acquired lock for "
> + + resourceId.toString()
> + + " at "
> + + System.currentTimeMillis());
> + }
>
> return true;
> } else {
> @@ -223,24 +227,28 @@
> remaining > 0;
> remaining = timeoutMSecs - (System.currentTimeMillis()
> - started)) {
>
> - logger.logFiner(
> - ownerId.toString()
> - + " waiting on "
> - + resourceId.toString()
> - + " for msecs "
> - + timeoutMSecs
> - + " at "
> - + System.currentTimeMillis());
> + if (logger.isFinerEnabled()) {
> + logger.logFiner(
> + ownerId.toString()
> + + " waiting on "
> + + resourceId.toString()
> + + " for msecs "
> + + timeoutMSecs
> + + " at "
> + + System.currentTimeMillis());
> + }
>
> wait(remaining);
> if (tryLock(ownerId, targetLockLevel, compatibility)) {
>
> - logger.logFiner(
> - ownerId.toString()
> - + " waiting on "
> - + resourceId.toString()
> - + " eventually got the lock at "
> - + System.currentTimeMillis());
> + if (logger.isFinerEnabled()) {
> + logger.logFiner(
> + ownerId.toString()
> + + " waiting on "
> + + resourceId.toString()
> + + " eventually got the lock at "
> + + System.currentTimeMillis());
> + }
>
> return true;
> }
> @@ -255,12 +263,14 @@
> */
> public synchronized void release(Object ownerId) {
> if (owners.remove(ownerId) != null) {
> - logger.logFiner(
> - ownerId.toString()
> - + " releasing lock for "
> - + resourceId.toString()
> - + " at "
> - + System.currentTimeMillis());
> + if (logger.isFinerEnabled()) {
> + logger.logFiner(
> + ownerId.toString()
> + + " releasing lock for "
> + + resourceId.toString()
> + + " at "
> + + System.currentTimeMillis());
> + }
> notifyAll();
> }
> }
> @@ -351,26 +361,30 @@
> // be sure there exists at most one lock per owner
> if (lock != null) {
>
> - logger.logFinest(
> - ownerId.toString()
> - + " upgrading lock for "
> - + resourceId.toString()
> - + " to level "
> - + targetLockLevel
> - + " at "
> - + System.currentTimeMillis());
> + if (logger.isFinestEnabled()) {
> + logger.logFinest(
> + ownerId.toString()
> + + " upgrading lock for "
> + + resourceId.toString()
> + + " to level "
> + + targetLockLevel
> + + " at "
> + + System.currentTimeMillis());
> + }
>
> lock.lockLevel = targetLockLevel;
> } else {
>
> - logger.logFinest(
> - ownerId.toString()
> - + " getting new lock for "
> - + resourceId.toString()
> - + " at level "
> - + targetLockLevel
> - + " at "
> - + System.currentTimeMillis());
> + if (logger.isFinestEnabled()) {
> + logger.logFinest(
> + ownerId.toString()
> + + " getting new lock for "
> + + resourceId.toString()
> + + " at level "
> + + targetLockLevel
> + + " at "
> + + System.currentTimeMillis());
> + }
>
> owners.put(ownerId, new LockOwner(ownerId, targetLockLevel));
> }
>
> 1.2 +25 -19
> jakarta-commons/transaction/src/java/org/apache/commons/transaction/util/RendezvousBarrier.java
>
> Index: RendezvousBarrier.java
> ===================================================================
> RCS file:
> /home/cvs/jakarta-commons/transaction/src/java/org/apache/commons/transaction/util/RendezvousBarrier.java,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- RendezvousBarrier.java 18 Nov 2004 23:27:18 -0000 1.1
> +++ RendezvousBarrier.java 29 Nov 2004 18:28:17 -0000 1.2
> @@ -61,7 +61,8 @@
> public synchronized void call() {
> count++;
> if (count >= parties) {
> - logger.logFine("Thread " + Thread.currentThread().getName() +
> " by CALL COMPLETING barrier " + name);
> + if (logger.isFineEnabled())
> + logger.logFine("Thread " +
> Thread.currentThread().getName() + " by CALL COMPLETING barrier " + name);
> notifyAll();
> }
> }
> @@ -76,26 +77,31 @@
> public synchronized void meet() throws InterruptedException {
> count++;
> if (count >= parties) {
> - logger.logFine("Thread " + Thread.currentThread().getName() +
> " by MEET COMPLETING barrier " + name);
> + if (logger.isFineEnabled())
> + logger.logFine("Thread " +
> Thread.currentThread().getName() + " by MEET COMPLETING barrier " + name);
> notifyAll();
> } else {
> - logger.logFine(
> - "At barrier "
> - + name
> - + " thread "
> - + Thread.currentThread().getName()
> - + " WAITING for "
> - + (parties - count)
> - + " of "
> - + parties
> - + " parties");
> + if (logger.isFineEnabled()) {
> + logger.logFine(
> + "At barrier "
> + + name
> + + " thread "
> + + Thread.currentThread().getName()
> + + " WAITING for "
> + + (parties - count)
> + + " of "
> + + parties
> + + " parties");
> + }
> wait(timeout);
> if (count == 0) {
> // means the barrier has been reset
> } else if (count >= parties) {
> - logger.logFine("Thread " +
> Thread.currentThread().getName() + " CONTINUING at barrier " + name);
> + if (logger.isFineEnabled())
> + logger.logFine("Thread " +
> Thread.currentThread().getName() + " CONTINUING at barrier " + name);
> } else {
> - logger.logFine("Thread " +
> Thread.currentThread().getName() + " FAILING at barrier " + name);
> + if (logger.isFineEnabled())
> + logger.logFine("Thread " +
> Thread.currentThread().getName() + " FAILING at barrier " + name);
> notifyAll();
> }
> }
> @@ -105,7 +111,7 @@
> * Releases all waiting threads and resets the number of parties
> already arrived.
> */
> public synchronized void reset() {
> - logger.logFine("Resetting barrier " + name);
> + if (logger.isFineEnabled()) logger.logFine("Resetting barrier " +
> name);
> count = 0;
> notifyAll();
> }
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]