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/16 10:53:12 UTC
svn commit: r785116 - in /jackrabbit/trunk/jackrabbit-core/src:
main/java/org/apache/jackrabbit/core/
main/java/org/apache/jackrabbit/core/state/
test/java/org/apache/jackrabbit/core/
test/java/org/apache/jackrabbit/core/data/
Author: thomasm
Date: Tue Jun 16 08:53:11 2009
New Revision: 785116
URL: http://svn.apache.org/viewvc?rev=785116&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/BatchedItemOperations.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LazyItemIterator.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/SessionGarbageCollectedTest.java
jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java
jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java Tue Jun 16 08:53:11 2009
@@ -434,7 +434,7 @@
// adjust references that refer to uuid's which have been mapped to
// newly generated uuid's on copy/clone
- Iterator iter = refTracker.getProcessedReferences();
+ Iterator<Object> iter = refTracker.getProcessedReferences();
while (iter.hasNext()) {
PropertyState prop = (PropertyState) iter.next();
// being paranoid...
@@ -547,8 +547,8 @@
// 2. check if target state can be removed from old/added to new parent
checkRemoveNode(target, srcParent.getNodeId(),
- CHECK_ACCESS | CHECK_LOCK | CHECK_VERSIONING | CHECK_CONSTRAINTS |
- CHECK_HOLD | CHECK_RETENTION);
+ CHECK_ACCESS | CHECK_LOCK | CHECK_VERSIONING | CHECK_CONSTRAINTS
+ | CHECK_HOLD | CHECK_RETENTION);
checkAddNode(destParent, destName.getName(),
target.getNodeTypeName(), CHECK_ACCESS | CHECK_LOCK
| CHECK_VERSIONING | CHECK_CONSTRAINTS | CHECK_HOLD | CHECK_RETENTION);
@@ -1122,7 +1122,7 @@
}
NodeState node = stateMgr.createNew(id, nodeTypeName, parent.getNodeId());
if (mixinNames != null && mixinNames.length > 0) {
- node.setMixinTypeNames(new HashSet(Arrays.asList(mixinNames)));
+ node.setMixinTypeNames(new HashSet<Name>(Arrays.asList(mixinNames)));
}
node.setDefinitionId(def.getId());
@@ -1144,16 +1144,12 @@
}
// add 'auto-create' properties defined in node type
- PropDef[] pda = ent.getAutoCreatePropDefs();
- for (int i = 0; i < pda.length; i++) {
- PropDef pd = pda[i];
+ for (PropDef pd : ent.getAutoCreatePropDefs()) {
createPropertyState(node, pd.getName(), pd.getRequiredType(), pd);
}
// recursively add 'auto-create' child nodes defined in node type
- NodeDef[] nda = ent.getAutoCreateNodeDefs();
- for (int i = 0; i < nda.length; i++) {
- NodeDef nd = nda[i];
+ for (NodeDef nd : ent.getAutoCreateNodeDefs()) {
createNodeState(node, nd.getName(), nd.getDefaultPrimaryType(),
null, null, nd);
}
@@ -1539,13 +1535,12 @@
genValues = new InternalValue[]{InternalValue.create(parent.getNodeTypeName())};
} else if (NameConstants.JCR_MIXINTYPES.equals(name)) {
// jcr:mixinTypes property
- Set mixins = parent.getMixinTypeNames();
- ArrayList values = new ArrayList(mixins.size());
- Iterator iter = mixins.iterator();
- while (iter.hasNext()) {
- values.add(InternalValue.create((Name) iter.next()));
+ Set<Name> mixins = parent.getMixinTypeNames();
+ ArrayList<InternalValue> values = new ArrayList<InternalValue>(mixins.size());
+ for (Name n : mixins) {
+ values.add(InternalValue.create(n));
}
- genValues = (InternalValue[]) values.toArray(new InternalValue[values.size()]);
+ genValues = values.toArray(new InternalValue[values.size()]);
}
} else if (NameConstants.NT_HIERARCHYNODE.equals(declaringNT)) {
// nt:hierarchyNode node type
@@ -1591,10 +1586,10 @@
if (targetState.hasChildNodeEntries()) {
// remove child nodes
// use temp array to avoid ConcurrentModificationException
- ArrayList tmp = new ArrayList(targetState.getChildNodeEntries());
+ ArrayList<ChildNodeEntry> tmp = new ArrayList<ChildNodeEntry>(targetState.getChildNodeEntries());
// remove from tail to avoid problems with same-name siblings
for (int i = tmp.size() - 1; i >= 0; i--) {
- ChildNodeEntry entry = (ChildNodeEntry) tmp.get(i);
+ ChildNodeEntry entry = tmp.get(i);
NodeId nodeId = entry.getId();
try {
NodeState nodeState = (NodeState) stateMgr.getItemState(nodeId);
@@ -1625,9 +1620,8 @@
// remove properties
// use temp set to avoid ConcurrentModificationException
- HashSet tmp = new HashSet(targetState.getPropertyNames());
- for (Iterator iter = tmp.iterator(); iter.hasNext();) {
- Name propName = (Name) iter.next();
+ HashSet<Name> tmp = new HashSet<Name>(targetState.getPropertyNames());
+ for (Name propName : tmp) {
PropertyId propId =
new PropertyId(targetState.getNodeId(), propName);
try {
@@ -1758,9 +1752,7 @@
newState.addShare(destParentId);
}
// copy child nodes
- Iterator iter = srcState.getChildNodeEntries().iterator();
- while (iter.hasNext()) {
- ChildNodeEntry entry = (ChildNodeEntry) iter.next();
+ for (ChildNodeEntry entry : srcState.getChildNodeEntries()) {
Path srcChildPath = PathFactoryImpl.getInstance().create(srcPath, entry.getName(), true);
if (!srcAccessMgr.isGranted(srcChildPath, Permission.READ)) {
continue;
@@ -1826,9 +1818,7 @@
history = manager.getVersionHistory(session, newState, copiedFrom);
}
// copy properties
- iter = srcState.getPropertyNames().iterator();
- while (iter.hasNext()) {
- Name propName = (Name) iter.next();
+ for (Name propName : srcState.getPropertyNames()) {
Path propPath = PathFactoryImpl.getInstance().create(srcPath, propName, true);
if (!srcAccessMgr.canRead(propPath)) {
continue;
@@ -1967,7 +1957,7 @@
private boolean isShareable(NodeState state) throws RepositoryException {
// shortcut: check some wellknown built-in types first
Name primary = state.getNodeTypeName();
- Set mixins = state.getMixinTypeNames();
+ Set<Name> mixins = state.getMixinTypeNames();
if (mixins.contains(NameConstants.MIX_SHAREABLE)) {
return true;
}
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java Tue Jun 16 08:53:11 2009
@@ -308,9 +308,8 @@
// Item not cached, ignore
return;
}
- PathMap.Element[] elements = entry.getElements();
- for (int i = 0; i < elements.length; i++) {
- Iterator iter = elements[i].getChildren();
+ for (PathMap.Element element : entry.getElements()) {
+ Iterator iter = element.getChildren();
while (iter.hasNext()) {
PathMap.Element child = (PathMap.Element) iter.next();
ChildNodeEntry cne = modified.getChildNodeEntry(
@@ -393,12 +392,11 @@
if (entry == null) {
return;
}
- PathMap.Element[] parents = entry.getElements();
- for (int i = 0; i < parents.length; i++) {
- HashMap newChildrenOrder = new HashMap();
+ for (PathMap.Element parent : entry.getElements()) {
+ HashMap<Path.Element, PathMap.Element> newChildrenOrder = new HashMap<Path.Element, PathMap.Element>();
boolean orderChanged = false;
- Iterator iter = parents[i].getChildren();
+ Iterator iter = parent.getChildren();
while (iter.hasNext()) {
PathMap.Element child = (PathMap.Element) iter.next();
LRUEntry childEntry = (LRUEntry) child.get();
@@ -436,7 +434,7 @@
if (orderChanged) {
/* If at least one child changed its position, reorder */
- parents[i].setChildren(newChildrenOrder);
+ parent.setChildren(newChildrenOrder);
}
}
checkConsistency();
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java Tue Jun 16 08:53:11 2009
@@ -17,7 +17,6 @@
package org.apache.jackrabbit.core;
import java.util.Collections;
-import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -186,7 +185,7 @@
* @return set of parent <code>NodeId</code>s. If state has no parent,
* array has length <code>0</code>.
*/
- protected Set getParentIds(ItemState state, boolean useOverlayed) {
+ protected Set<NodeId> getParentIds(ItemState state, boolean useOverlayed) {
if (state.isNode()) {
// if this is a node, quickly check whether it is shareable and
// whether it contains more than one parent
@@ -194,18 +193,18 @@
if (ns.isShareable() && useOverlayed && ns.hasOverlayedState()) {
ns = (NodeState) ns.getOverlayedState();
}
- Set s = ns.getSharedSet();
+ Set<NodeId> s = ns.getSharedSet();
if (s.size() > 1) {
return s;
}
}
NodeId parentId = getParentId(state);
if (parentId != null) {
- LinkedHashSet s = new LinkedHashSet();
+ LinkedHashSet<NodeId> s = new LinkedHashSet<NodeId>();
s.add(parentId);
return s;
}
- return Collections.EMPTY_SET;
+ return Collections.emptySet();
}
/**
@@ -577,15 +576,13 @@
}
try {
ItemState state = getItemState(descendant);
- Set parentIds = getParentIds(state, false);
+ Set<NodeId> parentIds = getParentIds(state, false);
while (parentIds.size() > 0) {
if (parentIds.contains(ancestor)) {
return true;
}
- Set grandparentIds = new LinkedHashSet();
- Iterator iter = parentIds.iterator();
- while (iter.hasNext()) {
- NodeId parentId = (NodeId) iter.next();
+ Set<NodeId> grandparentIds = new LinkedHashSet<NodeId>();
+ for (NodeId parentId : parentIds) {
grandparentIds.addAll(getParentIds(getItemState(parentId), false));
}
parentIds = grandparentIds;
@@ -617,16 +614,14 @@
int depth = 1;
try {
ItemState state = getItemState(descendant);
- Set parentIds = getParentIds(state, true);
+ Set<NodeId> parentIds = getParentIds(state, true);
while (parentIds.size() > 0) {
if (parentIds.contains(ancestor)) {
return depth;
}
depth++;
- Set grandparentIds = new LinkedHashSet();
- Iterator iter = parentIds.iterator();
- while (iter.hasNext()) {
- NodeId parentId = (NodeId) iter.next();
+ Set<NodeId> grandparentIds = new LinkedHashSet<NodeId>();
+ for (NodeId parentId : parentIds) {
state = getItemState(parentId);
grandparentIds.addAll(getParentIds(state, true));
}
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java Tue Jun 16 08:53:11 2009
@@ -222,17 +222,17 @@
* @throws InvalidItemStateException
* @throws RepositoryException
*/
- private Collection getTransientStates()
+ private Collection<ItemState> getTransientStates()
throws InvalidItemStateException, RepositoryException {
// list of transient states that should be persisted
- ArrayList dirty = new ArrayList();
+ ArrayList<ItemState> dirty = new ArrayList<ItemState>();
ItemState transientState;
if (isNode()) {
// build list of 'new' or 'modified' descendants
- Iterator iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
+ Iterator<ItemState> iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
while (iter.hasNext()) {
- transientState = (ItemState) iter.next();
+ transientState = iter.next();
// fail-fast test: check status of transient state
switch (transientState.getStatus()) {
case ItemState.STATUS_NEW:
@@ -312,15 +312,15 @@
* @throws InvalidItemStateException
* @throws RepositoryException
*/
- private Collection getRemovedStates()
+ private Collection<ItemState> getRemovedStates()
throws InvalidItemStateException, RepositoryException {
- ArrayList removed = new ArrayList();
+ ArrayList<ItemState> removed = new ArrayList<ItemState>();
ItemState transientState;
if (isNode()) {
- Iterator iter = stateMgr.getDescendantTransientItemStatesInAttic((NodeId) id);
+ Iterator<ItemState> iter = stateMgr.getDescendantTransientItemStatesInAttic((NodeId) id);
while (iter.hasNext()) {
- transientState = (ItemState) iter.next();
+ transientState = iter.next();
// check if stale
if (transientState.getStatus() == ItemState.STATUS_STALE_MODIFIED) {
String msg = transientState.getId()
@@ -340,7 +340,7 @@
return removed;
}
- private void validateTransientItems(Iterator dirtyIter, Iterator removedIter)
+ private void validateTransientItems(Iterator<ItemState> dirtyIter, Iterator<ItemState> removedIter)
throws AccessDeniedException, ConstraintViolationException,
RepositoryException {
/**
@@ -368,7 +368,7 @@
NodeTypeManagerImpl ntMgr = session.getNodeTypeManager();
// walk through list of dirty transient items and validate each
while (dirtyIter.hasNext()) {
- ItemState itemState = (ItemState) dirtyIter.next();
+ ItemState itemState = dirtyIter.next();
ItemDefinition def;
if (itemState.isNode()) {
def = ntMgr.getNodeDefinition(((NodeState) itemState).getDefinitionId());
@@ -577,7 +577,7 @@
// walk through list of removed transient items and check REMOVE permission
while (removedIter.hasNext()) {
- ItemState itemState = (ItemState) removedIter.next();
+ ItemState itemState = removedIter.next();
ItemDefinition def;
if (itemState.isNode()) {
def = ntMgr.getNodeDefinition(((NodeState) itemState).getDefinitionId());
@@ -598,14 +598,14 @@
}
}
- private void removeTransientItems(Iterator iter) {
+ private void removeTransientItems(Iterator<ItemState> iter) {
/**
* walk through list of transient items marked 'removed' and
* definitively remove each one
*/
while (iter.hasNext()) {
- ItemState transientState = (ItemState) iter.next();
+ ItemState transientState = iter.next();
ItemState persistentState = transientState.getOverlayedState();
/**
* remove persistent state
@@ -617,22 +617,22 @@
}
}
- private void persistTransientItems(Iterator iter)
+ private void persistTransientItems(Iterator<ItemState> iter)
throws RepositoryException {
// walk through list of transient items and persist each one
while (iter.hasNext()) {
- ItemState state = (ItemState) iter.next();
+ ItemState state = iter.next();
ItemImpl item = itemMgr.getItem(state.getId());
// persist state of transient item
item.makePersistent();
}
}
- private void restoreTransientItems(Iterator iter) {
+ private void restoreTransientItems(Iterator<ItemState> iter) {
// walk through list of transient states and re-apply transient changes
while (iter.hasNext()) {
- ItemState itemState = (ItemState) iter.next();
+ ItemState itemState = iter.next();
ItemId id = itemState.getId();
ItemImpl item;
@@ -685,9 +685,9 @@
* has been removed, throw.</li>
* </ul>
*/
- private void processShareableNodes(Iterator iter) throws RepositoryException {
+ private void processShareableNodes(Iterator<ItemState> iter) throws RepositoryException {
while (iter.hasNext()) {
- ItemState is = (ItemState) iter.next();
+ ItemState is = iter.next();
if (is.isNode()) {
NodeState ns = (NodeState) is;
boolean wasShareable = false;
@@ -723,11 +723,11 @@
* @return true if this call generated new transient state; otherwise false
* @throws RepositoryException
*/
- private boolean initVersionHistories(Iterator iter) throws RepositoryException {
+ private boolean initVersionHistories(Iterator<ItemState> iter) throws RepositoryException {
// walk through list of transient items and search for new versionable nodes
boolean createdTransientState = false;
while (iter.hasNext()) {
- ItemState itemState = (ItemState) iter.next();
+ ItemState itemState = iter.next();
if (itemState.isNode()) {
NodeState nodeState = (NodeState) itemState;
EffectiveNodeType nt = getEffectiveNodeType(nodeState);
@@ -944,7 +944,7 @@
* build list of transient (i.e. new & modified) states that
* should be persisted
*/
- Collection dirty = getTransientStates();
+ Collection<ItemState> dirty = getTransientStates();
if (dirty.size() == 0) {
// no transient items, nothing to do here
return;
@@ -954,17 +954,17 @@
* build list of transient descendants in the attic
* (i.e. those marked as 'removed')
*/
- Collection removed = getRemovedStates();
+ Collection<ItemState> removed = getRemovedStates();
/**
* build set of item id's which are within the scope of
* (i.e. affected by) this save operation
*/
- Set affectedIds = new HashSet(dirty.size() + removed.size());
- for (Iterator it =
+ Set<ItemId> affectedIds = new HashSet<ItemId>(dirty.size() + removed.size());
+ for (Iterator<ItemState> it =
new IteratorChain(dirty.iterator(), removed.iterator());
it.hasNext();) {
- affectedIds.add(((ItemState) it.next()).getId());
+ affectedIds.add(it.next().getId());
}
/**
@@ -974,13 +974,13 @@
* (e.g. moving a node requires that the target node including both
* old and new parents are saved)
*/
- for (Iterator it =
+ for (Iterator<ItemState> it =
new IteratorChain(dirty.iterator(), removed.iterator());
it.hasNext();) {
- ItemState transientState = (ItemState) it.next();
+ ItemState transientState = it.next();
if (transientState.isNode()) {
NodeState nodeState = (NodeState) transientState;
- Set dependentIDs = new HashSet();
+ Set<NodeId> dependentIDs = new HashSet<NodeId>();
if (nodeState.hasOverlayedState()) {
NodeState overlayedState =
(NodeState) nodeState.getOverlayedState();
@@ -1009,11 +1009,11 @@
try {
NodeState parent = (NodeState) stateMgr.getTransientItemState(newParentId);
// check parent's renamed child node entries
- for (Iterator cneIt =
+ for (Iterator<ChildNodeEntry> cneIt =
parent.getRenamedChildNodeEntries().iterator();
cneIt.hasNext();) {
ChildNodeEntry cne =
- (ChildNodeEntry) cneIt.next();
+ cneIt.next();
if (cne.getId().equals(nodeState.getId())) {
// node has been renamed,
// add parent to dependencies
@@ -1031,25 +1031,25 @@
}
// removed child node entries
- for (Iterator cneIt =
+ for (Iterator<ChildNodeEntry> cneIt =
nodeState.getRemovedChildNodeEntries().iterator();
cneIt.hasNext();) {
- ChildNodeEntry cne = (ChildNodeEntry) cneIt.next();
+ ChildNodeEntry cne = cneIt.next();
dependentIDs.add(cne.getId());
}
// added child node entries
- for (Iterator cneIt =
+ for (Iterator<ChildNodeEntry> cneIt =
nodeState.getAddedChildNodeEntries().iterator();
cneIt.hasNext();) {
- ChildNodeEntry cne = (ChildNodeEntry) cneIt.next();
+ ChildNodeEntry cne = cneIt.next();
dependentIDs.add(cne.getId());
}
// now walk through dependencies and check whether they
// are within the scope of this save operation
- Iterator depIt = dependentIDs.iterator();
+ Iterator<NodeId> depIt = dependentIDs.iterator();
while (depIt.hasNext()) {
- NodeId id = (NodeId) depIt.next();
+ NodeId id = depIt.next();
if (!affectedIds.contains(id)) {
// JCR-1359 workaround: check whether unresolved
// dependencies originate from 'this' session;
@@ -1109,8 +1109,8 @@
// transient item states must be removed now. otherwise
// the session item state provider will return an orphaned
// item state which is not referenced by any node instance.
- for (Iterator it = dirty.iterator(); it.hasNext();) {
- ItemState transientState = (ItemState) it.next();
+ for (Iterator<ItemState> it = dirty.iterator(); it.hasNext();) {
+ ItemState transientState = it.next();
// dispose the transient state, it is no longer used
stateMgr.disposeTransientItemState(transientState);
}
@@ -1143,8 +1143,8 @@
// item states in attic are removed after store, because
// the observation mechanism needs to build paths of removed
// items in store().
- for (Iterator it = removed.iterator(); it.hasNext();) {
- ItemState transientState = (ItemState) it.next();
+ for (Iterator<ItemState> it = removed.iterator(); it.hasNext();) {
+ ItemState transientState = it.next();
// dispose the transient state, it is no longer used
stateMgr.disposeTransientItemStateInAttic(transientState);
}
@@ -1176,7 +1176,7 @@
}
// list of transient items that should be discarded
- ArrayList list = new ArrayList();
+ ArrayList<ItemState> list = new ArrayList<ItemState>();
ItemState transientState;
// check status of this item's state
@@ -1213,9 +1213,9 @@
if (isNode()) {
// build list of 'new', 'modified' or 'stale' descendants
- Iterator iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
+ Iterator<ItemState> iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
while (iter.hasNext()) {
- transientState = (ItemState) iter.next();
+ transientState = iter.next();
switch (transientState.getStatus()) {
case ItemState.STATUS_STALE_MODIFIED:
case ItemState.STATUS_STALE_DESTROYED:
@@ -1234,9 +1234,9 @@
}
// process list of 'new', 'modified' or 'stale' transient states
- Iterator iter = list.iterator();
+ Iterator<ItemState> iter = list.iterator();
while (iter.hasNext()) {
- transientState = (ItemState) iter.next();
+ transientState = iter.next();
// dispose the transient state, it is no longer used;
// this will indirectly (through stateDiscarded listener method)
// either restore or permanently invalidate the wrapping Item instances
@@ -1248,7 +1248,7 @@
// as 'removed'); this will resurrect the removed items
iter = stateMgr.getDescendantTransientItemStatesInAttic((NodeId) id);
while (iter.hasNext()) {
- transientState = (ItemState) iter.next();
+ transientState = iter.next();
// dispose the transient state; this will indirectly (through
// stateDiscarded listener method) resurrect the wrapping Item instances
stateMgr.disposeTransientItemStateInAttic(transientState);
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LazyItemIterator.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LazyItemIterator.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LazyItemIterator.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/LazyItemIterator.java Tue Jun 16 08:53:11 2009
@@ -71,7 +71,7 @@
* @param itemMgr item manager
* @param idList list of item id's
*/
- public LazyItemIterator(ItemManager itemMgr, List<ItemId> idList) {
+ public LazyItemIterator(ItemManager itemMgr, List< ? extends ItemId> idList) {
this(itemMgr, idList, null);
}
@@ -84,7 +84,7 @@
* @param idList list of item id's
* @param parentId parent id.
*/
- public LazyItemIterator(ItemManager itemMgr, List<ItemId> idList, NodeId parentId) {
+ public LazyItemIterator(ItemManager itemMgr, List< ? extends ItemId> idList, NodeId parentId) {
this.itemMgr = itemMgr;
this.idList = new ArrayList<ItemId>(idList);
this.parentId = parentId;
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NamespaceRegistryImpl.java Tue Jun 16 08:53:11 2009
@@ -30,7 +30,6 @@
import java.io.OutputStream;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Properties;
import javax.jcr.AccessDeniedException;
@@ -50,8 +49,8 @@
private static final String NS_REG_RESOURCE = "ns_reg.properties";
private static final String NS_IDX_RESOURCE = "ns_idx.properties";
- private static final HashSet reservedPrefixes = new HashSet();
- private static final HashSet reservedURIs = new HashSet();
+ private static final HashSet<String> reservedPrefixes = new HashSet<String>();
+ private static final HashSet<String> reservedURIs = new HashSet<String>();
static {
// reserved prefixes
@@ -74,13 +73,13 @@
reservedURIs.add(Name.NS_SV_URI);
}
- private HashMap prefixToURI = new HashMap();
- private HashMap uriToPrefix = new HashMap();
+ private HashMap<String, String> prefixToURI = new HashMap<String, String>();
+ private HashMap<String, String> uriToPrefix = new HashMap<String, String>();
- private HashMap indexToURI = new HashMap();
- private HashMap uriToIndex = new HashMap();
+ private HashMap<Integer, String> indexToURI = new HashMap<Integer, String>();
+ private HashMap<String, Integer> uriToIndex = new HashMap<String, Integer>();
- private int lastIndex = 0;
+ private int lastIndex;
private final FileSystem nsRegStore;
@@ -133,7 +132,7 @@
uriToPrefix.put(uri, prefix);
if (!uriToIndex.containsKey(uri)) {
if (idx == null) {
- idx = new Integer(++lastIndex);
+ idx = ++lastIndex;
} else {
if (idx.intValue() > lastIndex) {
lastIndex = idx.intValue();
@@ -196,9 +195,8 @@
clear();
// read mappings from properties
- Iterator iter = props.keySet().iterator();
- while (iter.hasNext()) {
- String prefix = (String) iter.next();
+ for (Object p : props.keySet()) {
+ String prefix = (String) p;
String uri = props.getProperty(prefix);
String idx = indexes.getProperty(uri);
if (idx != null) {
@@ -229,10 +227,8 @@
Properties props = new Properties();
// store mappings in properties
- Iterator iter = prefixToURI.keySet().iterator();
- while (iter.hasNext()) {
- String prefix = (String) iter.next();
- String uri = (String) prefixToURI.get(prefix);
+ for (String prefix : prefixToURI.keySet()) {
+ String uri = prefixToURI.get(prefix);
props.setProperty(prefix, uri);
}
@@ -256,9 +252,7 @@
Properties props = new Properties();
// store mappings in properties
- Iterator iter = uriToIndex.keySet().iterator();
- while (iter.hasNext()) {
- String uri = (String) iter.next();
+ for (String uri : uriToIndex.keySet()) {
String index = uriToIndex.get(uri).toString();
props.setProperty(uri, index);
}
@@ -296,7 +290,7 @@
* @throws IllegalArgumentException if the namespace is not registered
*/
public int stringToIndex(String uri) {
- Integer idx = (Integer) uriToIndex.get(uri);
+ Integer idx = uriToIndex.get(uri);
if (idx == null) {
throw new IllegalArgumentException("Namespace not registered: " + uri);
}
@@ -311,7 +305,7 @@
* @throws IllegalArgumentException if the given index is invalid
*/
public String indexToString(int idx) {
- String uri = (String) indexToURI.get(new Integer(idx));
+ String uri = indexToURI.get(idx);
if (uri == null) {
throw new IllegalArgumentException("Invalid namespace index: " + idx);
}
@@ -351,7 +345,7 @@
}
// check existing mappings
- String oldPrefix = (String) uriToPrefix.get(uri);
+ String oldPrefix = uriToPrefix.get(uri);
if (prefix.equals(oldPrefix)) {
throw new NamespaceException("failed to register namespace "
+ prefix + " -> " + uri + ": mapping already exists");
@@ -409,14 +403,14 @@
* {@inheritDoc}
*/
public String[] getPrefixes() throws RepositoryException {
- return (String[]) prefixToURI.keySet().toArray(new String[prefixToURI.keySet().size()]);
+ return prefixToURI.keySet().toArray(new String[prefixToURI.keySet().size()]);
}
/**
* {@inheritDoc}
*/
public String[] getURIs() throws RepositoryException {
- return (String[]) uriToPrefix.keySet().toArray(new String[uriToPrefix.keySet().size()]);
+ return uriToPrefix.keySet().toArray(new String[uriToPrefix.keySet().size()]);
}
//---------------------------------------------------< NamespaceRegistry >
@@ -424,7 +418,7 @@
* {@inheritDoc}
*/
public String getURI(String prefix) throws NamespaceException {
- String uri = (String) prefixToURI.get(prefix);
+ String uri = prefixToURI.get(prefix);
if (uri == null) {
throw new NamespaceException(prefix
+ ": is not a registered namespace prefix.");
@@ -436,7 +430,7 @@
* {@inheritDoc}
*/
public String getPrefix(String uri) throws NamespaceException {
- String prefix = (String) uriToPrefix.get(uri);
+ String prefix = uriToPrefix.get(uri);
if (prefix == null) {
throw new NamespaceException(uri
+ ": is not a registered namespace uri.");
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java Tue Jun 16 08:53:11 2009
@@ -251,7 +251,7 @@
if (isTransient()) {
return true;
}
- Iterator iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
+ Iterator<ItemState> iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
return iter.hasNext();
}
@@ -353,13 +353,12 @@
genValues = new InternalValue[]{InternalValue.create(thisState.getNodeTypeName())};
} else if (name.equals(NameConstants.JCR_MIXINTYPES)) {
// jcr:mixinTypes property
- Set mixins = thisState.getMixinTypeNames();
- ArrayList values = new ArrayList(mixins.size());
- Iterator iter = mixins.iterator();
- while (iter.hasNext()) {
- values.add(InternalValue.create((Name) iter.next()));
+ Set<Name> mixins = thisState.getMixinTypeNames();
+ ArrayList<InternalValue> values = new ArrayList<InternalValue>(mixins.size());
+ for (Name n : mixins) {
+ values.add(InternalValue.create(n));
}
- genValues = (InternalValue[]) values.toArray(new InternalValue[values.size()]);
+ genValues = values.toArray(new InternalValue[values.size()]);
}
}
@@ -654,11 +653,11 @@
if (thisState.hasChildNodeEntries()) {
// remove child nodes
// use temp array to avoid ConcurrentModificationException
- ArrayList tmp = new ArrayList(thisState.getChildNodeEntries());
+ ArrayList<ChildNodeEntry> tmp = new ArrayList<ChildNodeEntry>(thisState.getChildNodeEntries());
// remove from tail to avoid problems with same-name siblings
for (int i = tmp.size() - 1; i >= 0; i--) {
ChildNodeEntry entry =
- (ChildNodeEntry) tmp.get(i);
+ tmp.get(i);
// recursively remove child node
NodeId childId = entry.getId();
//NodeImpl childNode = (NodeImpl) itemMgr.getItem(childId);
@@ -671,9 +670,8 @@
// remove properties
// use temp set to avoid ConcurrentModificationException
- HashSet tmp = new HashSet(thisState.getPropertyNames());
- for (Iterator iter = tmp.iterator(); iter.hasNext();) {
- Name propName = (Name) iter.next();
+ HashSet<Name> tmp = new HashSet<Name>(thisState.getPropertyNames());
+ for (Name propName : tmp) {
// remove the property entry
thisState.removePropertyName(propName);
// remove property
@@ -803,8 +801,8 @@
}
// check protected flag of parent (i.e. this) node and retention/hold
- int options = ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD |
- ItemValidator.CHECK_RETENTION;
+ int options = ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD
+ | ItemValidator.CHECK_RETENTION;
session.getValidator().checkModify(this, options, Permission.NONE);
// now do create the child node
@@ -833,10 +831,10 @@
// call internalSetValue for setting the jcr:mixinTypes property
// to avoid checking of the 'protected' flag
InternalValue[] vals = new InternalValue[mixinNames.size()];
- Iterator iter = mixinNames.iterator();
+ Iterator<Name> iter = mixinNames.iterator();
int cnt = 0;
while (iter.hasNext()) {
- vals[cnt++] = InternalValue.create((Name) iter.next());
+ vals[cnt++] = InternalValue.create(iter.next());
}
prop.internalSetValue(vals, PropertyType.NAME);
}
@@ -846,7 +844,7 @@
*
* @return a set of the <code>Name</code>s of this node's mixin types.
*/
- public Set getMixinTypeNames() {
+ public Set<Name> getMixinTypeNames() {
return data.getNodeState().getMixinTypeNames();
}
@@ -1012,8 +1010,8 @@
// check state of this instance
sanityCheck();
- int options = ItemValidator.CHECK_LOCK | ItemValidator.CHECK_VERSIONING |
- ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD;
+ int options = ItemValidator.CHECK_LOCK | ItemValidator.CHECK_VERSIONING
+ | ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD;
int permissions = Permission.NODE_TYPE_MNGMT;
// special handling of mix:(simple)versionable. since adding the mixin alters
// the version storage jcr:versionManagement privilege is required
@@ -1042,7 +1040,7 @@
EffectiveNodeType entExisting;
try {
// existing mixin's
- Set mixins = new HashSet(data.getNodeState().getMixinTypeNames());
+ Set<Name> mixins = new HashSet<Name>(data.getNodeState().getMixinTypeNames());
// build effective node type representing primary type including existing mixin's
entExisting = ntReg.getEffectiveNodeType(primaryTypeName, mixins);
@@ -1065,7 +1063,7 @@
// modify the state of this node
NodeState thisState = (NodeState) getOrCreateTransientItemState();
// add mixin name
- Set mixins = new HashSet(thisState.getMixinTypeNames());
+ Set<Name> mixins = new HashSet<Name>(thisState.getMixinTypeNames());
mixins.add(mixinName);
thisState.setMixinTypeNames(mixins);
@@ -1118,8 +1116,8 @@
// check state of this instance
sanityCheck();
- int options = ItemValidator.CHECK_LOCK | ItemValidator.CHECK_VERSIONING |
- ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD;
+ int options = ItemValidator.CHECK_LOCK | ItemValidator.CHECK_VERSIONING
+ | ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD;
int permissions = Permission.NODE_TYPE_MNGMT;
session.getValidator().checkModify(this, options, permissions);
@@ -1133,7 +1131,7 @@
NodeTypeRegistry ntReg = ntMgr.getNodeTypeRegistry();
// build effective node type of remaining mixin's & primary type
- Set remainingMixins = new HashSet<Name>(state.getMixinTypeNames());
+ Set<Name> remainingMixins = new HashSet<Name>(state.getMixinTypeNames());
// remove name of target mixin
remainingMixins.remove(mixinName);
EffectiveNodeType entResulting;
@@ -1195,9 +1193,8 @@
boolean success = false;
try {
// use temp set to avoid ConcurrentModificationException
- HashSet set = new HashSet<Name>(thisState.getPropertyNames());
- for (Iterator iter = set.iterator(); iter.hasNext();) {
- Name propName = (Name) iter.next();
+ HashSet<Name> set = new HashSet<Name>(thisState.getPropertyNames());
+ for (Name propName : set) {
PropertyState propState = (PropertyState) stateMgr.getItemState(new PropertyId(thisState.getNodeId(), propName));
// check if property has been defined by mixin type (or one of its supertypes)
PropertyDefinition def = ntMgr.getPropertyDefinition(propState.getDefinitionId());
@@ -1259,10 +1256,10 @@
}
}
// use temp array to avoid ConcurrentModificationException
- ArrayList list = new ArrayList<ChildNodeEntry>(thisState.getChildNodeEntries());
+ ArrayList<ChildNodeEntry> list = new ArrayList<ChildNodeEntry>(thisState.getChildNodeEntries());
// start from tail to avoid problems with same-name siblings
for (int i = list.size() - 1; i >= 0; i--) {
- ChildNodeEntry entry = (ChildNodeEntry) list.get(i);
+ ChildNodeEntry entry = list.get(i);
NodeState nodeState = (NodeState) stateMgr.getItemState(entry.getId());
NodeDefinition def = ntMgr.getNodeDefinition(nodeState.getDefinitionId());
// check if node has been defined by mixin type (or one of its supertypes)
@@ -1317,7 +1314,7 @@
if (ntName.equals(primary)) {
return true;
}
- Set mixins = data.getNodeState().getMixinTypeNames();
+ Set<Name> mixins = data.getNodeState().getMixinTypeNames();
if (mixins.contains(ntName)) {
return true;
}
@@ -1853,14 +1850,14 @@
}
// make sure this node is checked-out and neither protected nor locked
- int options = ItemValidator.CHECK_LOCK | ItemValidator.CHECK_VERSIONING |
- ItemValidator.CHECK_CONSTRAINTS;
+ int options = ItemValidator.CHECK_LOCK | ItemValidator.CHECK_VERSIONING
+ | ItemValidator.CHECK_CONSTRAINTS;
session.getValidator().checkModify(this, options, Permission.NONE);
- ArrayList list = new ArrayList(data.getNodeState().getChildNodeEntries());
+ ArrayList<ChildNodeEntry> list = new ArrayList<ChildNodeEntry>(data.getNodeState().getChildNodeEntries());
int srcInd = -1, destInd = -1;
for (int i = 0; i < list.size(); i++) {
- ChildNodeEntry entry = (ChildNodeEntry) list.get(i);
+ ChildNodeEntry entry = list.get(i);
if (srcInd == -1) {
if (entry.getName().equals(srcName.getName())
&& (entry.getIndex() == srcName.getIndex()
@@ -1953,7 +1950,7 @@
throw new ItemNotFoundException(
this + ": no child node entry with id " + id);
}
- List cneList = new ArrayList(state.getChildNodeEntries());
+ List<ChildNodeEntry> cneList = new ArrayList<ChildNodeEntry>(state.getChildNodeEntries());
// remove existing
existing.remove();
@@ -1977,8 +1974,7 @@
// replace child node entry with different name
// but preserving original position
state.removeAllChildNodeEntries();
- for (Iterator iter = cneList.iterator(); iter.hasNext();) {
- ChildNodeEntry cne = (ChildNodeEntry) iter.next();
+ for (ChildNodeEntry cne : cneList) {
if (cne.getId().equals(id)) {
// replace entry with different name
state.addChildNodeEntry(nodeName, id);
@@ -2796,15 +2792,15 @@
// check state of this instance
sanityCheck();
- Set mixinNames = data.getNodeState().getMixinTypeNames();
+ Set<Name> mixinNames = data.getNodeState().getMixinTypeNames();
if (mixinNames.isEmpty()) {
return new NodeType[0];
}
NodeType[] nta = new NodeType[mixinNames.size()];
- Iterator iter = mixinNames.iterator();
+ Iterator<Name> iter = mixinNames.iterator();
int i = 0;
while (iter.hasNext()) {
- nta[i++] = session.getNodeTypeManager().getNodeType((Name) iter.next());
+ nta[i++] = session.getNodeTypeManager().getNodeType(iter.next());
}
return nta;
}
@@ -2851,9 +2847,9 @@
if (!mixin.isMixin()) {
return false;
}
-
- int options = ItemValidator.CHECK_LOCK | ItemValidator.CHECK_VERSIONING |
- ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD;
+
+ int options = ItemValidator.CHECK_LOCK | ItemValidator.CHECK_VERSIONING
+ | ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD;
int permissions = Permission.NODE_TYPE_MNGMT;
// special handling of mix:(simple)versionable. since adding the mixin alters
// the version storage jcr:versionManagement privilege is required
@@ -2880,7 +2876,7 @@
EffectiveNodeType entExisting;
try {
// existing mixin's
- Set mixins = new HashSet(data.getNodeState().getMixinTypeNames());
+ Set<Name> mixins = new HashSet<Name>(data.getNodeState().getMixinTypeNames());
// build effective node type representing primary type including existing mixin's
entExisting = ntReg.getEffectiveNodeType(primaryTypeName, mixins);
@@ -3102,15 +3098,13 @@
// check state of this instance
sanityCheck();
- ArrayList list = new ArrayList();
+ ArrayList<NodeImpl> list = new ArrayList<NodeImpl>();
if (!isShareable()) {
list.add(this);
} else {
NodeState state = data.getNodeState();
- Iterator iter = state.getSharedSet().iterator();
- while (iter.hasNext()) {
- NodeId parentId = (NodeId) iter.next();
+ for (NodeId parentId : state.getSharedSet()) {
list.add(itemMgr.getNode(getNodeId(), parentId));
}
}
@@ -3497,7 +3491,7 @@
// do checks
sanityCheck();
checkVersionable();
- int options = ItemValidator.CHECK_PENDING_CHANGES | ItemValidator.CHECK_LOCK| ItemValidator.CHECK_HOLD;
+ int options = ItemValidator.CHECK_PENDING_CHANGES | ItemValidator.CHECK_LOCK | ItemValidator.CHECK_HOLD;
session.getValidator().checkModify(this, options, Permission.NONE);
// check if 'own' version
@@ -3568,7 +3562,7 @@
// do checks
sanityCheck();
- int options = ItemValidator.CHECK_PENDING_CHANGES | ItemValidator.CHECK_LOCK| ItemValidator.CHECK_HOLD;
+ int options = ItemValidator.CHECK_PENDING_CHANGES | ItemValidator.CHECK_LOCK | ItemValidator.CHECK_HOLD;
session.getValidator().checkModify(this, options, Permission.NONE);
Version v = getVersionHistory().getVersionByLabel(versionLabel);
@@ -3757,7 +3751,7 @@
* @throws RepositoryException if an error occurs.
* @throws AccessDeniedException if access is denied
*/
- private NodeImpl doMergeTest(SessionImpl srcSession, List failedIds, boolean bestEffort)
+ private NodeImpl doMergeTest(SessionImpl srcSession, List<ItemId> failedIds, boolean bestEffort)
throws RepositoryException, AccessDeniedException {
// If N does not have a corresponding node then the merge result for N is leave.
@@ -3795,7 +3789,7 @@
// thus determining the result of a merge is non-trivial.
if (bestEffort) {
// add 'offending' version to jcr:mergeFailed property
- Set set = internalGetMergeFailed();
+ Set<String> set = internalGetMergeFailed();
set.add(srcNode.getBaseVersion().getUUID());
internalSetMergeFailed(set);
failedIds.add(id);
@@ -3827,7 +3821,7 @@
session.getValidator().checkModify(this, options, Permission.VERSION_MNGMT);
// check if version is in mergeFailed list
- Set failed = internalGetMergeFailed();
+ Set<String> failed = internalGetMergeFailed();
if (!failed.remove(version.getUUID())) {
String msg =
"Unable to finish merge. Specified version is not in"
@@ -3869,8 +3863,8 @@
* @return
* @throws RepositoryException
*/
- private Set internalGetMergeFailed() throws RepositoryException {
- HashSet set = new HashSet();
+ private Set<String> internalGetMergeFailed() throws RepositoryException {
+ HashSet<String> set = new HashSet<String>();
if (hasProperty(NameConstants.JCR_MERGEFAILED)) {
Value[] vals = getProperty(NameConstants.JCR_MERGEFAILED).getValues();
for (int i = 0; i < vals.length; i++) {
@@ -3884,15 +3878,15 @@
* @param set
* @throws RepositoryException
*/
- private void internalSetMergeFailed(Set set) throws RepositoryException {
+ private void internalSetMergeFailed(Set<String> set) throws RepositoryException {
if (set.isEmpty()) {
internalSetProperty(NameConstants.JCR_MERGEFAILED, (InternalValue[]) null);
} else {
InternalValue[] vals = new InternalValue[set.size()];
- Iterator iter = set.iterator();
+ Iterator<String> iter = set.iterator();
int i = 0;
while (iter.hasNext()) {
- String uuid = (String) iter.next();
+ String uuid = iter.next();
vals[i++] = InternalValue.create(UUID.fromString(uuid));
}
internalSetProperty(NameConstants.JCR_MERGEFAILED, vals);
@@ -4048,7 +4042,7 @@
* @throws RepositoryException
*/
private void internalMerge(String srcWorkspaceName,
- List failedIds, boolean bestEffort,
+ List<ItemId> failedIds, boolean bestEffort,
boolean shallow)
throws NoSuchWorkspaceException, AccessDeniedException,
LockException, InvalidItemStateException, RepositoryException {
@@ -4101,7 +4095,7 @@
* @throws LockException
* @throws RepositoryException
*/
- private void internalMerge(SessionImpl srcSession, List failedIds,
+ private void internalMerge(SessionImpl srcSession, List<ItemId> failedIds,
boolean bestEffort, boolean removeExisting,
boolean replaceExisting, boolean shallow)
throws LockException, RepositoryException {
@@ -4317,7 +4311,7 @@
* @param removeExisting remove existing flag
* @throws RepositoryException if an error occurs
*/
- public void restoreFrozenState(InternalFrozenNode freeze, VersionSelector vsel,
+ public void restoreFrozenState(InternalFrozenNode freeze, VersionSelector vsel,
Set<Version> restored, boolean removeExisting)
throws RepositoryException {
@@ -4633,7 +4627,7 @@
if (stateMgr.hasNodeReferences(targetId)) {
NodeReferences refs = stateMgr.getNodeReferences(targetId);
// refs.getReferences() returns a list of PropertyId's
- List idList = refs.getReferences();
+ List<PropertyId> idList = refs.getReferences();
if (name != null) {
Name qName;
try {
@@ -4641,9 +4635,8 @@
} catch (NameException e) {
throw new RepositoryException("invalid property name: " + name, e);
}
- ArrayList filteredList = new ArrayList(idList.size());
- for (Iterator iter = idList.iterator(); iter.hasNext();) {
- PropertyId propId = (PropertyId) iter.next();
+ ArrayList<PropertyId> filteredList = new ArrayList<PropertyId>(idList.size());
+ for (PropertyId propId : filteredList) {
if (propId.getName().equals(qName)) {
filteredList.add(propId);
}
@@ -4676,17 +4669,17 @@
// check state of this instance
sanityCheck();
- // TODO tweak query implemention in order to support WEAKREFERENCE reverse lookup
+ // TODO tweak query implemention in order to support WEAKREFERENCE reverse lookup
try {
Query q = session.getWorkspace().getQueryManager().createQuery(
"//*[jcr:contains(., '" + data.getId() + "')]",
//"//*[@*='" + data.getId() + "']",
Query.XPATH);
QueryResult result = q.execute();
- ArrayList l = new ArrayList<Property>();
- for (NodeIterator nit = result.getNodes(); nit.hasNext(); ) {
+ ArrayList<Property> l = new ArrayList<Property>();
+ for (NodeIterator nit = result.getNodes(); nit.hasNext();) {
Node n = nit.nextNode();
- for (PropertyIterator pit = n.getProperties(); pit.hasNext(); ) {
+ for (PropertyIterator pit = n.getProperties(); pit.hasNext();) {
Property p = pit.nextProperty();
if (p.getType() == PropertyType.WEAKREFERENCE
&& p.getString().equals(getIdentifier())) {
@@ -4751,8 +4744,8 @@
// make sure this node is checked-out, neither protected nor locked and
// the editing session has sufficient permission to change the primary type.
- int options = ItemValidator.CHECK_VERSIONING | ItemValidator.CHECK_LOCK |
- ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD;
+ int options = ItemValidator.CHECK_VERSIONING | ItemValidator.CHECK_LOCK
+ | ItemValidator.CHECK_CONSTRAINTS | ItemValidator.CHECK_HOLD;
session.getValidator().checkModify(this, options, Permission.NODE_TYPE_MNGMT);
final NodeState state = data.getNodeState();
@@ -4805,12 +4798,12 @@
onRedefine(defId);
}
- Set oldDefs = new HashSet(Arrays.asList(entOld.getAllItemDefs()));
- Set newDefs = new HashSet(Arrays.asList(entNew.getAllItemDefs()));
- Set allDefs = new HashSet(Arrays.asList(entAll.getAllItemDefs()));
+ Set<ItemDef> oldDefs = new HashSet<ItemDef>(Arrays.asList(entOld.getAllItemDefs()));
+ Set<ItemDef> newDefs = new HashSet<ItemDef>(Arrays.asList(entNew.getAllItemDefs()));
+ Set<ItemDef> allDefs = new HashSet<ItemDef>(Arrays.asList(entAll.getAllItemDefs()));
// added child item definitions
- Set addedDefs = new HashSet(newDefs);
+ Set<ItemDef> addedDefs = new HashSet<ItemDef>(newDefs);
addedDefs.removeAll(oldDefs);
// referential integrity check
@@ -4840,9 +4833,8 @@
// walk through properties and child nodes and change definition as necessary
// use temp set to avoid ConcurrentModificationException
- HashSet set = new HashSet(thisState.getPropertyNames());
- for (Iterator iter = set.iterator(); iter.hasNext();) {
- Name propName = (Name) iter.next();
+ HashSet<Name> set = new HashSet<Name>(thisState.getPropertyNames());
+ for (Name propName : set) {
try {
PropertyState propState =
(PropertyState) stateMgr.getItemState(
@@ -4909,10 +4901,10 @@
}
// use temp array to avoid ConcurrentModificationException
- ArrayList list = new ArrayList(thisState.getChildNodeEntries());
+ ArrayList<ChildNodeEntry> list = new ArrayList<ChildNodeEntry>(thisState.getChildNodeEntries());
// start from tail to avoid problems with same-name siblings
for (int i = list.size() - 1; i >= 0; i--) {
- ChildNodeEntry entry = (ChildNodeEntry) list.get(i);
+ ChildNodeEntry entry = list.get(i);
try {
NodeState nodeState = (NodeState) stateMgr.getItemState(entry.getId());
if (!allDefs.contains(ntReg.getNodeDef(nodeState.getDefinitionId()))) {
@@ -4947,8 +4939,8 @@
// create items that are defined as auto-created by the new primary node
// type and at the same time were not present with the old nt
- for (Iterator iter = addedDefs.iterator(); iter.hasNext();) {
- ItemDef def = (ItemDef) iter.next();
+ for (Iterator<ItemDef> iter = addedDefs.iterator(); iter.hasNext();) {
+ ItemDef def = iter.next();
if (def.isAutoCreated()) {
if (def.definesNode()) {
NodeDefinitionImpl ndi = ntMgr.getNodeDefinition(((NodeDef) def).getId());
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java Tue Jun 16 08:53:11 2009
@@ -383,10 +383,11 @@
* deleted externally
* @throws RepositoryException if another error occurs
*/
- public Iterator getDescendantTransientItemStates(NodeId parentId)
+ public Iterator<ItemState> getDescendantTransientItemStates(NodeId parentId)
throws InvalidItemStateException, RepositoryException {
if (transientStore.isEmpty()) {
- return Collections.EMPTY_LIST.iterator();
+ List<ItemState> empty = Collections.emptyList();
+ return empty.iterator();
}
// build ordered collection of descendant transient states
@@ -460,7 +461,8 @@
* situation
*/
if (resultIter.getIterators().isEmpty()) {
- return Collections.EMPTY_LIST.iterator();
+ List<ItemState> empty = Collections.emptyList();
+ return empty.iterator();
}
return resultIter;
}
@@ -473,9 +475,10 @@
* instances to be returned.
* @return an iterator over descendant transient item state instances in the attic
*/
- public Iterator getDescendantTransientItemStatesInAttic(NodeId parentId) {
+ public Iterator<ItemState> getDescendantTransientItemStatesInAttic(NodeId parentId) {
if (atticStore.isEmpty()) {
- return Collections.EMPTY_LIST.iterator();
+ List<ItemState> empty = Collections.emptyList();
+ return empty.iterator();
}
// build ordered collection of descendant transient states in attic
@@ -489,9 +492,7 @@
// the depth is used as array index
List[] la = new List[10];
try {
- Iterator iter = atticStore.values().iterator();
- while (iter.hasNext()) {
- ItemState state = (ItemState) iter.next();
+ for (ItemState state : atticStore.values()) {
// determine relative depth: > 0 means it's a descendant
//int depth = zombieHierMgr.getRelativeDepth(parentId, state.getId());
int depth = zombieHierMgr.getShareRelativeDepth(parentId, state.getId());
@@ -534,7 +535,8 @@
* situation
*/
if (resultIter.getIterators().isEmpty()) {
- return Collections.EMPTY_LIST.iterator();
+ List<ItemState> empty = Collections.emptyList();
+ return empty.iterator();
}
return resultIter;
}
@@ -729,16 +731,12 @@
public void disposeAllTransientItemStates() {
// dispose item states in transient map & attic
// (use temp collection to avoid ConcurrentModificationException)
- Collection tmp = new ArrayList(transientStore.values());
- Iterator iter = tmp.iterator();
- while (iter.hasNext()) {
- ItemState state = (ItemState) iter.next();
+ Collection<ItemState> tmp = new ArrayList<ItemState>(transientStore.values());
+ for (ItemState state : tmp) {
disposeTransientItemState(state);
}
- tmp = new ArrayList(atticStore.values());
- iter = tmp.iterator();
- while (iter.hasNext()) {
- ItemState state = (ItemState) iter.next();
+ tmp = new ArrayList<ItemState>(atticStore.values());
+ for (ItemState state : tmp) {
disposeTransientItemStateInAttic(state);
}
}
Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/SessionGarbageCollectedTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/SessionGarbageCollectedTest.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/SessionGarbageCollectedTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/SessionGarbageCollectedTest.java Tue Jun 16 08:53:11 2009
@@ -33,8 +33,8 @@
public class SessionGarbageCollectedTest extends AbstractJCRTest {
public void testSessionsGetGarbageCollected() throws RepositoryException {
- ArrayList list = new ArrayList();
- ReferenceQueue detect = new ReferenceQueue();
+ ArrayList<WeakReference<Session>> list = new ArrayList<WeakReference<Session>>();
+ ReferenceQueue<Session> detect = new ReferenceQueue<Session>();
Error error = null;
try {
for (int i = 0;; i++) {
@@ -43,7 +43,7 @@
// (or quickly runs out of memory)
Node n = s.getRootNode().addNode("n" + i);
n.setProperty("x", new String(new char[1000000]));
- list.add(new WeakReference(s, detect));
+ list.add(new WeakReference<Session>(s, detect));
if (detect.poll() != null) {
break;
}
@@ -52,8 +52,8 @@
error = e;
}
for (int i = 0; i < list.size(); i++) {
- Reference ref = (Reference) list.get(i);
- Session s = (Session) ref.get();
+ Reference<Session> ref = list.get(i);
+ Session s = ref.get();
if (s != null) {
s.logout();
}
Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/XATest.java Tue Jun 16 08:53:11 2009
@@ -947,10 +947,10 @@
// commit
utx.commit();
-
+
// Check if it is locked in other session
Session other = helper.getSuperuserSession();
- Node nOther = other.getNodeByUUID(n.getUUID());
+ Node nOther = other.getNodeByUUID(n.getUUID());
assertTrue(nOther.isLocked());
// Check if it is also locked in other transaction
@@ -958,16 +958,19 @@
// start new Transaction and try to add locktoken
utx = new UserTransactionImpl(other2);
utx.begin();
-
- Node nOther2 = other2.getNodeByUUID(n.getUUID());
+
+ Node nOther2 = other2.getNodeByUUID(n.getUUID());
assertTrue(nOther2.isLocked());
-
+
utx.commit();
-
+
+ other.logout();
+ other2.logout();
+
}
/**
- * Test add and remove lock tokens in a transaction
+ * Test add and remove lock tokens in a transaction
* @throws Exception
*/
public void testAddRemoveLockToken() throws Exception {
@@ -976,18 +979,18 @@
utx.begin();
// add node that is both lockable and referenceable, save
- Node rootNode = superuser.getRootNode();
+ Node rootNode = superuser.getRootNode();
Node n = rootNode.addNode(nodeName1);
n.addMixin(mixLockable);
n.addMixin(mixReferenceable);
rootNode.save();
String uuid = n.getUUID();
-
+
// lock this new node
Lock lock = n.lock(true, false);
String lockToken = lock.getLockToken();
-
+
// assert: session must get a non-null lock token
assertNotNull("session must get a non-null lock token", lockToken);
@@ -996,10 +999,10 @@
superuser.removeLockToken(lockToken);
assertNull("session must get a null lock token", lock.getLockToken());
-
+
// commit
utx.commit();
-
+
// refresh Lock Info
lock = n.getLock();
@@ -1009,8 +1012,8 @@
// start new Transaction and try to add lock token
utx = new UserTransactionImpl(other);
utx.begin();
-
- Node otherNode = other.getNodeByUUID(uuid);
+
+ Node otherNode = other.getNodeByUUID(uuid);
assertTrue("Node not locked", otherNode.isLocked());
try {
otherNode.setProperty(propertyName1, "foo");
@@ -1018,20 +1021,20 @@
} catch (LockException e) {
// expected
}
-
+
// add lock token
other.addLockToken(lockToken);
-
+
// refresh Lock Info
lock = otherNode.getLock();
// assert: session must hold lock token
- assertTrue("session must hold lock token", containsLockToken(other, lock.getLockToken()));
-
+ assertTrue("session must hold lock token", containsLockToken(other, lock.getLockToken()));
+
otherNode.unlock();
-
+
assertFalse("Node is locked", otherNode.isLocked());
-
+
otherNode.setProperty(propertyName1, "foo");
other.save();
utx.commit();
@@ -1742,7 +1745,7 @@
utx.commit();
}
-
+
/**
* Return a flag indicating whether the indicated session contains
* a specific lock token
@@ -1755,5 +1758,5 @@
}
}
return false;
- }
+ }
}
Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java?rev=785116&r1=785115&r2=785116&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java Tue Jun 16 08:53:11 2009
@@ -123,7 +123,7 @@
n.remove();
session.save();
-
+
GarbageCollector gc = ((SessionImpl)session).createDataStoreGarbageCollector();
if (gc.getDataStore() instanceof FileDataStore) {
@@ -212,6 +212,8 @@
}
deleteMyNodes();
+
+ s2.logout();
}
public void afterScanning(Node n) throws RepositoryException {