Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 10913 invoked from network); 5 May 2009 12:27:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 5 May 2009 12:27:37 -0000 Received: (qmail 73374 invoked by uid 500); 5 May 2009 12:27:37 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 73306 invoked by uid 500); 5 May 2009 12:27:37 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 73297 invoked by uid 99); 5 May 2009 12:27:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 May 2009 12:27:37 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 May 2009 12:27:34 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 0416023888F1; Tue, 5 May 2009 12:27:12 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r771693 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data: DataStore.java FileDataStore.java GarbageCollector.java db/DbDataStore.java db/Pool.java Date: Tue, 05 May 2009 12:26:54 -0000 To: commits@jackrabbit.apache.org From: thomasm@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090505122713.0416023888F1@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: thomasm Date: Tue May 5 12:26:35 2009 New Revision: 771693 URL: http://svn.apache.org/viewvc?rev=771693&view=rev Log: JCR-2087 Upgrade to Java 5 as the base platform Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java?rev=771693&r1=771692&r2=771693&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java Tue May 5 12:26:35 2009 @@ -106,7 +106,7 @@ * @return an iterator over all DataIdentifier objects * @throws DataStoreException if the list could not be read */ - Iterator getAllIdentifiers() throws DataStoreException; + Iterator getAllIdentifiers() throws DataStoreException; /** * Initialized the data store Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java?rev=771693&r1=771692&r2=771693&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java Tue May 5 12:26:35 2009 @@ -104,7 +104,8 @@ /** * All data identifiers that are currently in use are in this set until they are garbage collected. */ - protected Map inUse = Collections.synchronizedMap(new WeakHashMap()); + protected Map> inUse = + Collections.synchronizedMap(new WeakHashMap>()); /** * Creates a uninitialized data store. @@ -165,7 +166,7 @@ } private void usesIdentifier(DataIdentifier identifier) { - inUse.put(identifier, new WeakReference(identifier)); + inUse.put(identifier, new WeakReference(identifier)); } /** @@ -308,10 +309,10 @@ } } } else if (file.isDirectory()) { - File[] list = file.listFiles(); - for (int i = 0; i < list.length; i++) { - count += deleteOlderRecursive(list[i], min); + for (File f: file.listFiles()) { + count += deleteOlderRecursive(f, min); } + // JCR-1396: FileDataStore Garbage Collector and empty directories // Automatic removal of empty directories (but not the root!) synchronized (this) { @@ -323,14 +324,15 @@ return count; } - private void listRecursive(List list, File file) { - File[] l = file.listFiles(); - for (int i = 0; l != null && i < l.length; i++) { - File f = l[i]; - if (f.isDirectory()) { - listRecursive(list, f); - } else { - list.add(f); + private void listRecursive(List list, File file) { + File[] files = file.listFiles(); + if (files != null) { + for (File f : files) { + if (f.isDirectory()) { + listRecursive(list, f); + } else { + list.add(f); + } } } } @@ -338,12 +340,11 @@ /** * {@inheritDoc} */ - public Iterator getAllIdentifiers() { - ArrayList files = new ArrayList(); + public Iterator getAllIdentifiers() { + ArrayList files = new ArrayList(); listRecursive(files, directory); - ArrayList identifiers = new ArrayList(); - for (int i = 0; i < files.size(); i++) { - File f = (File) files.get(i); + ArrayList identifiers = new ArrayList(); + for (File f: files) { String name = f.getName(); if (!name.startsWith(TMP)) { DataIdentifier id = new DataIdentifier(name); Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java?rev=771693&r1=771692&r2=771693&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java Tue May 5 12:26:35 2009 @@ -17,6 +17,7 @@ package org.apache.jackrabbit.core.data; import org.apache.jackrabbit.core.NodeId; +import org.apache.jackrabbit.core.NodeIdIterator; import org.apache.jackrabbit.core.PropertyId; import org.apache.jackrabbit.core.RepositoryImpl; import org.apache.jackrabbit.core.SessionImpl; @@ -78,7 +79,7 @@ private long startScanTimestamp; - private final ArrayList listeners = new ArrayList(); + private final ArrayList listeners = new ArrayList(); private final IterablePersistenceManager[] pmList; @@ -157,8 +158,8 @@ } if (pmList == null || !persistenceManagerScan) { - for (int i = 0; i < sessionList.length; i++) { - scanNodes(sessionList[i]); + for (Session s : sessionList) { + scanNodes(s); } } else { scanPersistenceManagers(); @@ -199,11 +200,10 @@ } private void scanPersistenceManagers() throws ItemStateException, RepositoryException { - for (int i = 0; i < pmList.length; i++) { - IterablePersistenceManager pm = pmList[i]; - Iterator it = pm.getAllNodeIds(null, 0); + for (IterablePersistenceManager pm : pmList) { + NodeIdIterator it = pm.getAllNodeIds(null, 0); while (it.hasNext()) { - NodeId id = (NodeId) it.next(); + NodeId id = it.nextNodeId(); if (callback != null) { callback.beforeScanning(null); } @@ -216,9 +216,8 @@ PropertyId pid = new PropertyId(id, name); PropertyState ps = pm.load(pid); if (ps.getType() == PropertyType.BINARY) { - InternalValue[] values = ps.getValues(); - for (int j = 0; j < values.length; j++) { - values[j].getBLOBFileValue().getLength(); + for (InternalValue v : ps.getValues()) { + v.getBLOBFileValue().getLength(); } } } @@ -235,8 +234,7 @@ public void stopScan() throws RepositoryException { checkScanStarted(); - for (int i = 0; i < listeners.size(); i++) { - Listener listener = (Listener) listeners.get(i); + for (Listener listener : listeners) { try { listener.stop(); } catch (Exception e) { Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java?rev=771693&r1=771692&r2=771693&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java Tue May 5 12:26:35 2009 @@ -282,12 +282,13 @@ /** * All data identifiers that are currently in use are in this set until they are garbage collected. */ - protected Map inUse = Collections.synchronizedMap(new WeakHashMap()); + protected Map> inUse = + Collections.synchronizedMap(new WeakHashMap>()); /** * The temporary identifiers that are currently in use. */ - protected List temporaryInUse = Collections.synchronizedList(new ArrayList()); + protected List temporaryInUse = Collections.synchronizedList(new ArrayList()); /** * {@inheritDoc} @@ -418,17 +419,15 @@ public synchronized int deleteAllOlderThan(long min) throws DataStoreException { ConnectionRecoveryManager conn = getConnection(); try { - ArrayList touch = new ArrayList(); - for (Iterator it = new ArrayList(inUse.keySet()).iterator(); it.hasNext();) { - DataIdentifier identifier = (DataIdentifier) it.next(); + ArrayList touch = new ArrayList(); + ArrayList ids = new ArrayList(inUse.keySet()); + for (DataIdentifier identifier: ids) { if (identifier != null) { touch.add(identifier.toString()); } } touch.addAll(temporaryInUse); - Iterator it = touch.iterator(); - while (it.hasNext()) { - String key = (String) it.next(); + for (String key : touch) { updateLastModifiedDate(key, 0); } // DELETE FROM DATASTORE WHERE LAST_MODIFIED getAllIdentifiers() throws DataStoreException { ConnectionRecoveryManager conn = getConnection(); - ArrayList list = new ArrayList(); + ArrayList list = new ArrayList(); ResultSet rs = null; try { // SELECT ID FROM DATASTORE @@ -830,16 +829,15 @@ * {@inheritDoc} */ public synchronized void close() { - ArrayList list = connectionPool.getAll(); - for (int i = 0; i < list.size(); i++) { - ConnectionRecoveryManager conn = (ConnectionRecoveryManager) list.get(i); + ArrayList list = connectionPool.getAll(); + for (ConnectionRecoveryManager conn : list) { conn.close(); } list.clear(); } protected void usesIdentifier(DataIdentifier identifier) { - inUse.put(identifier, new WeakReference(identifier)); + inUse.put(identifier, new WeakReference(identifier)); } /** Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java?rev=771693&r1=771692&r2=771693&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java Tue May 5 12:26:35 2009 @@ -17,10 +17,11 @@ package org.apache.jackrabbit.core.data.db; import java.util.ArrayList; +import java.util.concurrent.LinkedBlockingQueue; import javax.jcr.RepositoryException; -import EDU.oswego.cs.dl.util.concurrent.LinkedQueue; +import org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager; /** * Implementation of a simple ConnectionRecoveryManager pool. @@ -29,9 +30,9 @@ */ public class Pool { protected final int maxSize; - protected final ArrayList all = new ArrayList(); + protected final ArrayList all = new ArrayList(); protected final DbDataStore factory; - protected final LinkedQueue pool = new LinkedQueue(); + protected final LinkedBlockingQueue pool = new LinkedBlockingQueue(); /** * Create a new pool using the given factory and maximum pool size. @@ -51,8 +52,8 @@ * * @return the connection */ - protected Object get() throws InterruptedException, RepositoryException { - Object o = pool.poll(0); + protected ConnectionRecoveryManager get() throws InterruptedException, RepositoryException { + ConnectionRecoveryManager o = pool.poll(); if (o == null) { synchronized (all) { if (all.size() < maxSize) { @@ -72,7 +73,7 @@ * * @param o the connection */ - protected void add(Object o) throws InterruptedException { + protected void add(ConnectionRecoveryManager o) throws InterruptedException { pool.put(o); } @@ -81,7 +82,7 @@ * * @return all connections */ - protected ArrayList getAll() { + protected ArrayList getAll() { return all; } }