You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2007/09/20 14:11:10 UTC

svn commit: r577711 - in /jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core: ItemManager.java persistence/bundle/BundleDbPersistenceManager.java

Author: jukka
Date: Thu Sep 20 05:11:09 2007
New Revision: 577711

URL: http://svn.apache.org/viewvc?rev=577711&view=rev
Log:
1.3: Merged revisions 532720, 533091 and 535830 (JCR-862)

Modified:
    jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
    jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java

Modified: jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java?rev=577711&r1=577710&r2=577711&view=diff
==============================================================================
--- jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java (original)
+++ jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java Thu Sep 20 05:11:09 2007
@@ -33,9 +33,7 @@
 import org.apache.jackrabbit.core.util.Dumpable;
 import org.apache.jackrabbit.core.version.VersionHistoryImpl;
 import org.apache.jackrabbit.core.version.VersionImpl;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
 import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.PathFormat;
 import org.apache.jackrabbit.name.QName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -92,13 +90,14 @@
     /**
      * A cache for item instances created by this <code>ItemManager</code>
      */
-    private Map itemCache;
+    private final Map itemCache;
 
     /**
      * Creates a new per-session instance <code>ItemManager</code> instance.
      *
      * @param itemStateProvider the item state provider associated with
      *                          the new instance
+     * @param hierMgr           the hierarchy manager
      * @param session           the session associated with the new instance
      * @param rootNodeDef       the definition of the root node
      * @param rootNodeId        the id of the root node
@@ -121,7 +120,9 @@
      * Disposes this <code>ItemManager</code> and frees resources.
      */
     void dispose() {
-        itemCache.clear();
+        synchronized (itemCache) {
+            itemCache.clear();
+        }
     }
 
     private NodeDefinition getDefinition(NodeState state)
@@ -597,7 +598,9 @@
      *         or <code>null</code> if there's no corresponding cache entry.
      */
     private ItemImpl retrieveItem(ItemId id) {
-        return (ItemImpl) itemCache.get(id);
+        synchronized (itemCache) {
+            return (ItemImpl) itemCache.get(id);
+        }
     }
 
     /**
@@ -607,14 +610,16 @@
      * @param item the item to cache
      */
     private void cacheItem(ItemImpl item) {
-        ItemId id = item.getId();
-        if (itemCache.containsKey(id)) {
-            log.warn("overwriting cached item " + id);
-        }
-        if (log.isDebugEnabled()) {
-            log.debug("caching item " + id);
+        synchronized (itemCache) {
+            ItemId id = item.getId();
+            if (itemCache.containsKey(id)) {
+                log.warn("overwriting cached item " + id);
+            }
+            if (log.isDebugEnabled()) {
+                log.debug("caching item " + id);
+            }
+            itemCache.put(id, item);
         }
-        itemCache.put(id, item);
     }
 
     /**
@@ -626,7 +631,9 @@
         if (log.isDebugEnabled()) {
             log.debug("removing item " + id + " from cache");
         }
-        itemCache.remove(id);
+        synchronized (itemCache) {
+            itemCache.remove(id);
+        }
     }
 
     //-------------------------------------------------< misc. helper methods >
@@ -704,26 +711,28 @@
     /**
      * {@inheritDoc}
      */
-    public void dump(PrintStream ps) {
+    public synchronized void dump(PrintStream ps) {
         ps.println("ItemManager (" + this + ")");
         ps.println();
         ps.println("Items in cache:");
         ps.println();
-        Iterator iter = itemCache.keySet().iterator();
-        while (iter.hasNext()) {
-            ItemId id = (ItemId) iter.next();
-            ItemImpl item = (ItemImpl) itemCache.get(id);
-            if (item.isNode()) {
-                ps.print("Node: ");
-            } else {
-                ps.print("Property: ");
-            }
-            if (item.isTransient()) {
-                ps.print("transient ");
-            } else {
-                ps.print("          ");
+        synchronized (itemCache) {
+            Iterator iter = itemCache.keySet().iterator();
+            while (iter.hasNext()) {
+                ItemId id = (ItemId) iter.next();
+                ItemImpl item = (ItemImpl) itemCache.get(id);
+                if (item.isNode()) {
+                    ps.print("Node: ");
+                } else {
+                    ps.print("Property: ");
+                }
+                if (item.isTransient()) {
+                    ps.print("transient ");
+                } else {
+                    ps.print("          ");
+                }
+                ps.println(id + "\t" + item.safeGetJCRPath() + " (" + item + ")");
             }
-            ps.println(id + "\t" + item.safeGetJCRPath() + " (" + item + ")");
         }
     }
 

Modified: jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java?rev=577711&r1=577710&r2=577711&view=diff
==============================================================================
--- jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java (original)
+++ jackrabbit/branches/1.3/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java Thu Sep 20 05:11:09 2007
@@ -530,7 +530,7 @@
         Driver drv = (Driver) Class.forName(driver).newInstance();
         log.info("JDBC driver created: {}", drv);
         con = DriverManager.getConnection(url, user, password);
-        con.setAutoCommit(true);
+        //con.setAutoCommit(true);
 
         // make sure schemaObjectPrefix consists of legal name characters only
         prepareSchemaObjectPrefix();