You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2007/08/08 11:06:09 UTC
svn commit: r563794 - in
/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi:
hierarchy/NodeEntryImpl.java nodetype/NodeTypeRegistryImpl.java
Author: angela
Date: Wed Aug 8 02:06:01 2007
New Revision: 563794
URL: http://svn.apache.org/viewvc?view=rev&rev=563794
Log:
JCR-1040: JCR2SPI remove node operation missing in submitted SPI batch
Modified:
jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntryImpl.java
jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntryImpl.java?view=diff&rev=563794&r1=563793&r2=563794
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntryImpl.java Wed Aug 8 02:06:01 2007
@@ -541,7 +541,9 @@
cne = ne;
}
}
- } else if (loadIfNotFound && !containsAtticChild(entries, nodeName, index)) {
+ } else if (loadIfNotFound
+ && !containsAtticChild(entries, nodeName, index)
+ && Status.NEW != getStatus()) {
NodeId cId = factory.getIdFactory().createNodeId(getId(), Path.create(nodeName, index));
cne = loadNodeEntry(cId);
}
@@ -650,7 +652,7 @@
*/
public PropertyEntry getPropertyEntry(QName propName, boolean loadIfNotFound) throws RepositoryException {
PropertyEntry entry = properties.get(propName);
- if (entry == null && loadIfNotFound) {
+ if (entry == null && loadIfNotFound && Status.NEW != getStatus()) {
PropertyId propId = factory.getIdFactory().createPropertyId(getId(), propName);
entry = loadPropertyEntry(propId);
} else if (!EntryValidation.isValidPropertyEntry(entry)) {
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java?view=diff&rev=563794&r1=563793&r2=563794
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java Wed Aug 8 02:06:01 2007
@@ -21,6 +21,7 @@
import org.apache.jackrabbit.jcr2spi.state.NodeState;
import org.apache.jackrabbit.jcr2spi.state.Status;
import org.apache.jackrabbit.jcr2spi.state.PropertyState;
+import org.apache.jackrabbit.jcr2spi.hierarchy.PropertyEntry;
import org.apache.jackrabbit.name.QName;
import org.apache.jackrabbit.spi.QNodeDefinition;
import org.apache.jackrabbit.spi.QPropertyDefinition;
@@ -318,15 +319,18 @@
QName primaryType = nodeState.getNodeTypeName();
allNtNames = new QName[] { primaryType }; // default
try {
- PropertyState mixins = nodeState.getPropertyState(QName.JCR_MIXINTYPES);
- QValue[] values = mixins.getValues();
- allNtNames = new QName[values.length + 1];
- for (int i = 0; i < values.length; i++) {
- allNtNames[i] = values[i].getQName();
- }
- allNtNames[values.length] = primaryType;
+ PropertyEntry pe = nodeState.getNodeEntry().getPropertyEntry(QName.JCR_MIXINTYPES, true);
+ if (pe != null) {
+ PropertyState mixins = pe.getPropertyState();
+ QValue[] values = mixins.getValues();
+ allNtNames = new QName[values.length + 1];
+ for (int i = 0; i < values.length; i++) {
+ allNtNames[i] = values[i].getQName();
+ }
+ allNtNames[values.length] = primaryType;
+ } // else: no jcr:mixinTypes property exists -> ignore
} catch (RepositoryException e) {
- // ignore: apparently no jcr:mixinTypes property exists.
+ // unexpected error: ignore
}
}
return getEffectiveNodeType(allNtNames);