You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2005/04/06 20:05:47 UTC
svn commit: r160315 - in incubator/jackrabbit/trunk/src:
java/org/apache/jackrabbit/core/ java/org/apache/jackrabbit/core/state/
test/org/apache/jackrabbit/test/api/
Author: stefan
Date: Wed Apr 6 11:05:45 2005
New Revision: 160315
URL: http://svn.apache.org/viewcvs?view=rev&rev=160315
Log:
fixed incorrect test cases and fixed code that caused valid testcases to fail
Modified:
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SysViewContentHandler.java
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java?view=diff&r1=160314&r2=160315
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java Wed Apr 6 11:05:45 2005
@@ -17,7 +17,6 @@
package org.apache.jackrabbit.core;
import org.apache.commons.collections.ReferenceMap;
-import org.apache.log4j.Logger;
import javax.jcr.ItemNotFoundException;
import javax.jcr.PathNotFoundException;
@@ -37,8 +36,6 @@
*/
public class CachingHierarchyManager implements HierarchyManager {
- private static Logger log = Logger.getLogger(CachingHierarchyManager.class);
-
private final HierarchyManager delegatee;
// map of item id to list of paths
@@ -77,14 +74,16 @@
/**
* {@inheritDoc}
*/
- public NodeId[] listParents(ItemId id) throws ItemNotFoundException, RepositoryException {
+ public NodeId[] listParents(ItemId id)
+ throws ItemNotFoundException, RepositoryException {
return delegatee.listParents(id);
}
/**
* {@inheritDoc}
*/
- public ItemId[] listChildren(NodeId id) throws ItemNotFoundException, RepositoryException {
+ public ItemId[] listChildren(NodeId id)
+ throws ItemNotFoundException, RepositoryException {
return delegatee.listChildren(id);
}
@@ -114,14 +113,16 @@
/**
* {@inheritDoc}
*/
- public synchronized Path getPath(ItemId id) throws ItemNotFoundException, RepositoryException {
+ public synchronized Path getPath(ItemId id)
+ throws ItemNotFoundException, RepositoryException {
return getAllPaths(id, false)[0];
}
/**
* {@inheritDoc}
*/
- public QName getName(ItemId itemId) throws ItemNotFoundException, RepositoryException {
+ public QName getName(ItemId itemId)
+ throws ItemNotFoundException, RepositoryException {
if (itemId.denotesNode()) {
return getPath(itemId).getNameElement().getName();
} else {
@@ -133,7 +134,8 @@
/**
* {@inheritDoc}
*/
- public synchronized Path[] getAllPaths(ItemId id) throws ItemNotFoundException, RepositoryException {
+ public synchronized Path[] getAllPaths(ItemId id)
+ throws ItemNotFoundException, RepositoryException {
return getAllPaths(id, false);
}
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java?view=diff&r1=160314&r2=160315
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java Wed Apr 6 11:05:45 2005
@@ -520,9 +520,11 @@
}
}
if (entries.isEmpty()) {
- String msg = "failed to build path of " + nodeId + ": " + parent.getUUID() + " has no child entry for " + uuid;
+ String msg = "failed to build path of " + nodeId
+ + ": " + parent.getUUID()
+ + " has no child entry for " + uuid;
log.debug(msg);
- throw new RepositoryException(msg);
+ throw new ItemNotFoundException(msg);
}
n = entries.size() - 1;
while (n-- > 0) {
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java?view=diff&r1=160314&r2=160315
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java Wed Apr 6 11:05:45 2005
@@ -1206,7 +1206,7 @@
String msg = itemMgr.safeGetJCRPath(id)
+ " needs to be saved also.";
log.debug(msg);
- throw new RepositoryException(msg);
+ throw new ConstraintViolationException(msg);
}
}
}
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java?view=diff&r1=160314&r2=160315
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java Wed Apr 6 11:05:45 2005
@@ -364,10 +364,21 @@
return genValues;
}
+ /**
+ *
+ * @param name
+ * @param type
+ * @param multiValued
+ * @param status
+ * @return
+ * @throws ConstraintViolationException if no applicable property definition
+ * could be found
+ * @throws RepositoryException if another error occurs
+ */
protected PropertyImpl getOrCreateProperty(String name, int type,
boolean multiValued,
BitSet status)
- throws RepositoryException {
+ throws ConstraintViolationException, RepositoryException {
QName qName;
try {
qName = QName.fromJCRName(name, session.getNamespaceResolver());
@@ -379,10 +390,21 @@
return getOrCreateProperty(qName, type, multiValued, status);
}
+ /**
+ *
+ * @param name
+ * @param type
+ * @param multiValued
+ * @param status
+ * @return
+ * @throws ConstraintViolationException if no applicable property definition
+ * could be found
+ * @throws RepositoryException if another error occurs
+ */
protected synchronized PropertyImpl getOrCreateProperty(QName name, int type,
boolean multiValued,
BitSet status)
- throws RepositoryException {
+ throws ConstraintViolationException, RepositoryException {
status.clear();
NodeState thisState = (NodeState) state;
@@ -814,11 +836,12 @@
* @param nodeName
* @param nodeTypeName
* @return
- * @throws RepositoryException if no applicable child node definition
- * could be found
+ * @throws ConstraintViolationException if no applicable child node definition
+ * could be found
+ * @throws RepositoryException if another error occurs
*/
protected NodeDefImpl getApplicableChildNodeDef(QName nodeName, QName nodeTypeName)
- throws RepositoryException {
+ throws ConstraintViolationException, RepositoryException {
ChildNodeDef cnd = getEffectiveNodeType().getApplicableChildNodeDef(nodeName, nodeTypeName);
return session.getNodeTypeManager().getNodeDef(new NodeDefId(cnd));
}
@@ -831,12 +854,14 @@
* @param type
* @param multiValued
* @return
- * @throws RepositoryException if no applicable property definition
- * could be found
+ * @throws ConstraintViolationException if no applicable property definition
+ * could be found
+ * @throws RepositoryException if another error occurs
*/
protected PropertyDefImpl getApplicablePropertyDef(QName propertyName,
- int type, boolean multiValued)
- throws RepositoryException {
+ int type,
+ boolean multiValued)
+ throws ConstraintViolationException, RepositoryException {
PropDef pd = getEffectiveNodeType().getApplicablePropertyDef(propertyName, type, multiValued);
return session.getNodeTypeManager().getPropDef(new PropDefId(pd));
}
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java?view=diff&r1=160314&r2=160315
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java Wed Apr 6 11:05:45 2005
@@ -319,6 +319,13 @@
String msg = id + ": the item has been removed externally.";
log.debug(msg);
throw new InvalidItemStateException(msg);
+ } catch (RepositoryException re) {
+ // unable to build path, assume that it (or any of
+ // its ancestors) has been removed externally
+ String msg = id
+ + ": the item seems to have been removed externally.";
+ log.debug(msg);
+ throw new InvalidItemStateException(msg);
}
}
return descendants.values().iterator();
@@ -350,13 +357,17 @@
* one of the parents of the specified item has been
* removed externally; as we don't know its path,
* we can't determine if it is a descendant;
- * ItemNotFoundException should only be thrown if
+ * InvalidItemStateException should only be thrown if
* a descendant is affected;
- * => log warning and ignore for now
+ * => throw InvalidItemStateException for now
* todo FIXME
*/
- log.warn(id + ": inconsistent hierarchy state", infe);
- continue;
+ // unable to build path, assume that it (or any of
+ // its ancestors) has been removed externally
+ String msg = id
+ + ": the item seems to have been removed externally.";
+ log.debug(msg);
+ throw new InvalidItemStateException(msg);
}
boolean isDescendant = false;
/**
Modified: incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SysViewContentHandler.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SysViewContentHandler.java?view=diff&r1=160314&r2=160315
==============================================================================
--- incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SysViewContentHandler.java (original)
+++ incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SysViewContentHandler.java Wed Apr 6 11:05:45 2005
@@ -338,8 +338,13 @@
NamespaceRegistry nsr = session.getWorkspace().getNamespaceRegistry();
String[] registeredPrefixes = nsr.getPrefixes();
// check against the found prefixes
+/*
+ // invalid test: only the referenced namespaces need to be declared;
+ // apart from that, the 'xml' namespace, although registered,
+ // is never declared in the system view xml as this would be illegal
checkCondition("Size of included prefixes is not the size of " +
"registered prefixes", registeredPrefixes.length == prefixes.size()) ;
+*/
for (int i=0; i<registeredPrefixes.length;i++) {
String prefix = registeredPrefixes[1];
String uri = nsr.getURI(prefix);