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/02/09 11:38:20 UTC
svn commit: r153046 - in
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core:
ItemImpl.java nodetype/NodeTypeDefStore.java
Author: stefan
Date: Wed Feb 9 02:38:18 2005
New Revision: 153046
URL: http://svn.apache.org/viewcvs?view=rev&rev=153046
Log:
1) fixing bug reported by oliver kiessler:
"target node of REFERENCE property does not exist"
2) hasorderablechildnodes flag in node type definition was ignored
Modified:
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java
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=153045&r2=153046
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java Wed Feb 9 02:38:18 2005
@@ -703,9 +703,10 @@
InternalValue[] vals = propState.getValues();
for (int i = 0; vals != null && i < vals.length; i++) {
String uuid = vals[i].toString();
- NodeReferencesId id = new NodeReferencesId(uuid);
+ NodeReferencesId refsId = new NodeReferencesId(uuid);
+ NodeId targetId = new NodeId(uuid);
// verify that target exists
- if (!itemMgr.itemExists(id)) {
+ if (!itemMgr.itemExists(targetId)) {
String msg = itemMgr.safeGetJCRPath(propState.getId())
+ ": target node of REFERENCE property does not exist";
log.warn(msg);
@@ -714,7 +715,7 @@
// target is a new (unsaved) node; make sure that it is
// within the scope of the current save operation
// (by veryfying that it is a descendant of 'this' item)
- NodeImpl target = (NodeImpl) itemMgr.getItem(id);
+ NodeImpl target = (NodeImpl) itemMgr.getItem(targetId);
if (target.isNew()) {
try {
if (!target.getPrimaryPath().isDescendantOf(getPrimaryPath())) {
@@ -732,18 +733,18 @@
}
}
NodeReferences refs;
- if (dirtyNodeRefs.containsKey(id)) {
- refs = (NodeReferences) dirtyNodeRefs.get(id);
+ if (dirtyNodeRefs.containsKey(refsId)) {
+ refs = (NodeReferences) dirtyNodeRefs.get(refsId);
} else {
try {
- refs = stateMgr.getNodeReferences(id);
+ refs = stateMgr.getNodeReferences(refsId);
} catch (ItemStateException e) {
- String msg = itemMgr.safeGetJCRPath(id)
+ String msg = itemMgr.safeGetJCRPath(targetId)
+ ": failed to load node references";
log.debug(msg);
throw new RepositoryException(msg, e);
}
- dirtyNodeRefs.put(id, refs);
+ dirtyNodeRefs.put(refsId, refs);
}
// add reference to target node
refs.addReference((PropertyId) propState.getId());
@@ -1176,7 +1177,7 @@
Iterator parentsIter = dirtyParents.iterator();
while (parentsIter.hasNext()) {
NodeId id = new NodeId((String) parentsIter.next());
- NodeState parentState = null;
+ NodeState parentState;
try {
parentState = (NodeState) stateMgr.getTransientItemState(id);
} catch (ItemStateException ise) {
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java?view=diff&r1=153045&r2=153046
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java Wed Feb 9 02:38:18 2005
@@ -47,7 +47,7 @@
private static final String NODETYPE_ELEMENT = "nodeType";
private static final String NAME_ATTRIBUTE = "name";
private static final String ISMIXIN_ATTRIBUTE = "isMixin";
- private static final String ORDERABLECHILDNODES_ATTRIBUTE = "orderableChildNodes";
+ private static final String HASORDERABLECHILDNODES_ATTRIBUTE = "hasOrderableChildNodes";
private static final String PRIMARYITEMNAME_ATTRIBUTE = "primaryItemName";
private static final String SUPERTYPES_ELEMENT = "supertypes";
private static final String SUPERTYPE_ELEMENT = "supertype";
@@ -89,7 +89,7 @@
void load(InputStream in)
throws IOException, InvalidNodeTypeDefException, RepositoryException {
SAXBuilder builder = new SAXBuilder();
- Element root = null;
+ Element root;
try {
Document doc = builder.build(in);
root = doc.getRootElement();
@@ -263,7 +263,7 @@
}
// orderableChildNodes
- String orderableChildNodes = ntElem.getAttributeValue(ORDERABLECHILDNODES_ATTRIBUTE);
+ String orderableChildNodes = ntElem.getAttributeValue(HASORDERABLECHILDNODES_ATTRIBUTE);
if (orderableChildNodes != null && orderableChildNodes.length() > 0) {
ntDef.setOrderableChildNodes(Boolean.valueOf(orderableChildNodes).booleanValue());
}
@@ -520,7 +520,7 @@
ntElem.setAttribute(ISMIXIN_ATTRIBUTE, Boolean.toString(ntd.isMixin()));
// orderableChildNodes
- ntElem.setAttribute(ORDERABLECHILDNODES_ATTRIBUTE, Boolean.toString(ntd.hasOrderableChildNodes()));
+ ntElem.setAttribute(HASORDERABLECHILDNODES_ATTRIBUTE, Boolean.toString(ntd.hasOrderableChildNodes()));
// primaryItemName
String primaryItemName = ntd.getPrimaryItemName() == null ? "" : ntd.getPrimaryItemName().toJCRName(nsResolver);