You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2009/06/17 12:25:00 UTC

svn commit: r785540 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core: ./ cluster/ fs/db/ fs/local/ lock/ observation/ persistence/mem/ persistence/obj/ retention/ state/ xml/

Author: thomasm
Date: Wed Jun 17 10:24:59 2009
New Revision: 785540

URL: http://svn.apache.org/viewvc?rev=785540&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/ItemManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryFactoryImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransactionContext.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventListener.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/HandleMonitor.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/LocalFileSystem.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/DispatchAction.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventConsumer.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/FilteredEventIterator.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/retention/RetentionRegistryImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeStateMerger.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/StateChangeDispatcher.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/ClonedInputSource.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java Wed Jun 17 10:24:59 2009
@@ -93,7 +93,7 @@
     /**
      * A cache for item instances created by this <code>ItemManager</code>
      */
-    private final Map itemCache;
+    private final Map<ItemId, ItemData> itemCache;
 
     /**
      * Shareable node cache.
@@ -200,7 +200,7 @@
             if (!itemStateProvider.hasItemState(itemId)) {
                 return false;
             }
-            ItemData data = getItemData(itemId, path, true);
+            getItemData(itemId, path, true);
             return true;
         } catch (RepositoryException re) {
             return false;
@@ -589,11 +589,11 @@
             log.debug(msg);
             throw new RepositoryException(msg);
         }
-        ArrayList childIds = new ArrayList();
-        Iterator iter = ((NodeState) data.getState()).getChildNodeEntries().iterator();
+        ArrayList<ItemId> childIds = new ArrayList<ItemId>();
+        Iterator<ChildNodeEntry> iter = ((NodeState) data.getState()).getChildNodeEntries().iterator();
 
         while (iter.hasNext()) {
-            ChildNodeEntry entry = (ChildNodeEntry) iter.next();
+            ChildNodeEntry entry = iter.next();
             // delay check for read-access until item is being built
             // thus avoid duplicate check
             childIds.add(entry.getId());
@@ -620,10 +620,10 @@
             log.debug(msg);
             throw new RepositoryException(msg);
         }
-        Iterator iter = ((NodeState) data.getState()).getPropertyNames().iterator();
+        Iterator<Name> iter = ((NodeState) data.getState()).getPropertyNames().iterator();
 
         while (iter.hasNext()) {
-            Name propName = (Name) iter.next();
+            Name propName = iter.next();
             // make sure any of the properties can be read.
             if (canRead(new PropertyId(parentId, propName))) {
                 return true;
@@ -651,11 +651,11 @@
             log.debug(msg);
             throw new RepositoryException(msg);
         }
-        ArrayList childIds = new ArrayList();
-        Iterator iter = ((NodeState) data.getState()).getPropertyNames().iterator();
+        ArrayList<PropertyId> childIds = new ArrayList<PropertyId>();
+        Iterator<Name> iter = ((NodeState) data.getState()).getPropertyNames().iterator();
 
         while (iter.hasNext()) {
-            Name propName = (Name) iter.next();
+            Name propName = iter.next();
             PropertyId id = new PropertyId(parentId, propName);
             // delay check for read-access until item is being built
             // thus avoid duplicate check
@@ -738,7 +738,7 @@
      */
     private ItemData retrieveItem(ItemId id) {
         synchronized (itemCache) {
-            ItemData data = (ItemData) itemCache.get(id);
+            ItemData data = itemCache.get(id);
             if (data == null && id.denotesNode()) {
                 data = shareableNodesCache.retrieveFirst((NodeId) id);
             }
@@ -821,7 +821,7 @@
             if (data.isNode()) {
                 shareableNodesCache.evict((AbstractNodeData) data);
             }
-            ItemData cached = (ItemData) itemCache.get(data.getId());
+            ItemData cached = itemCache.get(data.getId());
             if (cached == data) {
                 itemCache.remove(data.getId());
             }
@@ -899,10 +899,8 @@
         ps.println("Items in cache:");
         ps.println();
         synchronized (itemCache) {
-            Iterator iter = itemCache.keySet().iterator();
-            while (iter.hasNext()) {
-                ItemId id = (ItemId) iter.next();
-                ItemData item = (ItemData) itemCache.get(id);
+            for (ItemId id : itemCache.keySet()) {
+                ItemData item = itemCache.get(id);
                 if (item.isNode()) {
                     ps.print("Node: ");
                 } else {
@@ -1070,10 +1068,10 @@
         public AbstractNodeData retrieveFirst(NodeId id) {
             ReferenceMap map = (ReferenceMap) cache.get(id);
             if (map != null) {
-                Iterator iter = map.values().iterator();
+                Iterator<AbstractNodeData> iter = map.values().iterator();
                 try {
                     while (iter.hasNext()) {
-                        AbstractNodeData data = (AbstractNodeData) iter.next();
+                        AbstractNodeData data = iter.next();
                         if (data != null) {
                             return data;
                         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryFactoryImpl.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryFactoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryFactoryImpl.java Wed Jun 17 10:24:59 2009
@@ -47,7 +47,7 @@
      * Map of repository instances. Key = repository home, value = repository
      * instance.
      */
-    private static final Map REPOSITORY_INSTANCES = new HashMap();
+    private static final Map<String, JackrabbitRepository> REPOSITORY_INSTANCES = new HashMap<String, JackrabbitRepository>();
 
     public Repository getRepository(Map parameters) throws RepositoryException {
         JackrabbitRepository repo;
@@ -80,7 +80,7 @@
     private JackrabbitRepository getOrCreateRepository(String conf,
                                                        String home)
             throws RepositoryException {
-        JackrabbitRepository repo = (JackrabbitRepository) REPOSITORY_INSTANCES.get(home);
+        JackrabbitRepository repo = REPOSITORY_INSTANCES.get(home);
         if (repo == null) {
             if (home == null) {
                 repo = new TransientRepository();

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java Wed Jun 17 10:24:59 2009
@@ -49,6 +49,7 @@
 import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
 import org.apache.jackrabbit.core.nodetype.virtual.VirtualNodeTypeStateManager;
 import org.apache.jackrabbit.core.observation.DelegatingObservationDispatcher;
+import org.apache.jackrabbit.core.observation.EventState;
 import org.apache.jackrabbit.core.observation.EventStateCollection;
 import org.apache.jackrabbit.core.observation.ObservationDispatcher;
 import org.apache.jackrabbit.core.persistence.PMContext;
@@ -64,7 +65,6 @@
 import org.apache.jackrabbit.core.state.ManagedMLRUItemStateCacheFactory;
 import org.apache.jackrabbit.core.state.SharedItemStateManager;
 import org.apache.jackrabbit.core.util.RepositoryLockMechanism;
-import org.apache.jackrabbit.core.value.InternalValue;
 import org.apache.jackrabbit.core.version.VersionManager;
 import org.apache.jackrabbit.core.version.VersionManagerImpl;
 import org.apache.jackrabbit.core.xml.ClonedInputSource;
@@ -197,7 +197,7 @@
     /**
      * map of workspace names and <code>WorkspaceInfo<code>s.
      */
-    private final HashMap wspInfos = new HashMap();
+    private final HashMap<String, WorkspaceInfo> wspInfos = new HashMap<String, WorkspaceInfo>();
 
     /**
      * active sessions (weak references)
@@ -206,11 +206,11 @@
             new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.WEAK);
 
     // misc. statistics
-    private long nodesCount = 0;
-    private long propsCount = 0;
+    private long nodesCount;
+    private long propsCount;
 
     // flag indicating if repository has been shut down
-    private boolean disposed = false;
+    private boolean disposed;
 
     /**
      * The repository lock mechanism ensures that a repository is only instantiated once.
@@ -298,9 +298,7 @@
             dataStore = repConfig.getDataStore();
 
             // init workspace configs
-            Iterator iter = repConfig.getWorkspaceConfigs().iterator();
-            while (iter.hasNext()) {
-                WorkspaceConfig config = (WorkspaceConfig) iter.next();
+            for (WorkspaceConfig config : repConfig.getWorkspaceConfigs()) {
                 WorkspaceInfo info = createWorkspaceInfo(config);
                 wspInfos.put(config.getName(), info);
             }
@@ -491,7 +489,7 @@
            secWspName = smc.getWorkspaceName();
         }
         try {
-            ((WorkspaceInfo) wspInfos.get(wspName)).initialize();
+            (wspInfos.get(wspName)).initialize();
             if (secWspName != null && !wspInfos.containsKey(secWspName)) {
                 createWorkspace(secWspName);
                 log.info("created system workspace: {}", secWspName);
@@ -709,7 +707,7 @@
      */
     protected String[] getWorkspaceNames() {
         synchronized (wspInfos) {
-            return (String[]) wspInfos.keySet().toArray(new String[wspInfos.keySet().size()]);
+            return wspInfos.keySet().toArray(new String[wspInfos.keySet().size()]);
         }
     }
 
@@ -730,7 +728,7 @@
 
         WorkspaceInfo wspInfo;
         synchronized (wspInfos) {
-            wspInfo = (WorkspaceInfo) wspInfos.get(workspaceName);
+            wspInfo = wspInfos.get(workspaceName);
             if (wspInfo == null) {
                 throw new NoSuchWorkspaceException(workspaceName);
             }
@@ -831,9 +829,7 @@
 
         if (createWorkspaceEventChannel == null) {
             createWorkspaceInternal(workspaceName, configTemplate);
-        }
-        else {
-
+        } else {
             ClonedInputSource template = new ClonedInputSource(configTemplate);
             createWorkspaceInternal(workspaceName, template.cloneInputSource());
             createWorkspaceEventChannel.workspaceCreated(workspaceName, template);
@@ -1114,8 +1110,8 @@
         synchronized (activeSessions) {
             int cnt = 0;
             sa = new SessionImpl[activeSessions.size()];
-            for (Iterator it = activeSessions.values().iterator(); it.hasNext(); cnt++) {
-                sa[cnt] = (SessionImpl) it.next();
+            for (Iterator<SessionImpl> it = activeSessions.values().iterator(); it.hasNext(); cnt++) {
+                sa[cnt] = it.next();
             }
         }
         for (int i = 0; i < sa.length; i++) {
@@ -1131,8 +1127,7 @@
 
         // shut down workspaces
         synchronized (wspInfos) {
-            for (Iterator it = wspInfos.values().iterator(); it.hasNext();) {
-                WorkspaceInfo wspInfo = (WorkspaceInfo) it.next();
+            for (WorkspaceInfo wspInfo : wspInfos.values()) {
                 wspInfo.dispose();
             }
         }
@@ -2183,7 +2178,7 @@
          * {@inheritDoc}
          */
         public void externalUpdate(ChangeLog external,
-                                   List events,
+                                   List<EventState> events,
                                    long timestamp,
                                    String userData) throws RepositoryException {
             try {
@@ -2257,9 +2252,9 @@
                     }
                 }
                 // get names of workspaces
-                Set wspNames;
+                Set<String> wspNames;
                 synchronized (wspInfos) {
-                    wspNames = new HashSet(wspInfos.keySet());
+                    wspNames = new HashSet<String>(wspInfos.keySet());
                 }
                 // remove default workspace (will never be shutdown when idle)
                 wspNames.remove(repConfig.getDefaultWorkspaceName());
@@ -2274,10 +2269,10 @@
 
                 // remaining names denote workspaces which currently have not
                 // active sessions
-                for (Iterator it = wspNames.iterator(); it.hasNext();) {
+                for (String wspName : wspNames) {
                     WorkspaceInfo wspInfo;
                     synchronized (wspInfos) {
-                        wspInfo = (WorkspaceInfo) wspInfos.get(it.next());
+                        wspInfo = wspInfos.get(wspName);
                     }
                     wspInfo.disposeIfIdle(maxIdleTime);
                 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransactionContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransactionContext.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransactionContext.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransactionContext.java Wed Jun 17 10:24:59 2009
@@ -52,7 +52,7 @@
     /**
      * The per thread associated Xid
      */
-    private static ThreadLocal CURRENT_XID = new ThreadLocal();
+    private static final ThreadLocal<Xid> CURRENT_XID = new ThreadLocal<Xid>();
 
     /**
      * Create a global timer for all transaction contexts.
@@ -73,11 +73,11 @@
     * The Xid
     */
    private final Xid xid;
-   
+
     /**
      * Transaction attributes.
      */
-    private final Map attributes = new HashMap();
+    private final Map<String, Object> attributes = new HashMap<String, Object>();
 
     /**
      * Status.
@@ -315,7 +315,7 @@
     public void setSuspended(boolean suspended) {
         this.suspended = suspended;
     }
-    
+
     /**
      * Helper Method to bind the {@link Xid} associated with this {@link TransactionContext}
      * to the {@link #CURRENT_XID} ThreadLocal.
@@ -331,25 +331,25 @@
     private void cleanCurrentXid() {
         CURRENT_XID.set(null);
     }
-    
+
     /**
      * Returns the {@link Xid} bind to the {@link #CURRENT_XID} ThreadLocal
      * @return current Xid or null
      */
     public static Xid getCurrentXid() {
-        return (Xid) CURRENT_XID.get();
+        return CURRENT_XID.get();
     }
-    
+
     /**
      * Helper Method to check if the given {@link Xid} has the same globalTransactionId
      * as the current {@link Xid} bind to the {@link #CURRENT_XID} ThreadLocal
      * @param xid Xid to check
-     * @param fallback if either the given {@link Xid} or the current {@link Xid} is null we can not check if they 
+     * @param fallback if either the given {@link Xid} or the current {@link Xid} is null we can not check if they
      *        are same, the fallback value will be returned
      * @return true if the same otherwise false
      */
     public static boolean isCurrentXid(Xid xid, boolean fallback) {
-        Xid currentXid = (Xid) CURRENT_XID.get();
-        return fallback ? true : (currentXid == null || xid == null) ? fallback : Arrays.equals(xid.getGlobalTransactionId(), currentXid.getGlobalTransactionId());  
+        Xid currentXid = CURRENT_XID.get();
+        return fallback ? true : (currentXid == null || xid == null) ? fallback : Arrays.equals(xid.getGlobalTransactionId(), currentXid.getGlobalTransactionId());
     }
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java Wed Jun 17 10:24:59 2009
@@ -17,7 +17,6 @@
 package org.apache.jackrabbit.core;
 
 import java.util.HashMap;
-import java.util.Iterator;
 
 import javax.jcr.AccessDeniedException;
 import javax.jcr.InvalidItemStateException;
@@ -794,22 +793,21 @@
         sanityCheck();
 
         // add all versions to map of versions to restore
-        final HashMap toRestore = new HashMap();
-        for (int i = 0; i < versions.length; i++) {
-            VersionImpl v = (VersionImpl) versions[i];
+        final HashMap<String, VersionImpl> toRestore = new HashMap<String, VersionImpl>();
+        for (Version v : versions) {
             VersionHistory vh = v.getContainingHistory();
             // check for collision
             if (toRestore.containsKey(vh.getUUID())) {
                 throw new VersionException("Unable to restore. Two or more versions have same version history.");
             }
-            toRestore.put(vh.getUUID(), v);
+            toRestore.put(vh.getUUID(), (VersionImpl) v);
         }
 
         // create a version selector to the set of versions
         VersionSelector vsel = new VersionSelector() {
             public Version select(VersionHistory versionHistory) throws RepositoryException {
                 // try to select version as specified
-                Version v = (Version) toRestore.get(versionHistory.getUUID());
+                Version v = toRestore.get(versionHistory.getUUID());
                 if (v == null) {
                     // select latest one
                     v = DateVersionSelector.selectByDate(versionHistory, null);
@@ -831,15 +829,13 @@
             int numRestored = 0;
             while (toRestore.size() > 0) {
                 Version[] restored = null;
-                Iterator iter = toRestore.values().iterator();
-                while (iter.hasNext()) {
-                    VersionImpl v = (VersionImpl) iter.next();
+                for (VersionImpl v : toRestore.values()) {
                     try {
                         NodeImpl node = (NodeImpl) session.getNodeByUUID(v.getInternalFrozenNode().getFrozenUUID());
                         restored = node.internalRestore(v, vsel, removeExisting);
                         // remove restored versions from set
-                        for (int i = 0; i < restored.length; i++) {
-                            toRestore.remove(restored[i].getContainingHistory().getUUID());
+                        for (Version r : restored) {
+                            toRestore.remove(r.getContainingHistory().getUUID());
                         }
                         numRestored += restored.length;
                         break;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventListener.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventListener.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventListener.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/UpdateEventListener.java Wed Jun 17 10:24:59 2009
@@ -17,6 +17,8 @@
 package org.apache.jackrabbit.core.cluster;
 
 import java.util.List;
+
+import org.apache.jackrabbit.core.observation.EventState;
 import org.apache.jackrabbit.core.state.ChangeLog;
 import javax.jcr.RepositoryException;
 
@@ -34,7 +36,7 @@
      * @param userData the user data associated with this update.
      * @throws RepositoryException if the update cannot be processed
      */
-    void externalUpdate(ChangeLog changes, List events, long timestamp, String userData)
+    void externalUpdate(ChangeLog changes, List<EventState> events, long timestamp, String userData)
             throws RepositoryException;
 
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java Wed Jun 17 10:24:59 2009
@@ -81,7 +81,7 @@
      */
     private static Logger log = LoggerFactory.getLogger(OracleFileSystem.class);
 
-    private Class blobClass;
+    private Class< ? > blobClass;
     private Integer durationSessionConstant;
     private Integer modeReadWriteConstant;
 
@@ -574,7 +574,7 @@
         open.invoke(blob, new Object[]{modeReadWriteConstant});
         Method getBinaryOutputStream =
                 blobClass.getMethod("getBinaryOutputStream", new Class[0]);
-        OutputStream out = (OutputStream) getBinaryOutputStream.invoke(blob, null);
+        OutputStream out = (OutputStream) getBinaryOutputStream.invoke(blob);
         try {
             IOUtils.copy(in, out);
         } finally {
@@ -585,7 +585,7 @@
             out.close();
         }
         Method close = blobClass.getMethod("close", new Class[0]);
-        close.invoke(blob, null);
+        close.invoke(blob);
         return (Blob) blob;
     }
 
@@ -595,6 +595,6 @@
     protected void freeTemporaryBlob(Object blob) throws Exception {
         // blob.freeTemporary();
         Method freeTemporary = blobClass.getMethod("freeTemporary", new Class[0]);
-        freeTemporary.invoke(blob, null);
+        freeTemporary.invoke(blob);
     }
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/HandleMonitor.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/HandleMonitor.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/HandleMonitor.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/HandleMonitor.java Wed Jun 17 10:24:59 2009
@@ -26,7 +26,6 @@
 import java.io.InputStream;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 
 /**
  * This Class implements a very simple open handle monitor for the local
@@ -44,7 +43,7 @@
     /**
      * the map of open handles (key=File, value=Handle)
      */
-    private HashMap openHandles = new HashMap();
+    private HashMap<File, Handle> openHandles = new HashMap<File, Handle>();
 
     /**
      * Opens a file and returns an InputStream
@@ -82,7 +81,7 @@
      * @return
      */
     private Handle getHandle(File file) {
-        Handle handle = (Handle) openHandles.get(file);
+        Handle handle = openHandles.get(file);
         if (handle == null) {
             handle = new Handle(file);
             openHandles.put(file, handle);
@@ -95,10 +94,8 @@
      */
     public void dump() {
         log.info("Number of open files: " + openHandles.size());
-        Iterator iter = openHandles.keySet().iterator();
-        while (iter.hasNext()) {
-            File file = (File) iter.next();
-            Handle handle = (Handle) openHandles.get(file);
+        for (File file : openHandles.keySet()) {
+            Handle handle = openHandles.get(file);
             handle.dump();
         }
     }
@@ -108,7 +105,7 @@
      * @param file
      */
     public void dump(File file) {
-        Handle handle = (Handle) openHandles.get(file);
+        Handle handle = openHandles.get(file);
         if (handle != null) {
             handle.dump(true);
         }
@@ -127,7 +124,7 @@
         /**
          * all open streams of this handle
          */
-        private HashSet streams = new HashSet();
+        private HashSet<Handle.MonitoredInputStream> streams = new HashSet<Handle.MonitoredInputStream>();
 
         /**
          * Creates a new handle for a file
@@ -172,9 +169,7 @@
         private void dump(boolean detailed) {
             if (detailed) {
                 log.info("- " + file.getPath() + ", " + streams.size());
-                Iterator iter = streams.iterator();
-                while (iter.hasNext()) {
-                    Handle.MonitoredInputStream in = (Handle.MonitoredInputStream) iter.next();
+                for (Handle.MonitoredInputStream in : streams) {
                     in.dump();
                 }
             } else {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/LocalFileSystem.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/LocalFileSystem.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/LocalFileSystem.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/LocalFileSystem.java Wed Jun 17 10:24:59 2009
@@ -41,7 +41,7 @@
 
     private File root;
 
-    private HandleMonitor monitor = null;
+    private HandleMonitor monitor;
 
     /**
      * Default constructor

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java Wed Jun 17 10:24:59 2009
@@ -93,22 +93,25 @@
     private final PathMap lockMap = new PathMap();
 
     private final ReentrantLock lockMapLock = new ReentrantLock(){
-        
+
         private Xid activeXid;
-        
+
         public void acquire() throws InterruptedException {
-            if (Thread.interrupted()) throw new InterruptedException();
+            if (Thread.interrupted()) {
+                throw new InterruptedException();
+            }
             Thread caller = Thread.currentThread();
-            synchronized(this) {
+            synchronized (this) {
                 boolean allow = TransactionContext.isCurrentXid(activeXid, caller == owner_);
                 if (allow) {
                     ++holds_;
                 } else {
-                    try {  
-                        while (owner_ != null) 
-                            wait(); 
+                    try {
+                        while (owner_ != null) {
+                            wait();
+                        }
                         owner_ = caller;
-                        activeXid = (Xid) TransactionContext.getCurrentXid();
+                        activeXid = TransactionContext.getCurrentXid();
                         holds_ = 1;
                     } catch (InterruptedException ex) {
                         notify();
@@ -117,18 +120,18 @@
                 }
             }
         }
-        
+
         public synchronized void release()  {
             boolean allow = TransactionContext.isCurrentXid(activeXid, Thread.currentThread() == owner_);
-            if (!allow)
-                throw new Error("Illegal Lock usage"); 
-
+            if (!allow) {
+                throw new Error("Illegal Lock usage");
+            }
             if (--holds_ == 0) {
                 owner_ = null;
                 activeXid = null;
-                notify(); 
+                notify();
             }
-        }       
+        }
     };
 
     /**
@@ -257,7 +260,7 @@
             writer = new BufferedWriter(
                     new OutputStreamWriter(locksFile.getOutputStream()));
             for (int i = 0; i < list.size(); i++) {
-                AbstractLockInfo info = (AbstractLockInfo) list.get(i);
+                AbstractLockInfo info = list.get(i);
                 writer.write(info.lockToken.toString());
                 writer.newLine();
             }
@@ -388,7 +391,7 @@
             }
 
             getSessionLockManager(session).lockTokenRemoved(info.getLockToken(session));
-            
+
             element.set(null);
             info.setLive(false);
 
@@ -423,7 +426,7 @@
                 }
             }
         }, false);
-        return (AbstractLockInfo[]) infos.toArray(new AbstractLockInfo[infos.size()]);
+        return infos.toArray(new AbstractLockInfo[infos.size()]);
     }
 
     /**
@@ -1020,7 +1023,7 @@
      * its position.
      */
     private void refresh(PathMap.Element element) {
-        final ArrayList infos = new ArrayList();
+        final ArrayList<LockInfo> infos = new ArrayList<LockInfo>();
         boolean needsSave = false;
 
         // save away non-empty children
@@ -1037,7 +1040,7 @@
         // now re-insert at appropriate location or throw away if node
         // does no longer exist
         for (int i = 0; i < infos.size(); i++) {
-            LockInfo info = (LockInfo) infos.get(i);
+            LockInfo info = infos.get(i);
             try {
                 NodeImpl node = (NodeImpl) sysSession.getItemManager().
                         getItem(info.getId());

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/DispatchAction.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/DispatchAction.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/DispatchAction.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/DispatchAction.java Wed Jun 17 10:24:59 2009
@@ -34,13 +34,13 @@
      * <code>EventStates</code> are dispatched to these
      * <code>EventConsumer</code>s.
      */
-    private final Collection eventConsumers;
+    private final Collection<EventConsumer> eventConsumers;
 
     /**
      * Creates a new <code>DispatchAction</code> struct with
      * <code>eventStates</code> and <code>eventConsumers</code>.
      */
-    DispatchAction(EventStateCollection eventStates, Collection eventConsumers) {
+    DispatchAction(EventStateCollection eventStates, Collection<EventConsumer> eventConsumers) {
         this.eventStates = eventStates;
         this.eventConsumers = eventConsumers;
     }
@@ -60,7 +60,7 @@
      *
      * @return a <code>Collection</code> of {@link EventConsumer}s.
      */
-    Collection getEventConsumers() {
+    Collection<EventConsumer> getEventConsumers() {
         return eventConsumers;
     }
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventConsumer.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventConsumer.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventConsumer.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventConsumer.java Wed Jun 17 10:24:59 2009
@@ -74,7 +74,7 @@
      * <code>ItemId</code>s of denied <code>ItemState</code>s. The map uses the
      * <code>EventStateCollection</code> as the key to reference a deny Set.
      */
-    private final Map accessDenied = Collections.synchronizedMap(new WeakHashMap());
+    private final Map<EventStateCollection, Set<ItemId>> accessDenied = Collections.synchronizedMap(new WeakHashMap<EventStateCollection, Set<ItemId>>());
 
     /**
      * cached hash code value
@@ -137,10 +137,10 @@
      * @param events the collection of {@link EventState}s.
      */
     void prepareEvents(EventStateCollection events) {
-        Iterator it = events.iterator();
-        Set denied = null;
+        Iterator<EventState> it = events.iterator();
+        Set<ItemId> denied = null;
         while (it.hasNext()) {
-            EventState state = (EventState) it.next();
+            EventState state = it.next();
             if (state.getType() == Event.NODE_REMOVED
                     || state.getType() == Event.PROPERTY_REMOVED) {
 
@@ -160,7 +160,7 @@
                 }
                 if (!granted) {
                     if (denied == null) {
-                        denied = new HashSet();
+                        denied = new HashSet<ItemId>();
                     }
                     denied.add(targetId);
                 }
@@ -178,15 +178,15 @@
      * @param events       the collection of {@link EventState}s.
      * @param deletedItems Iterator of deleted <code>ItemState</code>s.
      */
-    void prepareDeleted(EventStateCollection events, Iterator deletedItems) {
-        Set denied = null;
-        Set deletedIds = new HashSet();
+    void prepareDeleted(EventStateCollection events, Iterator<ItemState> deletedItems) {
+        Set<ItemId> denied = null;
+        Set<ItemId> deletedIds = new HashSet<ItemId>();
         while (deletedItems.hasNext()) {
-            deletedIds.add(((ItemState) deletedItems.next()).getId());
+            deletedIds.add((deletedItems.next()).getId());
         }
 
-        for (Iterator it = events.iterator(); it.hasNext();) {
-            EventState evState = (EventState) it.next();
+        for (Iterator<EventState> it = events.iterator(); it.hasNext();) {
+            EventState evState = it.next();
             ItemId targetId = evState.getTargetId();
             if (deletedIds.contains(targetId)) {
                 // check read permission
@@ -198,7 +198,7 @@
                 }
                 if (!granted) {
                     if (denied == null) {
-                        denied = new HashSet();
+                        denied = new HashSet<ItemId>();
                     }
                     denied.add(targetId);
                 }
@@ -217,17 +217,17 @@
      */
     void consumeEvents(EventStateCollection events) throws RepositoryException {
         // Set of ItemIds of denied ItemStates
-        Set denied = (Set) accessDenied.remove(events);
+        Set<ItemId> denied = accessDenied.remove(events);
         // check permissions
-        for (Iterator it = events.iterator(); it.hasNext() && session.isLive();) {
-            EventState state = (EventState) it.next();
+        for (Iterator<EventState> it = events.iterator(); it.hasNext() && session.isLive();) {
+            EventState state = it.next();
             if (state.getType() == Event.NODE_ADDED
                     || state.getType() == Event.PROPERTY_ADDED
                     || state.getType() == Event.PROPERTY_CHANGED) {
                 ItemId targetId = state.getTargetId();
                 if (!canRead(state)) {
                     if (denied == null) {
-                        denied = new HashSet();
+                        denied = new HashSet<ItemId>();
                     }
                     denied.add(targetId);
                 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java Wed Jun 17 10:24:59 2009
@@ -71,7 +71,7 @@
     /**
      * List of events
      */
-    private final List events = new ArrayList();
+    private final List<EventState> events = new ArrayList<EventState>();
 
     /**
      * Event dispatcher.
@@ -161,8 +161,8 @@
 
         // 1. modified items
 
-        for (Iterator it = changes.modifiedStates(); it.hasNext();) {
-            ItemState state = (ItemState) it.next();
+        for (Iterator<ItemState> it = changes.modifiedStates(); it.hasNext();) {
+            ItemState state = it.next();
             if (state.isNode()) {
                 // node changed
                 // covers the following cases:
@@ -195,7 +195,7 @@
                     NodeId newParentId = n.getParentId();
                     if (newParentId != null && !oldParentId.equals(newParentId) &&
                             !n.isShareable()) {
-                        
+
                         // node moved
                         // generate node removed & node added event
                         NodeState oldParent;
@@ -208,7 +208,7 @@
                         }
 
                         NodeTypeImpl oldParentNodeType = getNodeType(oldParent, session);
-                        Set mixins = oldParent.getMixinTypeNames();
+                        Set<Name> mixins = oldParent.getMixinTypeNames();
                         Path newPath = getPath(n.getNodeId(), hmgr);
                         Path oldPath = getZombiePath(n.getNodeId(), hmgr);
                         events.add(EventState.childNodeRemoved(oldParentId,
@@ -248,8 +248,7 @@
                         if (parent != null) {
                             // check if node has been renamed
                             ChildNodeEntry moved = null;
-                            for (Iterator removedNodes = parent.getRemovedChildNodeEntries().iterator(); removedNodes.hasNext();) {
-                                ChildNodeEntry child = (ChildNodeEntry) removedNodes.next();
+                            for (ChildNodeEntry child : parent.getRemovedChildNodeEntries()) {
                                 if (child.getId().equals(n.getNodeId())) {
                                     // found node re-added with different name
                                     moved = child;
@@ -257,7 +256,7 @@
                             }
                             if (moved != null) {
                                 NodeTypeImpl nodeType = getNodeType(parent, session);
-                                Set mixins = parent.getMixinTypeNames();
+                                Set<Name> mixins = parent.getMixinTypeNames();
                                 Path newPath = getPath(state.getId(), hmgr);
                                 Path parentPath = getParent(newPath);
                                 Path oldPath;
@@ -294,14 +293,13 @@
                 }
 
                 // check if child nodes of modified node state have been reordered
-                List reordered = n.getReorderedChildNodeEntries();
+                List<ChildNodeEntry> reordered = n.getReorderedChildNodeEntries();
                 NodeTypeImpl nodeType = getNodeType(n, session);
-                Set mixins = n.getMixinTypeNames();
+                Set<Name> mixins = n.getMixinTypeNames();
                 if (reordered.size() > 0) {
                     // create a node removed and a node added event for every
                     // reorder
-                    for (Iterator ro = reordered.iterator(); ro.hasNext();) {
-                        ChildNodeEntry child = (ChildNodeEntry) ro.next();
+                    for (ChildNodeEntry child : reordered) {
                         Path.Element addedElem = getPathElement(child);
                         Path parentPath = getPath(n.getNodeId(), hmgr);
                         // get removed index
@@ -320,13 +318,13 @@
                                 parentPath, child.getId(), addedElem,
                                 nodeType.getQName(), mixins, session));
 
-                        List cne = n.getChildNodeEntries();
+                        List<ChildNodeEntry> cne = n.getChildNodeEntries();
                         // index of the child node entry before which this
                         // child node entry was reordered
                         int idx = cne.indexOf(child) + 1;
                         Path.Element beforeElem = null;
                         if (idx < cne.size()) {
-                            beforeElem = getPathElement((ChildNodeEntry) cne.get(idx));
+                            beforeElem = getPathElement(cne.get(idx));
                         }
 
                         events.add(EventState.nodeReordered(n.getNodeId(),
@@ -343,7 +341,7 @@
                 Path path = getPath(state.getId(), hmgr);
                 NodeState parent = (NodeState) stateMgr.getItemState(state.getParentId());
                 NodeTypeImpl nodeType = getNodeType(parent, session);
-                Set mixins = parent.getMixinTypeNames();
+                Set<Name> mixins = parent.getMixinTypeNames();
                 events.add(EventState.propertyChanged(state.getParentId(),
                         getParent(path), path.getNameElement(),
                         nodeType.getQName(), mixins, session));
@@ -352,14 +350,14 @@
 
         // 2. removed items
 
-        for (Iterator it = changes.deletedStates(); it.hasNext();) {
-            ItemState state = (ItemState) it.next();
+        for (Iterator<ItemState> it = changes.deletedStates(); it.hasNext();) {
+            ItemState state = it.next();
             if (state.isNode()) {
                 // node deleted
                 NodeState n = (NodeState) state;
                 NodeState parent = (NodeState) stateMgr.getItemState(n.getParentId());
                 NodeTypeImpl nodeType = getNodeType(parent, session);
-                Set mixins = parent.getMixinTypeNames();
+                Set<Name> mixins = parent.getMixinTypeNames();
                 Path path = getZombiePath(state.getId(), hmgr);
                 events.add(EventState.childNodeRemoved(n.getParentId(),
                         getParent(path),
@@ -378,7 +376,7 @@
                     NodeState n = (NodeState) changes.get(state.getParentId());
                     // node state exists -> only property removed
                     NodeTypeImpl nodeType = getNodeType(n, session);
-                    Set mixins = n.getMixinTypeNames();
+                    Set<Name> mixins = n.getMixinTypeNames();
                     Path path = getZombiePath(state.getId(), hmgr);
                     events.add(EventState.propertyRemoved(state.getParentId(),
                             getParent(path),
@@ -394,8 +392,8 @@
 
         // 3. added items
 
-        for (Iterator it = changes.addedStates(); it.hasNext();) {
-            ItemState state = (ItemState) it.next();
+        for (Iterator<ItemState> it = changes.addedStates(); it.hasNext();) {
+            ItemState state = it.next();
             if (state.isNode()) {
                 // node created
                 NodeState n = (NodeState) state;
@@ -403,7 +401,7 @@
                 // the parent of an added item is always modified or new
                 NodeState parent = (NodeState) changes.get(parentId);
                 NodeTypeImpl nodeType = getNodeType(parent, session);
-                Set mixins = parent.getMixinTypeNames();
+                Set<Name> mixins = parent.getMixinTypeNames();
                 Path path = getPath(n.getNodeId(), hmgr);
                 events.add(EventState.childNodeAdded(parentId,
                         getParent(path),
@@ -419,7 +417,7 @@
                 // property created / set
                 NodeState n = (NodeState) changes.get(state.getParentId());
                 NodeTypeImpl nodeType = getNodeType(n, session);
-                Set mixins = n.getMixinTypeNames();
+                Set<Name> mixins = n.getMixinTypeNames();
                 Path path = getPath(state.getId(), hmgr);
                 events.add(EventState.propertyAdded(state.getParentId(),
                         getParent(path),
@@ -436,7 +434,7 @@
      *
      * @param c
      */
-    public void addAll(Collection c) {
+    public void addAll(Collection<EventState> c) {
         events.addAll(c);
     }
 
@@ -495,7 +493,7 @@
      *
      * @return an iterator over {@link EventState} instance.
      */
-    Iterator iterator() {
+    Iterator<EventState> iterator() {
         return events.iterator();
     }
 
@@ -503,7 +501,7 @@
      * Return the list of events.
      * @return list of events
      */
-    public List getEvents() {
+    public List<EventState> getEvents() {
         return Collections.unmodifiableList(events);
     }
 
@@ -540,8 +538,7 @@
             throws ItemStateException {
         if (n.isShareable()) {
             // check if a share was added or removed
-            for (Iterator added = n.getAddedShares().iterator(); added.hasNext(); ) {
-                NodeId parentId = (NodeId) added.next();
+            for (NodeId parentId : n.getAddedShares()) {
                 // ignore primary parent id
                 if (n.getParentId().equals(parentId)) {
                     continue;
@@ -565,8 +562,7 @@
                 es.setShareableNode(true);
                 events.add(es);
             }
-            for (Iterator removed = n.getRemovedShares().iterator(); removed.hasNext(); ) {
-                NodeId parentId = (NodeId) removed.next();
+            for (NodeId parentId : n.getRemovedShares()) {
                 // if this shareable node is removed, only create events for
                 // parent ids that are not primary
                 if (n.getParentId().equals(parentId)) {
@@ -765,15 +761,15 @@
     }
 
     /**
-     * Get the longest common path of all event state paths. 
-     * 
+     * Get the longest common path of all event state paths.
+     *
      * @return the longest common path
      */
     public String getCommonPath() {
         String common = null;
         try {
             for (int i = 0; i < events.size(); i++) {
-                EventState state = (EventState) events.get(i);
+                EventState state = events.get(i);
                 String s = session.getJCRPath(state.getParentPath());
                 if (common == null) {
                     common = s;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/FilteredEventIterator.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/FilteredEventIterator.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/FilteredEventIterator.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/FilteredEventIterator.java Wed Jun 17 10:24:59 2009
@@ -59,7 +59,7 @@
     /**
      * Current position
      */
-    private long pos = 0;
+    private long pos;
 
     /**
      * The timestamp when the events occured.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java Wed Jun 17 10:24:59 2009
@@ -48,22 +48,22 @@
     /**
      * Currently active <code>EventConsumer</code>s for notification.
      */
-    private Set activeConsumers = new HashSet();
+    private Set<EventConsumer> activeConsumers = new HashSet<EventConsumer>();
 
     /**
      * Currently active synchronous <code>EventConsumer</code>s for notification.
      */
-    private Set synchronousConsumers = new HashSet();
+    private Set<EventConsumer> synchronousConsumers = new HashSet<EventConsumer>();
 
     /**
      * Set of <code>EventConsumer</code>s for read only Set access
      */
-    private Set readOnlyConsumers;
+    private Set<EventConsumer> readOnlyConsumers;
 
     /**
      * Set of synchronous <code>EventConsumer</code>s for read only Set access.
      */
-    private Set synchronousReadOnlyConsumers;
+    private Set<EventConsumer> synchronousReadOnlyConsumers;
 
     /**
      * synchronization monitor for listener changes
@@ -111,19 +111,19 @@
      *
      * @return <code>Set</code> of <code>EventConsumer</code>s.
      */
-    Set getAsynchronousConsumers() {
+    Set<EventConsumer> getAsynchronousConsumers() {
         synchronized (consumerChange) {
             if (readOnlyConsumers == null) {
-                readOnlyConsumers = Collections.unmodifiableSet(new HashSet(activeConsumers));
+                readOnlyConsumers = Collections.unmodifiableSet(new HashSet<EventConsumer>(activeConsumers));
             }
             return readOnlyConsumers;
         }
     }
 
-    Set getSynchronousConsumers() {
+    Set<EventConsumer> getSynchronousConsumers() {
         synchronized (consumerChange) {
             if (synchronousReadOnlyConsumers == null) {
-                synchronousReadOnlyConsumers = Collections.unmodifiableSet(new HashSet(synchronousConsumers));
+                synchronousReadOnlyConsumers = Collections.unmodifiableSet(new HashSet<EventConsumer>(synchronousConsumers));
             }
             return synchronousReadOnlyConsumers;
         }
@@ -139,8 +139,8 @@
 
             log.debug("got EventStateCollection");
             log.debug("event delivery to " + action.getEventConsumers().size() + " consumers started...");
-            for (Iterator it = action.getEventConsumers().iterator(); it.hasNext();) {
-                EventConsumer c = (EventConsumer) it.next();
+            for (Iterator<EventConsumer> it = action.getEventConsumers().iterator(); it.hasNext();) {
+                EventConsumer c = it.next();
                 try {
                     c.consumeEvents(action.getEventStates());
                 } catch (Throwable t) {
@@ -161,11 +161,10 @@
      * prepare the events for dispatching.
      */
     void prepareEvents(EventStateCollection events) {
-        Set consumers = new HashSet();
+        Set<EventConsumer> consumers = new HashSet<EventConsumer>();
         consumers.addAll(getSynchronousConsumers());
         consumers.addAll(getAsynchronousConsumers());
-        for (Iterator it = consumers.iterator(); it.hasNext();) {
-            EventConsumer c = (EventConsumer) it.next();
+        for (EventConsumer c : consumers) {
             c.prepareEvents(events);
         }
     }
@@ -174,11 +173,10 @@
      * {@inheritDoc}
      */
     void prepareDeleted(EventStateCollection events, ChangeLog changes) {
-        Set consumers = new HashSet();
+        Set<EventConsumer> consumers = new HashSet<EventConsumer>();
         consumers.addAll(getSynchronousConsumers());
         consumers.addAll(getAsynchronousConsumers());
-        for (Iterator it = consumers.iterator(); it.hasNext();) {
-            EventConsumer c = (EventConsumer) it.next();
+        for (EventConsumer c : consumers) {
             c.prepareDeleted(events, changes.deletedStates());
         }
     }
@@ -191,12 +189,11 @@
      */
     void dispatchEvents(EventStateCollection events) {
         // notify synchronous listeners
-        Set synchronous = getSynchronousConsumers();
+        Set<EventConsumer> synchronous = getSynchronousConsumers();
         if (log.isDebugEnabled()) {
             log.debug("notifying " + synchronous.size() + " synchronous listeners.");
         }
-        for (Iterator it = synchronous.iterator(); it.hasNext();) {
-            EventConsumer c = (EventConsumer) it.next();
+        for (EventConsumer c : synchronous) {
             try {
                 c.consumeEvents(events);
             } catch (Throwable t) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java Wed Jun 17 10:24:59 2009
@@ -39,7 +39,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jcr.PropertyType;
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java Wed Jun 17 10:24:59 2009
@@ -38,7 +38,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jcr.PropertyType;
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.File;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/retention/RetentionRegistryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/retention/RetentionRegistryImpl.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/retention/RetentionRegistryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/retention/RetentionRegistryImpl.java Wed Jun 17 10:24:59 2009
@@ -69,10 +69,10 @@
     private final SessionImpl session;
     private final FileSystemResource retentionFile;
 
-    private long holdCnt = 0;
-    private long retentionCnt = 0;
-    
-    private boolean initialized = false;
+    private long holdCnt;
+    private long retentionCnt;
+
+    private boolean initialized;
 
     public RetentionRegistryImpl(SessionImpl session, FileSystem fs) throws RepositoryException {
         this.session = session;
@@ -107,7 +107,7 @@
      * node, that entry will be ignored. Upon {@link #close()} of this
      * manager, the file will be updated to reflect the actual set of holds/
      * retentions present and effective in the content.
-     * 
+     *
      * @throws IOException
      * @throws FileSystemException
      */
@@ -194,12 +194,12 @@
         writeRetentionFile();
         initialized = false;
     }
-    
+
     private void addHolds(Path nodePath, PropertyImpl p) throws RepositoryException {
         synchronized (holdMap) {
             Hold[] holds = HoldImpl.createFromProperty(p, ((PropertyId) p.getId()).getParentId());
             holdMap.put(nodePath, Arrays.asList(holds));
-            holdCnt++;            
+            holdCnt++;
         }
     }
 
@@ -284,7 +284,7 @@
         if (element != null) {
             rp = (RetentionPolicy) element.get();
         }
-        if (rp == null && checkParent ) {
+        if (rp == null && checkParent) {
             element = retentionMap.map(nodePath.getAncestor(1), true);
             if (element != null) {
                 rp = (RetentionPolicy) element.get();
@@ -341,7 +341,7 @@
                 // else: not interested in any other property -> ignore.
 
             } catch (RepositoryException e) {
-                log.warn("Internal error while processing event.",e.getMessage());
+                log.warn("Internal error while processing event.", e.getMessage());
                 // ignore.
             }
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeStateMerger.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeStateMerger.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeStateMerger.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeStateMerger.java Wed Jun 17 10:24:59 2009
@@ -23,7 +23,6 @@
 
 import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.Iterator;
 
 /**
  * Internal utility class used for merging concurrent changes that occurred
@@ -98,13 +97,10 @@
                 // child node entries
                 if (!state.getChildNodeEntries().equals(
                         overlayedState.getChildNodeEntries())) {
-                    ArrayList added = new ArrayList();
-                    ArrayList removed = new ArrayList();
+                    ArrayList<ChildNodeEntry> added = new ArrayList<ChildNodeEntry>();
+                    ArrayList<ChildNodeEntry> removed = new ArrayList<ChildNodeEntry>();
 
-                    for (Iterator iter = state.getAddedChildNodeEntries().iterator();
-                         iter.hasNext();) {
-                        ChildNodeEntry cne =
-                                (ChildNodeEntry) iter.next();
+                    for (ChildNodeEntry cne : state.getAddedChildNodeEntries()) {
 
                         if (context.isAdded(cne.getId())) {
                             // a new child node entry has been added to this state;
@@ -124,10 +120,7 @@
                         }
                     }
 
-                    for (Iterator iter = state.getRemovedChildNodeEntries().iterator();
-                         iter.hasNext();) {
-                        ChildNodeEntry cne =
-                                (ChildNodeEntry) iter.next();
+                    for (ChildNodeEntry cne : state.getRemovedChildNodeEntries()) {
                         if (context.isDeleted(cne.getId())) {
                             // a child node entry has been removed from this node state
                             removed.add(cne);
@@ -137,14 +130,10 @@
                     // copy child node antries from other state and
                     // re-apply changes made on this state
                     state.setChildNodeEntries(overlayedState.getChildNodeEntries());
-                    for (Iterator iter = added.iterator(); iter.hasNext();) {
-                        ChildNodeEntry cne =
-                                (ChildNodeEntry) iter.next();
+                    for (ChildNodeEntry cne : added) {
                         state.addChildNodeEntry(cne.getName(), cne.getId());
                     }
-                    for (Iterator iter = removed.iterator(); iter.hasNext();) {
-                        ChildNodeEntry cne =
-                                (ChildNodeEntry) iter.next();
+                    for (ChildNodeEntry cne : removed) {
                         state.removeChildNodeEntry(cne.getId());
                     }
                 }
@@ -152,12 +141,10 @@
                 // property names
                 if (!state.getPropertyNames().equals(
                         overlayedState.getPropertyNames())) {
-                    HashSet added = new HashSet();
-                    HashSet removed = new HashSet();
+                    HashSet<Name> added = new HashSet<Name>();
+                    HashSet<Name> removed = new HashSet<Name>();
 
-                    for (Iterator iter = state.getAddedPropertyNames().iterator();
-                         iter.hasNext();) {
-                        Name name = (Name) iter.next();
+                    for (Name name : state.getAddedPropertyNames()) {
                         PropertyId propId =
                                 new PropertyId(state.getNodeId(), name);
                         if (context.isAdded(propId)) {
@@ -172,9 +159,7 @@
                             added.add(name);
                         }
                     }
-                    for (Iterator iter = state.getRemovedPropertyNames().iterator();
-                         iter.hasNext();) {
-                        Name name = (Name) iter.next();
+                    for (Name name : state.getRemovedPropertyNames()) {
                         PropertyId propId =
                                 new PropertyId(state.getNodeId(), name);
                         if (context.isDeleted(propId)) {
@@ -186,12 +171,10 @@
                     // copy property names from other and
                     // re-apply changes made on this state
                     state.setPropertyNames(overlayedState.getPropertyNames());
-                    for (Iterator iter = added.iterator(); iter.hasNext();) {
-                        Name name = (Name) iter.next();
+                    for (Name name : added) {
                         state.addPropertyName(name);
                     }
-                    for (Iterator iter = removed.iterator(); iter.hasNext();) {
-                        Name name = (Name) iter.next();
+                    for (Name name : removed) {
                         state.removePropertyName(name);
                     }
                 }
@@ -206,6 +189,9 @@
 
     //-----------------------------------------------------< inner interfaces >
 
+    /**
+     * The context of a modification.
+     */
     static interface MergeContext {
         boolean isAdded(ItemId id);
         boolean isDeleted(ItemId id);

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java Wed Jun 17 10:24:59 2009
@@ -39,6 +39,7 @@
 import org.apache.jackrabbit.core.nodetype.NodeTypeConflictException;
 import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
 import org.apache.jackrabbit.core.nodetype.PropDef;
+import org.apache.jackrabbit.core.observation.EventState;
 import org.apache.jackrabbit.core.observation.EventStateCollection;
 import org.apache.jackrabbit.core.observation.EventStateCollectionFactory;
 import org.apache.jackrabbit.core.persistence.PersistenceManager;
@@ -520,7 +521,7 @@
         /**
          * Map of attributes stored for this update operation.
          */
-        private HashMap attributes;
+        private HashMap<String, Object> attributes;
 
         /**
          * Timestamp when this update was created.
@@ -595,8 +596,8 @@
                  * respective shared item and add the shared items to a
                  * new change log.
                  */
-                for (Iterator iter = local.modifiedStates(); iter.hasNext();) {
-                    ItemState state = (ItemState) iter.next();
+                for (Iterator<ItemState> iter = local.modifiedStates(); iter.hasNext();) {
+                    ItemState state = iter.next();
                     state.connect(getItemState(state.getId()));
                     if (state.isStale()) {
                         boolean merged = false;
@@ -648,8 +649,8 @@
 
                     shared.modified(state.getOverlayedState());
                 }
-                for (Iterator iter = local.deletedStates(); iter.hasNext();) {
-                    ItemState state = (ItemState) iter.next();
+                for (Iterator<ItemState> iter = local.deletedStates(); iter.hasNext();) {
+                    ItemState state = iter.next();
                     state.connect(getItemState(state.getId()));
                     if (state.isStale()) {
                         String msg = state.getId() + " has been modified externally";
@@ -658,16 +659,16 @@
                     }
                     shared.deleted(state.getOverlayedState());
                 }
-                for (Iterator iter = local.addedStates(); iter.hasNext();) {
-                    ItemState state = (ItemState) iter.next();
+                for (Iterator<ItemState> iter = local.addedStates(); iter.hasNext();) {
+                    ItemState state = iter.next();
                     state.connect(createInstance(state));
                     shared.added(state.getOverlayedState());
                 }
 
                 // filter out virtual node references for later processing
                 // (see comment above)
-                for (Iterator iter = local.modifiedRefs(); iter.hasNext();) {
-                    NodeReferences refs = (NodeReferences) iter.next();
+                for (Iterator<NodeReferences> iter = local.modifiedRefs(); iter.hasNext();) {
+                    NodeReferences refs = iter.next();
                     boolean virtual = false;
                     NodeId id = refs.getId().getTargetId();
                     for (int i = 0; i < virtualProviders.length; i++) {
@@ -786,24 +787,24 @@
 
                 local.disconnect();
 
-                for (Iterator iter = shared.modifiedStates(); iter.hasNext();) {
-                    ItemState state = (ItemState) iter.next();
+                for (Iterator<ItemState> iter = shared.modifiedStates(); iter.hasNext();) {
+                    ItemState state = iter.next();
                     try {
                         state.copy(loadItemState(state.getId()), false);
                     } catch (ItemStateException e) {
                         state.discard();
                     }
                 }
-                for (Iterator iter = shared.deletedStates(); iter.hasNext();) {
-                    ItemState state = (ItemState) iter.next();
+                for (Iterator<ItemState> iter = shared.deletedStates(); iter.hasNext();) {
+                    ItemState state = iter.next();
                     try {
                         state.copy(loadItemState(state.getId()), false);
                     } catch (ItemStateException e) {
                         state.discard();
                     }
                 }
-                for (Iterator iter = shared.addedStates(); iter.hasNext();) {
-                    ItemState state = (ItemState) iter.next();
+                for (Iterator<ItemState> iter = shared.addedStates(); iter.hasNext();) {
+                    ItemState state = iter.next();
                     state.discard();
                 }
             } finally {
@@ -819,7 +820,7 @@
          */
         public void setAttribute(String name, Object value) {
             if (attributes == null) {
-                attributes = new HashMap();
+                attributes = new HashMap<String, Object>();
             }
             attributes.put(name, value);
         }
@@ -844,7 +845,7 @@
         /**
          * {@inheritDoc}
          */
-        public List getEvents() {
+        public List<EventState> getEvents() {
             return events.getEvents();
         }
 
@@ -872,13 +873,13 @@
          */
         private void updateReferences() throws ItemStateException {
             // process added REFERENCE properties
-            for (Iterator i = local.addedStates(); i.hasNext();) {
-                addReferences((ItemState) i.next());
+            for (Iterator<ItemState> i = local.addedStates(); i.hasNext();) {
+                addReferences(i.next());
             }
 
             // process modified REFERENCE properties
-            for (Iterator i = local.modifiedStates(); i.hasNext();) {
-                ItemState state = (ItemState) i.next();
+            for (Iterator<ItemState> i = local.modifiedStates(); i.hasNext();) {
+                ItemState state = i.next();
                 if (!state.isNode()) {
                     // remove old references from the target
                     removeReferences(getItemState(state.getId()));
@@ -888,8 +889,8 @@
             }
 
             // process removed REFERENCE properties
-            for (Iterator i = local.deletedStates(); i.hasNext();) {
-                removeReferences((ItemState) i.next());
+            for (Iterator<ItemState> i = local.deletedStates(); i.hasNext();) {
+                removeReferences(i.next());
             }
         }
 
@@ -979,8 +980,8 @@
                 throws ReferentialIntegrityException, ItemStateException {
 
             // check whether removed referenceable nodes are still being referenced
-            for (Iterator iter = local.deletedStates(); iter.hasNext();) {
-                ItemState state = (ItemState) iter.next();
+            for (Iterator<ItemState> iter = local.deletedStates(); iter.hasNext();) {
+                ItemState state = iter.next();
                 if (state.isNode()) {
                     NodeState node = (NodeState) state;
                     if (isReferenceable(node)) {
@@ -1008,8 +1009,8 @@
             }
 
             // check whether targets of modified node references exist
-            for (Iterator iter = local.modifiedRefs(); iter.hasNext();) {
-                NodeReferences refs = (NodeReferences) iter.next();
+            for (Iterator<NodeReferences> iter = local.modifiedRefs(); iter.hasNext();) {
+                NodeReferences refs = iter.next();
                 NodeId id = refs.getTargetId();
                 // no need to check existence of target if there are no references
                 if (refs.hasReferences()) {
@@ -1037,7 +1038,7 @@
         private boolean isReferenceable(NodeState state) throws ItemStateException {
             // shortcut: check some well known built-in types first
             Name primary = state.getNodeTypeName();
-            Set mixins = state.getMixinTypeNames();
+            Set<Name> mixins = state.getMixinTypeNames();
             if (mixins.contains(NameConstants.MIX_REFERENCEABLE)
                     || mixins.contains(NameConstants.MIX_VERSIONABLE)
                     || primary.equals(NameConstants.NT_RESOURCE)) {
@@ -1167,9 +1168,9 @@
         // Build a copy of the external change log, consisting of shared
         // states we have in our cache. Inform listeners about this
         // change.
-        Iterator modifiedStates = external.modifiedStates();
+        Iterator<ItemState> modifiedStates = external.modifiedStates();
         while (modifiedStates.hasNext()) {
-            ItemState state = (ItemState) modifiedStates.next();
+            ItemState state = modifiedStates.next();
             state = cache.retrieve(state.getId());
             if (state != null) {
                 try {
@@ -1189,9 +1190,9 @@
                 }
             }
         }
-        Iterator deletedStates = external.deletedStates();
+        Iterator<ItemState> deletedStates = external.deletedStates();
         while (deletedStates.hasNext()) {
-            ItemState state = (ItemState) deletedStates.next();
+            ItemState state = deletedStates.next();
             state = cache.retrieve(state.getId());
             if (state != null) {
                 shared.deleted(state);

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/StateChangeDispatcher.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/StateChangeDispatcher.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/StateChangeDispatcher.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/StateChangeDispatcher.java Wed Jun 17 10:24:59 2009
@@ -23,7 +23,6 @@
 import java.lang.ref.Reference;
 import java.lang.ref.WeakReference;
 import java.util.Collection;
-import java.util.Iterator;
 
 /**
  * Component that holds references to listeners interested in changes to item
@@ -35,13 +34,13 @@
      * Simple item state listeners.
      * A copy on write array list is used so that no synchronization is required.
      */
-    private final Collection listeners = new CopyOnWriteArrayList();
+    private final Collection<WeakReference<ItemStateListener>> listeners = new CopyOnWriteArrayList();
 
     /**
      * Node state listeners
      * A copy on write array list is used so that no synchronization is required.
      */
-    private final transient Collection nsListeners = new CopyOnWriteArrayList();
+    private final transient Collection<WeakReference<NodeStateListener>> nsListeners = new CopyOnWriteArrayList();
 
     /**
      * Add an <code>ItemStateListener</code>.
@@ -49,18 +48,17 @@
      */
     public void addListener(ItemStateListener listener) {
         assert getReference(listeners, listener) == null;
-        listeners.add(new WeakReference(listener));
+        listeners.add(new WeakReference<ItemStateListener>(listener));
 
         if (listener instanceof NodeStateListener) {
-            assert getReference(nsListeners, listener) == null;
-            nsListeners.add(new WeakReference(listener));
+            NodeStateListener nsListener = (NodeStateListener) listener;
+            assert getReference(nsListeners, nsListener) == null;
+            nsListeners.add(new WeakReference<NodeStateListener>(nsListener));
         }
     }
-    
-    private Reference getReference(Collection coll, ItemStateListener listener) {
-        Iterator iter = coll.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
+
+    private <T> Reference<T> getReference(Collection< ? extends Reference<T>> coll, ItemStateListener listener) {
+        for (Reference<T> ref : coll) {
             Object o = ref.get();
             if (o == listener) {
                 return ref;
@@ -88,10 +86,8 @@
      * @param created created state.
      */
     public void notifyStateCreated(ItemState created) {
-        Iterator iter = listeners.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
-            ItemStateListener l = (ItemStateListener) ref.get();
+        for (Reference<ItemStateListener> ref : listeners) {
+            ItemStateListener l = ref.get();
             if (l != null) {
                 l.stateCreated(created);
             }
@@ -103,10 +99,8 @@
      * @param modified modified state.
      */
     public void notifyStateModified(ItemState modified) {
-        Iterator iter = listeners.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
-            ItemStateListener l = (ItemStateListener) ref.get();
+        for (Reference<ItemStateListener> ref : listeners) {
+            ItemStateListener l = ref.get();
             if (l != null) {
                 l.stateModified(modified);
             }
@@ -118,13 +112,11 @@
      * @param destroyed destroyed state.
      */
     public void notifyStateDestroyed(ItemState destroyed) {
-        Iterator iter = listeners.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
-            ItemStateListener l = (ItemStateListener) ref.get();
+        for (Reference<ItemStateListener> ref : listeners) {
+            ItemStateListener l = ref.get();
             if (l != null) {
                 l.stateDestroyed(destroyed);
-            }            
+            }
         }
     }
 
@@ -133,13 +125,11 @@
      * @param discarded discarded state.
      */
     public void notifyStateDiscarded(ItemState discarded) {
-        Iterator iter = listeners.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
-            ItemStateListener l = (ItemStateListener) ref.get();
+        for (Reference<ItemStateListener> ref : listeners) {
+            ItemStateListener l = ref.get();
             if (l != null) {
                 l.stateDiscarded(discarded);
-            }               
+            }
         }
     }
 
@@ -151,13 +141,11 @@
      * @param id    id of new node
      */
     public void notifyNodeAdded(NodeState state, Name name, int index, NodeId id) {
-        Iterator iter = nsListeners.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
-            NodeStateListener n = (NodeStateListener) ref.get();
+        for (Reference<NodeStateListener> ref : nsListeners) {
+            NodeStateListener n = ref.get();
             if (n != null) {
                 n.nodeAdded(state, name, index, id);
-            }                 
+            }
         }
     }
 
@@ -166,13 +154,11 @@
      * @param state node state that changed
      */
     public void notifyNodesReplaced(NodeState state) {
-        Iterator iter = nsListeners.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
-            NodeStateListener n = (NodeStateListener) ref.get();
+        for (Reference<NodeStateListener> ref : nsListeners) {
+            NodeStateListener n = ref.get();
             if (n != null) {
                 n.nodesReplaced(state);
-            }              
+            }
         }
     }
 
@@ -181,13 +167,11 @@
      * @param state node state that changed
      */
     public void notifyNodeModified(NodeState state) {
-        Iterator iter = nsListeners.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
-            NodeStateListener n = (NodeStateListener) ref.get();
+        for (Reference<NodeStateListener> ref : nsListeners) {
+            NodeStateListener n = ref.get();
             if (n != null) {
                 n.nodeModified(state);
-            }               
+            }
         }
     }
 
@@ -199,13 +183,11 @@
      * @param id    id of new node
      */
     public void notifyNodeRemoved(NodeState state, Name name, int index, NodeId id) {
-        Iterator iter = nsListeners.iterator();
-        while (iter.hasNext()) {
-            Reference ref = (Reference) iter.next();
-            NodeStateListener n = (NodeStateListener) ref.get();
+        for (Reference<NodeStateListener> ref : nsListeners) {
+            NodeStateListener n = ref.get();
             if (n != null) {
                 n.nodeRemoved(state, name, index, id);
-            }               
+            }
         }
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/ClonedInputSource.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/ClonedInputSource.java?rev=785540&r1=785539&r2=785540&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/ClonedInputSource.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/ClonedInputSource.java Wed Jun 17 10:24:59 2009
@@ -34,12 +34,12 @@
  * {@link #cloneInputSource()} method.
  */
 public class ClonedInputSource extends InputSource {
-    private final char characterArray[];
-    private final byte byteArray[];
+    private final char[] characterArray;
+    private final byte[] byteArray;
 
     /**
      * Clone existing input source.
-     * 
+     *
      * @param input
      * @throws RepositoryException
      */
@@ -64,7 +64,7 @@
         }
     }
 
-    private ClonedInputSource(char characterArray[], byte byteArray[]) {
+    private ClonedInputSource(char[] characterArray, byte[] byteArray) {
         super();
         this.characterArray = characterArray;
         this.byteArray = byteArray;
@@ -81,7 +81,7 @@
     /**
      * Make a clone if this input source. The input source being cloned is still
      * valid after cloning.
-     * 
+     *
      * @return input source clone.
      */
     public ClonedInputSource cloneInputSource() {
@@ -108,7 +108,7 @@
                 final int bufferSize = Math.min(stream.available(), 4096);
                 ByteArrayOutputStream s = new ByteArrayOutputStream(bufferSize);
 
-                byte buffer[] = new byte[bufferSize];
+                byte[] buffer = new byte[bufferSize];
                 while (true) {
                     int numRead = stream.read(buffer);
                     if (numRead > 0) {
@@ -140,7 +140,7 @@
                 final int bufferSize = 4096;
                 CharArrayWriter w = new CharArrayWriter(bufferSize);
 
-                char buffer[] = new char[bufferSize];
+                char[] buffer = new char[bufferSize];
                 while (true) {
                     int numRead = reader.read(buffer);
                     if (numRead > 0) {