[jboss-cvs] JBossAS SVN: r84498 - projects/jboss-deployers/trunk/deployers-vfs-spi/src/main/java/org/jboss/deployers/vfs/spi/structure/modified.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 20 03:14:06 EST 2009
Author: alesj
Date: 2009-02-20 03:14:05 -0500 (Fri, 20 Feb 2009)
New Revision: 84498
Modified:
projects/jboss-deployers/trunk/deployers-vfs-spi/src/main/java/org/jboss/deployers/vfs/spi/structure/modified/TreeStructureCache.java
Log:
Synch on root.
Modified: projects/jboss-deployers/trunk/deployers-vfs-spi/src/main/java/org/jboss/deployers/vfs/spi/structure/modified/TreeStructureCache.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs-spi/src/main/java/org/jboss/deployers/vfs/spi/structure/modified/TreeStructureCache.java 2009-02-20 07:56:34 UTC (rev 84497)
+++ projects/jboss-deployers/trunk/deployers-vfs-spi/src/main/java/org/jboss/deployers/vfs/spi/structure/modified/TreeStructureCache.java 2009-02-20 08:14:05 UTC (rev 84498)
@@ -40,7 +40,7 @@
public class TreeStructureCache<T> implements StructureCache<T>
{
/** The tree root */
- private Node<T> root = createRoot();
+ private final Node<T> root = createRoot();
/**
* Create new root.
@@ -104,13 +104,16 @@
if (parent != null)
parent.removeChild(node);
else // clear root
- node.clear();
+ flush();
}
}
- public synchronized void flush()
+ public void flush()
{
- root = createRoot();
+ synchronized (root)
+ {
+ root.clear();
+ }
}
/**
@@ -122,14 +125,17 @@
protected Node<T> getNode(String path)
{
List<String> tokens = PathTokenizer.getTokens(path);
- Node<T> node = root;
- for (String token : tokens)
+ synchronized (root)
{
- node = node.getChild(token);
- if (node == null)
- break;
+ Node<T> node = root;
+ for (String token : tokens)
+ {
+ node = node.getChild(token);
+ if (node == null)
+ break;
+ }
+ return node;
}
- return node;
}
/**
@@ -138,30 +144,33 @@
* @param pathName the path name
* @return initialized node
*/
- protected synchronized Node<T> initializeNode(String pathName)
+ protected Node<T> initializeNode(String pathName)
{
List<String> tokens = PathTokenizer.getTokens(pathName);
- Node<T> node = root;
- boolean newNode = false;
- for (String token : tokens)
+ synchronized (root)
{
- if (newNode)
+ Node<T> node = root;
+ boolean newNode = false;
+ for (String token : tokens)
{
- node = new Node<T>(token, getDefaultValue(), node);
- }
- else
- {
- Node<T> child = node.getChild(token);
- if (child == null)
+ if (newNode)
{
- child = new Node<T>(token, getDefaultValue(), node);
- newNode = true;
+ node = new Node<T>(token, getDefaultValue(), node);
}
+ else
+ {
+ Node<T> child = node.getChild(token);
+ if (child == null)
+ {
+ child = new Node<T>(token, getDefaultValue(), node);
+ newNode = true;
+ }
- node = child;
+ node = child;
+ }
}
+ return node;
}
- return node;
}
/**
@@ -290,7 +299,7 @@
/**
* Clear node.
*/
- public synchronized void clear()
+ void clear()
{
value = null;
children = null;
More information about the jboss-cvs-commits
mailing list