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);