[Mulgara-svn] r1164 - trunk/src/jar/resolver/java/org/mulgara/resolver
pag at mulgara.org
pag at mulgara.org
Sat Aug 23 01:56:40 UTC 2008
Author: pag
Date: 2008-08-22 18:56:39 -0700 (Fri, 22 Aug 2008)
New Revision: 1164
Modified:
trunk/src/jar/resolver/java/org/mulgara/resolver/StringPoolSession.java
Log:
Giving the XANodePool to the XAStringPool so that the string pool can ask for the nodes it needs. This is needed for stringpools that manage their own nodes.
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/StringPoolSession.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/StringPoolSession.java 2008-08-23 01:55:15 UTC (rev 1163)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/StringPoolSession.java 2008-08-23 01:56:39 UTC (rev 1164)
@@ -149,6 +149,7 @@
this.globalLock = globalLock;
this.state = OBTAIN;
this.currentThread = null;
+ this.persistentStringPool.setNodePool(this.persistentNodePool);
}
@@ -230,8 +231,7 @@
this.resources = resources;
synchronized (this.globalLock) {
- this.persistentStringPool.refresh();
- this.persistentNodePool.refresh();
+ this.persistentStringPool.refresh(); // calls refresh on the node pool
// !!Review: Call rollback on temporary? NB. Can't rollback non XA-SP/NP.
//this.temporaryStringPool.refresh();
//this.temporaryNodePool.refresh();
@@ -261,11 +261,8 @@
state = PREPARE;
- persistentStringPool.prepare();
- persistentNodePool.prepare();
- for (int i = 0; i < resources.length; i++) {
- resources[i].prepare();
- }
+ persistentStringPool.prepare(); // calls prepare on the node pool
+ for (int i = 0; i < resources.length; i++) resources[i].prepare();
}
} finally {
releaseCurrentThread();
@@ -288,11 +285,8 @@
state = COMMIT;
- persistentStringPool.commit();
- persistentNodePool.commit();
- for (int i = 0; i < resources.length; i++) {
- resources[i].commit();
- }
+ persistentStringPool.commit(); // calls commit() on the node pool
+ for (int i = 0; i < resources.length; i++) resources[i].commit();
}
} finally {
releaseCurrentThread();
@@ -311,11 +305,8 @@
throw new SimpleXAResourceException("Attempting to rollback phase outside transaction");
}
state = ROLLBACK;
- persistentStringPool.rollback();
- persistentNodePool.rollback();
- for (int i = 0; i < resources.length; i++) {
- resources[i].rollback();
- }
+ persistentStringPool.rollback(); // calls rollback on the node pool
+ for (int i = 0; i < resources.length; i++) resources[i].rollback();
}
} finally {
releaseCurrentThread();
@@ -338,15 +329,12 @@
state = RELEASE;
- persistentStringPool.release();
- persistentNodePool.release();
+ persistentStringPool.release(); // calls release on the node pool
// TODO determine if release() should be called for the temp components.
//temporaryStringPool.release();
//temporaryNodePool.release();
- for (int i = 0; i < resources.length; i++) {
- resources[i].release();
- }
+ for (int i = 0; i < resources.length; i++) resources[i].release();
}
} finally {
releaseCurrentThread();
@@ -585,8 +573,7 @@
if ((flags & WRITE_MASK) == WRITE) {
// Node does not already exist: create node in requested pool.
if ((flags & STORE_MASK) == PERSIST) {
- localNode = persistentNodePool.newNode();
- persistentStringPool.put(localNode, relativeSPObject);
+ localNode = persistentStringPool.put(relativeSPObject); // allocates from the internal node pool
if (logger.isDebugEnabled()) {
//logger.debug("Inserted " + spObject + " as " + localNode + " into persistent sp");
}
More information about the Mulgara-svn
mailing list