You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by oz...@apache.org on 2005/02/10 02:49:59 UTC
cvs commit: jakarta-slide/src/share/org/apache/slide/store ExtendedStore.java
ozeigermann 2005/02/09 17:49:59
Modified: src/share/org/apache/slide/store ExtendedStore.java
Log:
Prevented multiple calls to enlist in case of failure as it simply makes no sense
Revision Changes Path
1.29 +33 -4 jakarta-slide/src/share/org/apache/slide/store/ExtendedStore.java
Index: ExtendedStore.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/store/ExtendedStore.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- ExtendedStore.java 21 Dec 2004 16:12:44 -0000 1.28
+++ ExtendedStore.java 10 Feb 2005 01:49:59 -0000 1.29
@@ -27,10 +27,12 @@
import java.util.Hashtable;
import java.util.Vector;
+import javax.transaction.Transaction;
import javax.transaction.xa.XAException;
import javax.transaction.xa.Xid;
import org.apache.commons.transaction.util.xa.XidWrapper;
+import org.apache.slide.common.Service;
import org.apache.slide.common.ServiceAccessException;
import org.apache.slide.common.ServiceParameterErrorException;
import org.apache.slide.common.ServiceParameterMissingException;
@@ -50,6 +52,7 @@
import org.apache.slide.structure.ObjectNode;
import org.apache.slide.structure.ObjectNotFoundException;
import org.apache.slide.util.ByteSizeLimitedObjectCache;
+import org.apache.slide.util.Messages;
import org.apache.slide.util.ObjectCache;
import org.apache.slide.util.TxLRUObjectCache;
import org.apache.slide.util.logger.Logger;
@@ -1291,6 +1294,32 @@
}
}
+ protected void enlist(Service service) throws ServiceAccessException {
+ boolean enlisted = false;
+ try {
+ Transaction transaction = namespace.getTransactionManager().getTransaction();
+ if (transaction == null) {
+ getLogger().log("WARNING: No active transaction", Logger.WARNING);
+ return;
+ }
+ enlisted = transaction.enlistResource(service);
+
+ } catch (Exception e) {
+ // Something went wrong.
+ setRollbackOnly();
+ throw new ServiceAccessException(this, e);
+ }
+ if (!enlisted) {
+ String exMessage = Messages.format(AbstractStore.class.getName() + ".enlistFail",
+ service);
+ setRollbackOnly();
+ throw new ServiceAccessException(this, exMessage);
+ }
+ if (getLogger().isEnabled(LOG_CHANNEL, Logger.DEBUG)) {
+ String logMessage = Messages.format(AbstractStore.class.getName() + ".enlist", service);
+ getLogger().log(logMessage, LOG_CHANNEL, Logger.DEBUG);
+ }
+ }
protected class TxCacheWrapper implements ObjectCache {
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org