You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2008/08/06 15:17:03 UTC

svn commit: r683257 [2/2] - in /jackrabbit/trunk/jackrabbit-core/src: main/java/org/apache/jackrabbit/core/ main/java/org/apache/jackrabbit/core/observation/ main/java/org/apache/jackrabbit/core/persistence/bundle/util/ main/java/org/apache/jackrabbit/...

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeState.java?rev=683257&r1=683256&r2=683257&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeState.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeState.java Wed Aug  6 06:17:00 2008
@@ -16,23 +16,17 @@
  */
 package org.apache.jackrabbit.core.state;
 
-import org.apache.commons.collections.MapIterator;
-import org.apache.commons.collections.OrderedMapIterator;
-import org.apache.commons.collections.map.LinkedMap;
 import org.apache.jackrabbit.core.ItemId;
 import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.nodetype.NodeDefId;
 import org.apache.jackrabbit.spi.Name;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.ListIterator;
 import java.util.Set;
 
 /**
@@ -948,554 +942,4 @@
             listener.nodeRemoved(this, removed.getName(), removed.getIndex(), removed.getId());
         }
     }
-
-    //--------------------------------------------------------< inner classes >
-    /**
-     * <code>ChildNodeEntries</code> represents an insertion-ordered
-     * collection of <code>ChildNodeEntry</code>s that also maintains
-     * the index values of same-name siblings on insertion and removal.
-     * <p/>
-     * <code>ChildNodeEntries</code> also provides an unmodifiable
-     * <code>List</code> view.
-     */
-    private static class ChildNodeEntries implements List, Cloneable {
-
-        // insertion-ordered map of entries (key=NodeId, value=entry)
-        private LinkedMap entries;
-        // map used for lookup by name
-        // (key=name, value=either a single entry or a list of sns entries)
-        private HashMap nameMap;
-
-        ChildNodeEntries() {
-            entries = new LinkedMap();
-            nameMap = new HashMap();
-        }
-
-        ChildNodeEntry get(NodeId id) {
-            return (ChildNodeEntry) entries.get(id);
-        }
-
-        List get(Name nodeName) {
-            Object obj = nameMap.get(nodeName);
-            if (obj == null) {
-                return Collections.EMPTY_LIST;
-            }
-            if (obj instanceof ArrayList) {
-                // map entry is a list of siblings
-                return Collections.unmodifiableList((ArrayList) obj);
-            } else {
-                // map entry is a single child node entry
-                return Collections.singletonList(obj);
-            }
-        }
-
-        ChildNodeEntry get(Name nodeName, int index) {
-            if (index < 1) {
-                throw new IllegalArgumentException("index is 1-based");
-            }
-
-            Object obj = nameMap.get(nodeName);
-            if (obj == null) {
-                return null;
-            }
-            if (obj instanceof ArrayList) {
-                // map entry is a list of siblings
-                ArrayList siblings = (ArrayList) obj;
-                if (index <= siblings.size()) {
-                    return (ChildNodeEntry) siblings.get(index - 1);
-                }
-            } else {
-                // map entry is a single child node entry
-                if (index == 1) {
-                    return (ChildNodeEntry) obj;
-                }
-            }
-            return null;
-        }
-
-        ChildNodeEntry add(Name nodeName, NodeId id) {
-            List siblings = null;
-            int index = 0;
-            Object obj = nameMap.get(nodeName);
-            if (obj != null) {
-                if (obj instanceof ArrayList) {
-                    // map entry is a list of siblings
-                    siblings = (ArrayList) obj;
-                    if (siblings.size() > 0) {
-                        // reuse immutable Name instance from 1st same name sibling
-                        // in order to help gc conserving memory
-                        nodeName = ((ChildNodeEntry) siblings.get(0)).getName();
-                    }
-                } else {
-                    // map entry is a single child node entry,
-                    // convert to siblings list
-                    siblings = new ArrayList();
-                    siblings.add(obj);
-                    nameMap.put(nodeName, siblings);
-                }
-                index = siblings.size();
-            }
-
-            index++;
-
-            ChildNodeEntry entry = new ChildNodeEntry(nodeName, id, index);
-            if (siblings != null) {
-                siblings.add(entry);
-            } else {
-                nameMap.put(nodeName, entry);
-            }
-            entries.put(id, entry);
-
-            return entry;
-        }
-
-        void addAll(List entriesList) {
-            Iterator iter = entriesList.iterator();
-            while (iter.hasNext()) {
-                ChildNodeEntry entry = (ChildNodeEntry) iter.next();
-                // delegate to add(Name, String) to maintain consistency
-                add(entry.getName(), entry.getId());
-            }
-        }
-
-        public ChildNodeEntry remove(Name nodeName, int index) {
-            if (index < 1) {
-                throw new IllegalArgumentException("index is 1-based");
-            }
-
-            Object obj = nameMap.get(nodeName);
-            if (obj == null) {
-                return null;
-            }
-
-            if (obj instanceof ChildNodeEntry) {
-                // map entry is a single child node entry
-                if (index != 1) {
-                    return null;
-                }
-                ChildNodeEntry removedEntry = (ChildNodeEntry) obj;
-                nameMap.remove(nodeName);
-                entries.remove(removedEntry.getId());
-                return removedEntry;
-            }
-
-            // map entry is a list of siblings
-            List siblings = (ArrayList) obj;
-            if (index > siblings.size()) {
-                return null;
-            }
-
-            // remove from siblings list
-            ChildNodeEntry removedEntry = (ChildNodeEntry) siblings.remove(index - 1);
-            // remove from ordered entries map
-            entries.remove(removedEntry.getId());
-
-            // update indices of subsequent same-name siblings
-            for (int i = index - 1; i < siblings.size(); i++) {
-                ChildNodeEntry oldEntry = (ChildNodeEntry) siblings.get(i);
-                ChildNodeEntry newEntry = new ChildNodeEntry(nodeName, oldEntry.getId(), oldEntry.getIndex() - 1);
-                // overwrite old entry with updated entry in siblings list
-                siblings.set(i, newEntry);
-                // overwrite old entry with updated entry in ordered entries map
-                entries.put(newEntry.getId(), newEntry);
-            }
-
-            // clean up name lookup map if necessary
-            if (siblings.size() == 0) {
-                // no more entries with that name left:
-                // remove from name lookup map as well
-                nameMap.remove(nodeName);
-            } else if (siblings.size() == 1) {
-                // just one entry with that name left:
-                // discard siblings list and update name lookup map accordingly
-                nameMap.put(nodeName, siblings.get(0));
-            }
-
-            // we're done
-            return removedEntry;
-        }
-
-        /**
-         * Removes the child node entry refering to the node with the given id.
-         *
-         * @param id id of node whose entry is to be removed.
-         * @return the removed entry or <code>null</code> if there is no such entry.
-         */
-        ChildNodeEntry remove(NodeId id) {
-            ChildNodeEntry entry = (ChildNodeEntry) entries.get(id);
-            if (entry != null) {
-                return remove(entry.getName(), entry.getIndex());
-            }
-            return entry;
-        }
-
-        /**
-         * Removes the given child node entry.
-         *
-         * @param entry entry to be removed.
-         * @return the removed entry or <code>null</code> if there is no such entry.
-         */
-        public ChildNodeEntry remove(ChildNodeEntry entry) {
-            return remove(entry.getName(), entry.getIndex());
-        }
-
-        /**
-         * Removes all child node entries
-         */
-        public void removeAll() {
-            nameMap.clear();
-            entries.clear();
-        }
-
-        /**
-         * Returns a list of <code>ChildNodeEntry</code>s who do only exist in
-         * <code>this</code> but not in <code>other</code>.
-         * <p/>
-         * Note that two entries are considered identical in this context if
-         * they have the same name and uuid, i.e. the index is disregarded
-         * whereas <code>ChildNodeEntry.equals(Object)</code> also compares
-         * the index.
-         *
-         * @param other entries to be removed
-         * @return a new list of those entries that do only exist in
-         *         <code>this</code> but not in <code>other</code>
-         */
-        List removeAll(ChildNodeEntries other) {
-            if (entries.isEmpty()) {
-                return Collections.EMPTY_LIST;
-            }
-            if (other.isEmpty()) {
-                return this;
-            }
-
-            List result = new ArrayList();
-            Iterator iter = iterator();
-            while (iter.hasNext()) {
-                ChildNodeEntry entry = (ChildNodeEntry) iter.next();
-                ChildNodeEntry otherEntry = other.get(entry.getId());
-                if (entry == otherEntry) {
-                    continue;
-                }
-                if (otherEntry == null
-                        || !entry.getName().equals(otherEntry.getName())) {
-                    result.add(entry);
-                }
-            }
-
-            return result;
-        }
-
-        /**
-         * Returns a list of <code>ChildNodeEntry</code>s who do exist in
-         * <code>this</code> <i>and</i> in <code>other</code>.
-         * <p/>
-         * Note that two entries are considered identical in this context if
-         * they have the same name and uuid, i.e. the index is disregarded
-         * whereas <code>ChildNodeEntry.equals(Object)</code> also compares
-         * the index.
-         *
-         * @param other entries to be retained
-         * @return a new list of those entries that do exist in
-         *         <code>this</code> <i>and</i> in <code>other</code>
-         */
-        List retainAll(ChildNodeEntries other) {
-            if (entries.isEmpty()
-                    || other.isEmpty()) {
-                return Collections.EMPTY_LIST;
-            }
-
-            List result = new ArrayList();
-            Iterator iter = iterator();
-            while (iter.hasNext()) {
-                ChildNodeEntry entry = (ChildNodeEntry) iter.next();
-                ChildNodeEntry otherEntry = other.get(entry.getId());
-                if (entry == otherEntry) {
-                    result.add(entry);
-                } else if (otherEntry != null
-                        && entry.getName().equals(otherEntry.getName())) {
-                    result.add(entry);
-                }
-            }
-
-            return result;
-        }
-
-        //-------------------------------------------< unmodifiable List view >
-        public boolean contains(Object o) {
-            if (o instanceof ChildNodeEntry) {
-                return entries.containsKey(((ChildNodeEntry) o).getId());
-            } else {
-                return false;
-            }
-        }
-
-        public boolean containsAll(Collection c) {
-            Iterator iter = c.iterator();
-            while (iter.hasNext()) {
-                if (!contains(iter.next())) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        public Object get(int index) {
-            return entries.getValue(index);
-        }
-
-        public int indexOf(Object o) {
-            if (o instanceof ChildNodeEntry) {
-                return entries.indexOf(((ChildNodeEntry) o).getId());
-            } else {
-                return -1;
-            }
-        }
-
-        public boolean isEmpty() {
-            return entries.isEmpty();
-        }
-
-        public int lastIndexOf(Object o) {
-            // entries are unique
-            return indexOf(o);
-        }
-
-        public Iterator iterator() {
-            return new EntriesIterator();
-        }
-
-        public ListIterator listIterator() {
-            return new EntriesIterator();
-        }
-
-        public ListIterator listIterator(int index) {
-            if (index < 0 || index >= entries.size()) {
-                throw new IndexOutOfBoundsException();
-            }
-            ListIterator iter = new EntriesIterator();
-            while (index-- > 0) {
-                iter.next();
-            }
-            return iter;
-        }
-
-        public int size() {
-            return entries.size();
-        }
-
-        public List subList(int fromIndex, int toIndex) {
-            // @todo FIXME does not fulfill the contract of List.subList(int,int)
-            return Collections.unmodifiableList(new ArrayList(this).subList(fromIndex, toIndex));
-        }
-
-        public Object[] toArray() {
-            ChildNodeEntry[] array = new ChildNodeEntry[size()];
-            return toArray(array);
-        }
-
-        public Object[] toArray(Object[] a) {
-            if (!a.getClass().getComponentType().isAssignableFrom(ChildNodeEntry.class)) {
-                throw new ArrayStoreException();
-            }
-            if (a.length < size()) {
-                a = new ChildNodeEntry[size()];
-            }
-            MapIterator iter = entries.mapIterator();
-            int i = 0;
-            while (iter.hasNext()) {
-                iter.next();
-                a[i] = entries.getValue(i);
-                i++;
-            }
-            while (i < a.length) {
-                a[i++] = null;
-            }
-            return a;
-        }
-
-        public void add(int index, Object element) {
-            throw new UnsupportedOperationException();
-        }
-
-        public boolean add(Object o) {
-            throw new UnsupportedOperationException();
-        }
-
-        public boolean addAll(Collection c) {
-            throw new UnsupportedOperationException();
-        }
-
-        public boolean addAll(int index, Collection c) {
-            throw new UnsupportedOperationException();
-        }
-
-        public void clear() {
-            throw new UnsupportedOperationException();
-        }
-
-        public Object remove(int index) {
-            throw new UnsupportedOperationException();
-        }
-
-        public boolean remove(Object o) {
-            throw new UnsupportedOperationException();
-        }
-
-        public boolean removeAll(Collection c) {
-            throw new UnsupportedOperationException();
-        }
-
-        public boolean retainAll(Collection c) {
-            throw new UnsupportedOperationException();
-        }
-
-        public Object set(int index, Object element) {
-            throw new UnsupportedOperationException();
-        }
-
-        //------------------------------------------------< Cloneable support >
-        /**
-         * Returns a shallow copy of this <code>ChildNodeEntries</code> instance;
-         * the entries themselves are not cloned.
-         *
-         * @return a shallow copy of this instance.
-         */
-        protected Object clone() {
-            ChildNodeEntries clone = new ChildNodeEntries();
-            clone.entries = (LinkedMap) entries.clone();
-            clone.nameMap = new HashMap(nameMap.size());
-            for (Iterator it = nameMap.keySet().iterator(); it.hasNext();) {
-                Object key = it.next();
-                Object obj = nameMap.get(key);
-                if (obj instanceof ArrayList) {
-                    // clone List
-                    obj = ((ArrayList) obj).clone();
-                }
-                clone.nameMap.put(key, obj);
-            }
-            return clone;
-        }
-
-        //----------------------------------------------------< inner classes >
-        class EntriesIterator implements ListIterator {
-
-            private final OrderedMapIterator mapIter;
-
-            EntriesIterator() {
-                mapIter = entries.orderedMapIterator();
-            }
-
-            public boolean hasNext() {
-                return mapIter.hasNext();
-            }
-
-            public Object next() {
-                mapIter.next();
-                return mapIter.getValue();
-            }
-
-            public boolean hasPrevious() {
-                return mapIter.hasPrevious();
-            }
-
-            public int nextIndex() {
-                return entries.indexOf(mapIter.getKey()) + 1;
-            }
-
-            public Object previous() {
-                mapIter.previous();
-                return mapIter.getValue();
-            }
-
-            public int previousIndex() {
-                return entries.indexOf(mapIter.getKey()) - 1;
-            }
-
-            public void add(Object o) {
-                throw new UnsupportedOperationException();
-            }
-
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-
-            public void set(Object o) {
-                throw new UnsupportedOperationException();
-            }
-        }
-    }
-
-    /**
-     * <code>ChildNodeEntry</code> specifies the name, index (in the case of
-     * same-name siblings) and the UUID of a child node entry.
-     * <p/>
-     * <code>ChildNodeEntry</code> instances are immutable.
-     */
-    public static final class ChildNodeEntry {
-
-        private int hash = 0;
-
-        private final Name name;
-        private final int index; // 1-based index for same-name siblings
-        private final NodeId id;
-
-        private ChildNodeEntry(Name name, NodeId id, int index) {
-            if (name == null) {
-                throw new IllegalArgumentException("name can not be null");
-            }
-            this.name = name;
-
-            if (id == null) {
-                throw new IllegalArgumentException("id can not be null");
-            }
-            this.id = id;
-
-            if (index < 1) {
-                throw new IllegalArgumentException("index is 1-based");
-            }
-            this.index = index;
-        }
-
-        public NodeId getId() {
-            return id;
-        }
-
-        public Name getName() {
-            return name;
-        }
-
-        public int getIndex() {
-            return index;
-        }
-
-        //---------------------------------------< java.lang.Object overrides >
-        public boolean equals(Object obj) {
-            if (this == obj) {
-                return true;
-            }
-            if (obj instanceof ChildNodeEntry) {
-                ChildNodeEntry other = (ChildNodeEntry) obj;
-                return (name.equals(other.name) && id.equals(other.id)
-                        && index == other.index);
-            }
-            return false;
-        }
-
-        public String toString() {
-            return name.toString() + "[" + index + "] -> " + id;
-        }
-
-        public int hashCode() {
-            // ChildNodeEntry is immutable, we can store the computed hash code value
-            int h = hash;
-            if (h == 0) {
-                h = 17;
-                h = 37 * h + name.hashCode();
-                h = 37 * h + id.hashCode();
-                h = 37 * h + index;
-                hash = h;
-            }
-            return h;
-        }
-    }
 }

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=683257&r1=683256&r2=683257&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 Aug  6 06:17:00 2008
@@ -103,8 +103,8 @@
 
                     for (Iterator iter = state.getAddedChildNodeEntries().iterator();
                          iter.hasNext();) {
-                        NodeState.ChildNodeEntry cne =
-                                (NodeState.ChildNodeEntry) iter.next();
+                        ChildNodeEntry cne =
+                                (ChildNodeEntry) iter.next();
 
                         if (context.isAdded(cne.getId())) {
                             // a new child node entry has been added to this state;
@@ -126,8 +126,8 @@
 
                     for (Iterator iter = state.getRemovedChildNodeEntries().iterator();
                          iter.hasNext();) {
-                        NodeState.ChildNodeEntry cne =
-                                (NodeState.ChildNodeEntry) iter.next();
+                        ChildNodeEntry cne =
+                                (ChildNodeEntry) iter.next();
                         if (context.isDeleted(cne.getId())) {
                             // a child node entry has been removed from this node state
                             removed.add(cne);
@@ -138,13 +138,13 @@
                     // re-apply changes made on this state
                     state.setChildNodeEntries(overlayedState.getChildNodeEntries());
                     for (Iterator iter = added.iterator(); iter.hasNext();) {
-                        NodeState.ChildNodeEntry cne =
-                                (NodeState.ChildNodeEntry) iter.next();
+                        ChildNodeEntry cne =
+                                (ChildNodeEntry) iter.next();
                         state.addChildNodeEntry(cne.getName(), cne.getId());
                     }
                     for (Iterator iter = removed.iterator(); iter.hasNext();) {
-                        NodeState.ChildNodeEntry cne =
-                                (NodeState.ChildNodeEntry) iter.next();
+                        ChildNodeEntry cne =
+                                (ChildNodeEntry) iter.next();
                         state.removeChildNodeEntry(cne.getId());
                     }
                 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalFrozenNodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalFrozenNodeImpl.java?rev=683257&r1=683256&r2=683257&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalFrozenNodeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalFrozenNodeImpl.java Wed Aug  6 06:17:00 2008
@@ -21,8 +21,8 @@
 import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.nodetype.NodeTypeImpl;
 import org.apache.jackrabbit.core.state.ItemStateException;
-import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.PropertyState;
+import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.core.value.InternalValue;
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.uuid.UUID;
@@ -171,8 +171,8 @@
                 Iterator iter = entries.iterator();
                 int i = 0;
                 while (iter.hasNext()) {
-                    NodeState.ChildNodeEntry entry =
-                            (NodeState.ChildNodeEntry) iter.next();
+                    ChildNodeEntry entry =
+                            (ChildNodeEntry) iter.next();
                     frozenNodes[i++] = (InternalFreeze) vMgr.getItem(entry.getId());
                 }
             } catch (RepositoryException e) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java?rev=683257&r1=683256&r2=683257&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java Wed Aug  6 06:17:00 2008
@@ -21,7 +21,7 @@
 import org.apache.jackrabbit.core.state.ItemStateException;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.PropertyState;
-import org.apache.jackrabbit.core.state.NodeState.ChildNodeEntry;
+import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.core.value.InternalValue;
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.uuid.UUID;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java?rev=683257&r1=683256&r2=683257&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java Wed Aug  6 06:17:00 2008
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.version;
 
-import org.apache.jackrabbit.core.state.NodeState;
+import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.core.value.InternalValue;
 import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.spi.Name;
@@ -118,7 +118,7 @@
      * {@inheritDoc}
      */
     public NodeId getFrozenNodeId() {
-        NodeState.ChildNodeEntry entry = node.getState().getChildNodeEntry(NameConstants.JCR_FROZENNODE, 1);
+        ChildNodeEntry entry = node.getState().getChildNodeEntry(NameConstants.JCR_FROZENNODE, 1);
         if (entry == null) {
             throw new InternalError("version has no frozen node: " + getId());
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java?rev=683257&r1=683256&r2=683257&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java Wed Aug  6 06:17:00 2008
@@ -29,6 +29,7 @@
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.PropertyState;
 import org.apache.jackrabbit.core.state.UpdatableItemStateManager;
+import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.core.value.InternalValue;
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.uuid.UUID;
@@ -328,7 +329,7 @@
      */
     public boolean removeNode(Name name, int index) throws RepositoryException {
         try {
-            NodeState.ChildNodeEntry entry = nodeState.getChildNodeEntry(name, index);
+            ChildNodeEntry entry = nodeState.getChildNodeEntry(name, index);
             if (entry == null) {
                 return false;
             } else {
@@ -364,7 +365,7 @@
         // remove child nodes
         iter = state.getChildNodeEntries().iterator();
         while (iter.hasNext()) {
-            NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) iter.next();
+            ChildNodeEntry entry = (ChildNodeEntry) iter.next();
             removeNode(entry.getId());
         }
         state.removeAllChildNodeEntries();
@@ -407,7 +408,7 @@
      * @throws RepositoryException
      */
     public NodeStateEx getNode(Name name, int index) throws RepositoryException {
-        NodeState.ChildNodeEntry entry = nodeState.getChildNodeEntry(name, index);
+        ChildNodeEntry entry = nodeState.getChildNodeEntry(name, index);
         if (entry == null) {
             return null;
         }
@@ -483,7 +484,7 @@
             List entries = nodeState.getChildNodeEntries();
             NodeStateEx[] children = new NodeStateEx[entries.size()];
             for (int i = 0; i < entries.size(); i++) {
-                NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) entries.get(i);
+                ChildNodeEntry entry = (ChildNodeEntry) entries.get(i);
                 NodeState state = (NodeState) stateMgr.getItemState(entry.getId());
                 children[i] = new NodeStateEx(stateMgr, ntReg, state, entry.getName());
             }
@@ -529,7 +530,7 @@
             // now store all child node entries
             List nodes = state.getChildNodeEntries();
             for (int i = 0; i < nodes.size(); i++) {
-                NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) nodes.get(i);
+                ChildNodeEntry entry = (ChildNodeEntry) nodes.get(i);
                 NodeState nstate = (NodeState) stateMgr.getItemState(entry.getId());
                 store(nstate);
             }
@@ -574,7 +575,7 @@
             // now reload all child node entries
             List nodes = state.getChildNodeEntries();
             for (int i = 0; i < nodes.size(); i++) {
-                NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) nodes.get(i);
+                ChildNodeEntry entry = (ChildNodeEntry) nodes.get(i);
                 NodeState nstate = (NodeState) stateMgr.getItemState(entry.getId());
                 reload(nstate);
             }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java?rev=683257&r1=683256&r2=683257&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java Wed Aug  6 06:17:00 2008
@@ -33,6 +33,7 @@
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.ItemStateReferenceMap;
 import org.apache.jackrabbit.core.state.ItemStateListener;
+import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.uuid.UUID;
 import org.apache.jackrabbit.util.WeakIdentityCollection;
@@ -360,7 +361,7 @@
                 }
                 Iterator iter = state.getChildNodeEntries().iterator();
                 while (iter.hasNext()) {
-                    NodeState.ChildNodeEntry pe = (NodeState.ChildNodeEntry) iter.next();
+                    ChildNodeEntry pe = (ChildNodeEntry) iter.next();
                     invalidateItem(pe.getId(), true);
                 }
             }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java?rev=683257&r1=683256&r2=683257&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java Wed Aug  6 06:17:00 2008
@@ -27,6 +27,7 @@
 import org.apache.jackrabbit.core.nodetype.PropDef;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.PropertyState;
+import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.core.util.ReferenceChangeTracker;
 import org.apache.jackrabbit.core.value.InternalValue;
 import org.apache.jackrabbit.core.version.VersionManager;
@@ -238,7 +239,7 @@
             // child node entries (JCR-1055);
             // => backup list of child node entries beforehand in order
             // to restore it afterwards
-            NodeState.ChildNodeEntry cneConflicting = parent.getChildNodeEntry(nodeInfo.getId());
+            ChildNodeEntry cneConflicting = parent.getChildNodeEntry(nodeInfo.getId());
             List cneList = new ArrayList(parent.getChildNodeEntries());
             // do remove conflicting (recursive)
             itemOps.removeNodeState(conflicting);
@@ -264,7 +265,7 @@
                 // but preserving original position
                 parent.removeAllChildNodeEntries();
                 for (Iterator iter = cneList.iterator(); iter.hasNext();) {
-                    NodeState.ChildNodeEntry cne = (NodeState.ChildNodeEntry) iter.next();
+                    ChildNodeEntry cne = (ChildNodeEntry) iter.next();
                     if (cne.getId().equals(nodeInfo.getId())) {
                         // replace entry with different name
                         parent.addChildNodeEntry(nodeInfo.getName(), nodeInfo.getId());
@@ -410,7 +411,7 @@
             }
             if (parent.hasChildNodeEntry(nodeName)) {
                 // a node with that name already exists...
-                NodeState.ChildNodeEntry entry =
+                ChildNodeEntry entry =
                         parent.getChildNodeEntry(nodeName, 1);
                 NodeId idExisting = entry.getId();
                 NodeState existing = (NodeState) itemOps.getItemState(idExisting);

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/CachingHierarchyManagerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/CachingHierarchyManagerTest.java?rev=683257&r1=683256&r2=683257&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/CachingHierarchyManagerTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/CachingHierarchyManagerTest.java Wed Aug  6 06:17:00 2008
@@ -28,6 +28,7 @@
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.NodeStateListener;
 import org.apache.jackrabbit.core.state.PropertyState;
+import org.apache.jackrabbit.core.state.ChildNodeEntry;
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.spi.commons.name.NameConstants;
@@ -437,7 +438,7 @@
                 throws ItemStateException {
 
             NodeState oldParent = (NodeState) getItemState(child.getParentId());
-            NodeState.ChildNodeEntry cne = oldParent.getChildNodeEntry(child.getNodeId());
+            ChildNodeEntry cne = oldParent.getChildNodeEntry(child.getNodeId());
             if (cne == null) {
                 throw new ItemStateException(child.getNodeId().toString());
             }
@@ -462,7 +463,7 @@
 
             int srcIndex = -1, destIndex = -1;
             for (int i = 0; i < list.size(); i++) {
-                NodeState.ChildNodeEntry cne = (NodeState.ChildNodeEntry) list.get(i);
+                ChildNodeEntry cne = (ChildNodeEntry) list.get(i);
                 if (cne.getId().equals(src.getId())) {
                     srcIndex = i;
                 } else if (dest != null && cne.getId().equals(dest.getId())) {
@@ -507,7 +508,7 @@
          */
         public void renameNode(NodeState child, String newName) throws ItemStateException {
             NodeState parent = (NodeState) getItemState(child.getParentId());
-            NodeState.ChildNodeEntry cne = parent.getChildNodeEntry(child.getNodeId());
+            ChildNodeEntry cne = parent.getChildNodeEntry(child.getNodeId());
             if (cne == null) {
                 throw new ItemStateException(child.getNodeId().toString());
             }