Index: jackrabbit-core/src/test/java/org/apache/jackrabbit/core/state/AbstractISMLockingTest.java
===================================================================
--- jackrabbit-core/src/test/java/org/apache/jackrabbit/core/state/AbstractISMLockingTest.java (revision 793175)
+++ jackrabbit-core/src/test/java/org/apache/jackrabbit/core/state/AbstractISMLockingTest.java (working copy)
@@ -24,11 +24,9 @@
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.ISMLocking.ReadLock;
import org.apache.jackrabbit.core.state.ISMLocking.WriteLock;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
-import org.apache.jackrabbit.uuid.UUID;
/**
* AbstractISMLockingTest contains test cases for the ISMLocking requirements.
@@ -60,7 +58,7 @@
locking = createISMLocking();
NodeId id = new NodeId();
state = new NodeState(id, NameConstants.NT_BASE, null, ItemState.STATUS_EXISTING, true);
- refs = new NodeReferences(new NodeReferencesId(state.getNodeId()));
+ refs = new NodeReferences(state.getNodeId());
logs = new ArrayList();
ChangeLog log = new ChangeLog();
log.added(state);
Index: jackrabbit-core/src/test/java/org/apache/jackrabbit/core/CachingHierarchyManagerTest.java
===================================================================
--- jackrabbit-core/src/test/java/org/apache/jackrabbit/core/CachingHierarchyManagerTest.java (revision 793175)
+++ jackrabbit-core/src/test/java/org/apache/jackrabbit/core/CachingHierarchyManagerTest.java (working copy)
@@ -23,7 +23,6 @@
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.state.ChildNodeEntry;
import org.apache.jackrabbit.core.state.ItemState;
@@ -39,7 +38,6 @@
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
-import org.apache.jackrabbit.uuid.UUID;
public class CachingHierarchyManagerTest extends TestCase {
@@ -559,7 +557,7 @@
/**
* {@inheritDoc}
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
return null;
}
@@ -567,7 +565,7 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
return false;
}
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/PersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/PersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/PersistenceManager.java (working copy)
@@ -23,7 +23,6 @@
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.ChangeLog;
/**
@@ -132,13 +131,13 @@
throws NoSuchItemStateException, ItemStateException;
/**
- * Load the persistent members of a node references object.
+ * Load the persisted references to the node with the given identifier.
*
* @param id reference target node id
* @throws NoSuchItemStateException if the target node does not exist
* @throws ItemStateException if another error occurs
*/
- NodeReferences load(NodeReferencesId id)
+ NodeReferences getReferencesTo(NodeId id)
throws NoSuchItemStateException, ItemStateException;
/**
@@ -169,7 +168,7 @@
* false otherwise
* @throws ItemStateException on persistence manager errors
*/
- boolean exists(NodeReferencesId targetId) throws ItemStateException;
+ boolean hasReferencesTo(NodeId targetId) throws ItemStateException;
/**
* Atomically saves the given set of changes.
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/xml/XMLPersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/xml/XMLPersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/xml/XMLPersistenceManager.java (working copy)
@@ -30,7 +30,6 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.persistence.PMContext;
import org.apache.jackrabbit.core.state.PropertyState;
@@ -210,8 +209,8 @@
return buildNodeFolderPath(id) + "/" + NODEFILENAME;
}
- private String buildNodeReferencesFilePath(NodeReferencesId id) {
- return buildNodeFolderPath(id.getTargetId()) + "/" + NODEREFSFILENAME;
+ private String buildNodeReferencesFilePath(NodeId id) {
+ return buildNodeFolderPath(id) + "/" + NODEREFSFILENAME;
}
private void readState(DOMWalker walker, NodeState state)
@@ -395,7 +394,7 @@
throw new ItemStateException(msg);
}
// check targetId
- if (!refs.getId().equals(NodeReferencesId.valueOf(walker.getAttribute(TARGETID_ATTRIBUTE)))) {
+ if (!refs.getTargetId().equals(NodeId.valueOf(walker.getAttribute(TARGETID_ATTRIBUTE)))) {
String msg = "invalid serialized state: targetId mismatch";
log.debug(msg);
throw new ItemStateException(msg);
@@ -780,7 +779,7 @@
/**
* {@inheritDoc}
*/
- public synchronized NodeReferences load(NodeReferencesId id)
+ public synchronized NodeReferences getReferencesTo(NodeId id)
throws NoSuchItemStateException, ItemStateException {
if (!initialized) {
@@ -824,8 +823,7 @@
throw new IllegalStateException("not initialized");
}
- NodeReferencesId id = refs.getId();
- String refsFilePath = buildNodeReferencesFilePath(id);
+ String refsFilePath = buildNodeReferencesFilePath(refs.getTargetId());
FileSystemResource refsFile = new FileSystemResource(itemStateFS, refsFilePath);
try {
refsFile.makeParentDirs();
@@ -843,7 +841,7 @@
}
writer.write("\n");
writer.write("<" + NODEREFERENCES_ELEMENT + " "
- + TARGETID_ATTRIBUTE + "=\"" + refs.getId() + "\">\n");
+ + TARGETID_ATTRIBUTE + "=\"" + refs.getTargetId() + "\">\n");
// write references (i.e. the id's of the REFERENCE properties)
Iterator iter = refs.getReferences().iterator();
while (iter.hasNext()) {
@@ -856,7 +854,7 @@
writer.close();
}
} catch (Exception e) {
- String msg = "failed to store references: " + id;
+ String msg = "failed to store references: " + refs.getTargetId();
log.debug(msg);
throw new ItemStateException(msg, e);
}
@@ -870,8 +868,7 @@
throw new IllegalStateException("not initialized");
}
- NodeReferencesId id = refs.getId();
- String refsFilePath = buildNodeReferencesFilePath(id);
+ String refsFilePath = buildNodeReferencesFilePath(refs.getTargetId());
FileSystemResource refsFile = new FileSystemResource(itemStateFS, refsFilePath);
try {
if (refsFile.exists()) {
@@ -879,7 +876,7 @@
refsFile.delete(true);
}
} catch (FileSystemException fse) {
- String msg = "failed to delete references: " + id;
+ String msg = "failed to delete references: " + refs.getTargetId();
log.debug(msg);
throw new ItemStateException(msg, fse);
}
@@ -926,7 +923,7 @@
/**
* {@inheritDoc}
*/
- public synchronized boolean exists(NodeReferencesId id)
+ public synchronized boolean hasReferencesTo(NodeId id)
throws ItemStateException {
if (!initialized) {
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/AbstractPersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/AbstractPersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/AbstractPersistenceManager.java (working copy)
@@ -90,7 +90,7 @@
if (refs.hasReferences()) {
store(refs);
} else {
- if (exists(refs.getId())) {
+ if (hasReferencesTo(refs.getTargetId())) {
destroy(refs);
}
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java (working copy)
@@ -31,7 +31,6 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.PropertyState;
import org.apache.jackrabbit.core.value.InternalValue;
@@ -560,7 +559,7 @@
/**
* {@inheritDoc}
*/
- public NodeReferences load(NodeReferencesId targetId)
+ public NodeReferences getReferencesTo(NodeId targetId)
throws NoSuchItemStateException, ItemStateException {
if (!initialized) {
throw new IllegalStateException("not initialized");
@@ -612,7 +611,7 @@
}
// check if insert or update
- boolean update = exists(refs.getId());
+ boolean update = hasReferencesTo(refs.getTargetId());
String sql = (update) ? nodeReferenceUpdateSQL : nodeReferenceInsertSQL;
try {
@@ -623,12 +622,12 @@
// we are synchronized on this instance, therefore we do not
// not have to additionally synchronize on the sql statement
- executeStmt(sql, new Object[]{out.toByteArray(), refs.getId().toString()});
+ executeStmt(sql, new Object[]{out.toByteArray(), refs.getTargetId().toString()});
// there's no need to close a ByteArrayOutputStream
//out.close();
} catch (Exception e) {
- String msg = "failed to write node references: " + refs.getId();
+ String msg = "failed to write node references: " + refs.getTargetId();
log.error(msg, e);
throw new ItemStateException(msg, e);
}
@@ -646,9 +645,9 @@
try {
// we are synchronized on this instance, therefore we do not
// not have to additionally synchronize on the sql statement
- executeStmt(nodeReferenceDeleteSQL, new Object[]{refs.getId().toString()});
+ executeStmt(nodeReferenceDeleteSQL, new Object[]{refs.getTargetId().toString()});
} catch (Exception e) {
- String msg = "failed to delete node references: " + refs.getId();
+ String msg = "failed to delete node references: " + refs.getTargetId();
log.error(msg, e);
throw new ItemStateException(msg, e);
}
@@ -710,7 +709,7 @@
/**
* {@inheritDoc}
*/
- public boolean exists(NodeReferencesId targetId) throws ItemStateException {
+ public boolean hasReferencesTo(NodeId targetId) throws ItemStateException {
if (!initialized) {
throw new IllegalStateException("not initialized");
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/OraclePersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/OraclePersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/OraclePersistenceManager.java (working copy)
@@ -252,7 +252,7 @@
}
// check if insert or update
- boolean update = exists(refs.getId());
+ boolean update = hasReferencesTo(refs.getTargetId());
String sql = (update) ? nodeReferenceUpdateSQL : nodeReferenceInsertSQL;
Blob blob = null;
@@ -265,12 +265,12 @@
// we are synchronized on this instance, therefore we do not
// not have to additionally synchronize on the sql statement
blob = createTemporaryBlob(new ByteArrayInputStream(out.toByteArray()));
- executeStmt(sql, new Object[]{blob, refs.getId().toString()});
+ executeStmt(sql, new Object[]{blob, refs.getTargetId().toString()});
// there's no need to close a ByteArrayOutputStream
//out.close();
} catch (Exception e) {
- String msg = "failed to write node references: " + refs.getId();
+ String msg = "failed to write node references: " + refs.getTargetId();
log.error(msg, e);
throw new ItemStateException(msg, e);
} finally {
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/PersistenceCopier.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/PersistenceCopier.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/PersistenceCopier.java (working copy)
@@ -25,7 +25,6 @@
import org.apache.jackrabbit.core.state.ChildNodeEntry;
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.PropertyState;
import org.apache.jackrabbit.spi.Name;
@@ -142,11 +141,11 @@
}
// Copy all node references
- NodeReferencesId refsId = new NodeReferencesId(sourceNode.getNodeId());
- if (source.exists(refsId)) {
- changes.modified(source.load(refsId));
- } else if (target.exists(refsId)) {
- NodeReferences references = target.load(refsId);
+ if (source.hasReferencesTo(sourceNode.getNodeId())) {
+ changes.modified(source.getReferencesTo(sourceNode.getNodeId()));
+ } else if (target.hasReferencesTo(sourceNode.getNodeId())) {
+ NodeReferences references =
+ target.getReferencesTo(sourceNode.getNodeId());
references.clearAllReferences();
changes.modified(references);
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java (working copy)
@@ -59,7 +59,6 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.util.Text;
import org.apache.jackrabbit.uuid.UUID;
import org.slf4j.Logger;
@@ -1234,7 +1233,7 @@
/**
* {@inheritDoc}
*/
- public synchronized NodeReferences load(NodeReferencesId targetId)
+ public synchronized NodeReferences getReferencesTo(NodeId targetId)
throws NoSuchItemStateException, ItemStateException {
if (!initialized) {
throw new IllegalStateException("not initialized");
@@ -1244,7 +1243,7 @@
InputStream in = null;
try {
Statement stmt = connectionManager.executeStmt(
- nodeReferenceSelectSQL, getKey(targetId.getTargetId()));
+ nodeReferenceSelectSQL, getKey(targetId));
rs = stmt.getResultSet();
if (!rs.next()) {
throw new NoSuchItemStateException(targetId.toString());
@@ -1283,7 +1282,7 @@
}
// check if insert or update
- boolean update = exists(refs.getId());
+ boolean update = hasReferencesTo(refs.getTargetId());
String sql = (update) ? nodeReferenceUpdateSQL : nodeReferenceInsertSQL;
try {
@@ -1298,7 +1297,7 @@
// there's no need to close a ByteArrayOutputStream
//out.close();
} catch (Exception e) {
- String msg = "failed to write node references: " + refs.getId();
+ String msg = "failed to write node references: " + refs.getTargetId();
log.error(msg, e);
throw new ItemStateException(msg, e);
}
@@ -1328,15 +1327,15 @@
/**
* {@inheritDoc}
*/
- public synchronized boolean exists(NodeReferencesId targetId) throws ItemStateException {
+ public synchronized boolean hasReferencesTo(NodeId targetId) throws ItemStateException {
if (!initialized) {
throw new IllegalStateException("not initialized");
}
ResultSet rs = null;
try {
- Statement stmt = connectionManager.executeStmt(nodeReferenceSelectSQL,
- getKey(targetId.getTargetId()));
+ Statement stmt = connectionManager.executeStmt(
+ nodeReferenceSelectSQL, getKey(targetId));
rs = stmt.getResultSet();
// a reference exists if the result has at least one entry
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleFsPersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleFsPersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleFsPersistenceManager.java (working copy)
@@ -34,7 +34,6 @@
import org.apache.jackrabbit.core.id.NodeId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.state.ItemStateException;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
@@ -296,12 +295,12 @@
* @param id the id of the node
* @return the buffer with the appended data.
*/
- protected StringBuffer buildNodeReferencesFilePath(StringBuffer buf,
- NodeReferencesId id) {
+ protected StringBuffer buildNodeReferencesFilePath(
+ StringBuffer buf, NodeId id) {
if (buf == null) {
buf = new StringBuffer();
}
- buildNodeFolderPath(buf, id.getTargetId());
+ buildNodeFolderPath(buf, id);
buf.append('.');
buf.append(NODEREFSFILENAME);
return buf;
@@ -351,7 +350,7 @@
/**
* {@inheritDoc}
*/
- public synchronized NodeReferences load(NodeReferencesId targetId)
+ public synchronized NodeReferences getReferencesTo(NodeId targetId)
throws NoSuchItemStateException, ItemStateException {
if (!initialized) {
throw new IllegalStateException("not initialized");
@@ -413,7 +412,7 @@
throw new IllegalStateException("not initialized");
}
try {
- StringBuffer buf = buildNodeReferencesFilePath(null, refs.getId());
+ StringBuffer buf = buildNodeReferencesFilePath(null, refs.getTargetId());
itemFs.deleteFile(buf.toString());
} catch (Exception e) {
if (e instanceof NoSuchItemStateException) {
@@ -428,7 +427,7 @@
/**
* {@inheritDoc}
*/
- public synchronized boolean exists(NodeReferencesId targetId) throws ItemStateException {
+ public synchronized boolean hasReferencesTo(NodeId targetId) throws ItemStateException {
if (!initialized) {
throw new IllegalStateException("not initialized");
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.java (working copy)
@@ -25,7 +25,6 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.PropertyState;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.id.ItemId;
@@ -238,12 +237,12 @@
* @param id the id of the node
* @return the buffer with the appended data.
*/
- protected StringBuffer buildNodeReferencesFilePath(StringBuffer buf,
- NodeReferencesId id) {
+ protected StringBuffer buildNodeReferencesFilePath(
+ StringBuffer buf, NodeId id) {
if (buf == null) {
buf = new StringBuffer();
}
- buildNodeFolderPath(buf, id.getTargetId());
+ buildNodeFolderPath(buf, id);
buf.append(FileSystem.SEPARATOR);
buf.append(NODEREFSFILENAME);
return buf;
@@ -370,12 +369,6 @@
throws ItemStateException;
/**
- * {@inheritDoc}
- */
- public abstract NodeReferences load(NodeReferencesId targetId)
- throws NoSuchItemStateException, ItemStateException;
-
- /**
* Deletes the node references from the underlying system.
*
* @param refs the node references to destroy.
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java (working copy)
@@ -18,8 +18,6 @@
import org.apache.jackrabbit.core.persistence.util.BLOBStore;
import org.apache.jackrabbit.core.persistence.PersistenceManager;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
-import org.apache.jackrabbit.core.state.NodeReferences;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.ChildNodeEntry;
import org.apache.jackrabbit.core.util.StringIndex;
@@ -28,7 +26,6 @@
import org.apache.jackrabbit.core.data.DataStore;
import org.apache.jackrabbit.core.nodetype.NodeDefId;
import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.uuid.UUID;
import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
import java.io.DataInputStream;
@@ -139,46 +136,6 @@
}
/**
- * Deserializes a NodeReferences from the data input stream.
- *
- * @param in the input stream
- * @param id the id of the nodereference to deserialize
- * @param pMgr the persistence manager
- * @return the node references
- * @throws IOException in an I/O error occurs.
- */
- public NodeReferences readState(DataInputStream in, NodeReferencesId id,
- PersistenceManager pMgr)
- throws IOException {
- NodeReferences state = new NodeReferences(id);
- int count = in.readInt(); // count & version
- // int version = (count >> 24) | 0x0ff;
- count &= 0x00ffffff;
- for (int i = 0; i < count; i++) {
- state.addReference(readPropertyId(in)); // propertyId
- }
- return state;
- }
-
- /**
- * Serializes a NodeReferences to the data output stream.
- *
- * @param out the output stream
- * @param state the state to write.
- * @throws IOException in an I/O error occurs.
- */
- public void writeState(DataOutputStream out, NodeReferences state)
- throws IOException {
- // references
- Collection c = state.getReferences();
- out.writeInt(c.size() | (VERSION_CURRENT << 24)); // count
- for (Iterator iter = c.iterator(); iter.hasNext();) {
- PropertyId propId = iter.next();
- writePropertyId(out, propId);
- }
- }
-
- /**
* Deserializes a NodeState from the data input stream.
*
* @param in the input streaam
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java (working copy)
@@ -144,7 +144,7 @@
Blob blob = null;
try {
// check if insert or update
- boolean update = exists(refs.getId());
+ boolean update = hasReferencesTo(refs.getTargetId());
String sql = (update) ? nodeReferenceUpdateSQL : nodeReferenceInsertSQL;
ByteArrayOutputStream out = new ByteArrayOutputStream(INITIAL_BUFFER_SIZE);
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java (working copy)
@@ -31,7 +31,6 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.PropertyState;
import org.apache.jackrabbit.core.value.InternalValue;
@@ -124,8 +123,8 @@
return buildNodeFolderPath(id) + FileSystem.SEPARATOR + NODEFILENAME;
}
- private static String buildNodeReferencesFilePath(NodeReferencesId id) {
- return buildNodeFolderPath(id.getTargetId()) + FileSystem.SEPARATOR + NODEREFSFILENAME;
+ private static String buildNodeReferencesFilePath(NodeId id) {
+ return buildNodeFolderPath(id) + FileSystem.SEPARATOR + NODEREFSFILENAME;
}
//---------------------------------------------------< PersistenceManager >
@@ -259,7 +258,7 @@
/**
* {@inheritDoc}
*/
- public synchronized NodeReferences load(NodeReferencesId id)
+ public synchronized NodeReferences getReferencesTo(NodeId id)
throws NoSuchItemStateException, ItemStateException {
if (!initialized) {
@@ -355,7 +354,7 @@
throw new IllegalStateException("not initialized");
}
- String refsFilePath = buildNodeReferencesFilePath(refs.getId());
+ String refsFilePath = buildNodeReferencesFilePath(refs.getTargetId());
FileSystemResource refsFile = new FileSystemResource(itemStateFS, refsFilePath);
try {
refsFile.makeParentDirs();
@@ -366,7 +365,7 @@
out.close();
}
} catch (Exception e) {
- String msg = "failed to store references: " + refs.getId();
+ String msg = "failed to store references: " + refs.getTargetId();
log.debug(msg);
throw new ItemStateException(msg, e);
}
@@ -435,7 +434,7 @@
throw new IllegalStateException("not initialized");
}
- String refsFilePath = buildNodeReferencesFilePath(refs.getId());
+ String refsFilePath = buildNodeReferencesFilePath(refs.getTargetId());
FileSystemResource refsFile = new FileSystemResource(itemStateFS, refsFilePath);
try {
if (refsFile.exists()) {
@@ -443,7 +442,7 @@
refsFile.delete(true);
}
} catch (FileSystemException fse) {
- String msg = "failed to delete node references: " + refs.getId();
+ String msg = "failed to delete node references: " + refs.getTargetId();
log.debug(msg);
throw new ItemStateException(msg, fse);
}
@@ -490,7 +489,7 @@
/**
* {@inheritDoc}
*/
- public synchronized boolean exists(NodeReferencesId id)
+ public synchronized boolean hasReferencesTo(NodeId id)
throws ItemStateException {
if (!initialized) {
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java (working copy)
@@ -29,7 +29,6 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.PropertyState;
import org.apache.jackrabbit.core.persistence.util.FileSystemBLOBStore;
@@ -72,7 +71,7 @@
protected boolean initialized;
protected Map stateStore;
- protected Map refsStore;
+ protected Map refsStore;
// initial size of buffer used to serialize objects
protected static final int INITIAL_BUFFER_SIZE = 1024;
@@ -214,7 +213,7 @@
int n = in.readInt(); // number of entries
while (n-- > 0) {
String s = in.readUTF(); // target id
- NodeReferencesId id = NodeReferencesId.valueOf(s);
+ NodeId id = NodeId.valueOf(s);
int length = in.readInt(); // data length
byte[] data = new byte[length];
in.readFully(data); // data
@@ -266,7 +265,7 @@
try {
out.writeInt(refsStore.size()); // number of entries
// entries
- for (NodeReferencesId id : refsStore.keySet()) {
+ for (NodeId id : refsStore.keySet()) {
out.writeUTF(id.toString()); // target id
byte[] data = refsStore.get(id);
out.writeInt(data.length); // data length
@@ -287,7 +286,7 @@
}
stateStore = new HashMap(initialCapacity, loadFactor);
- refsStore = new HashMap(initialCapacity, loadFactor);
+ refsStore = new HashMap(initialCapacity, loadFactor);
wspFS = context.getFileSystem();
@@ -492,7 +491,7 @@
/**
* {@inheritDoc}
*/
- public synchronized NodeReferences load(NodeReferencesId id)
+ public synchronized NodeReferences getReferencesTo(NodeId id)
throws NoSuchItemStateException, ItemStateException {
if (!initialized) {
@@ -531,11 +530,11 @@
Serializer.serialize(refs, out);
// store in serialized format in map for better memory efficiency
- refsStore.put(refs.getId(), out.toByteArray());
+ refsStore.put(refs.getTargetId(), out.toByteArray());
// there's no need to close a ByteArrayOutputStream
//out.close();
} catch (Exception e) {
- String msg = "failed to store references: " + refs.getId();
+ String msg = "failed to store references: " + refs.getTargetId();
log.debug(msg);
throw new ItemStateException(msg, e);
}
@@ -550,7 +549,7 @@
}
// remove node references
- refsStore.remove(refs.getId());
+ refsStore.remove(refs.getTargetId());
}
/**
@@ -576,7 +575,7 @@
/**
* {@inheritDoc}
*/
- public boolean exists(NodeReferencesId id) throws ItemStateException {
+ public boolean hasReferencesTo(NodeId id) throws ItemStateException {
if (!initialized) {
throw new IllegalStateException("not initialized");
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java (working copy)
@@ -29,13 +29,11 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.ItemStateReferenceMap;
import org.apache.jackrabbit.core.state.ItemStateListener;
import org.apache.jackrabbit.core.state.ChildNodeEntry;
import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.uuid.UUID;
import org.apache.jackrabbit.util.WeakIdentityCollection;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.slf4j.Logger;
@@ -142,7 +140,7 @@
/**
* {@inheritDoc}
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
throw new NoSuchItemStateException(id.toString());
}
@@ -150,7 +148,7 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
return false;
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (working copy)
@@ -70,7 +70,6 @@
import org.apache.jackrabbit.commons.iterator.PropertyIteratorAdapter;
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.nodetype.EffectiveNodeType;
import org.apache.jackrabbit.core.nodetype.ItemDef;
@@ -4661,9 +4660,8 @@
sanityCheck();
try {
- NodeReferencesId targetId = new NodeReferencesId((NodeId) id);
- if (stateMgr.hasNodeReferences(targetId)) {
- NodeReferences refs = stateMgr.getNodeReferences(targetId);
+ if (stateMgr.hasNodeReferences(getNodeId())) {
+ NodeReferences refs = stateMgr.getNodeReferences(getNodeId());
// refs.getReferences() returns a list of PropertyId's
List idList = refs.getReferences();
if (name != null) {
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java (working copy)
@@ -37,7 +37,6 @@
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.lock.LockManager;
import org.apache.jackrabbit.core.nodetype.EffectiveNodeType;
@@ -66,7 +65,6 @@
import org.apache.jackrabbit.spi.commons.conversion.MalformedPathException;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
-import org.apache.jackrabbit.uuid.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -919,10 +917,10 @@
if ((options & CHECK_REFERENCES) == CHECK_REFERENCES) {
EffectiveNodeType ent = getEffectiveNodeType(targetState);
if (ent.includesNodeType(NameConstants.MIX_REFERENCEABLE)) {
- NodeReferencesId refsId = new NodeReferencesId(targetState.getNodeId());
- if (stateMgr.hasNodeReferences(refsId)) {
+ NodeId targetId = targetState.getNodeId();
+ if (stateMgr.hasNodeReferences(targetId)) {
try {
- NodeReferences refs = stateMgr.getNodeReferences(refsId);
+ NodeReferences refs = stateMgr.getNodeReferences(targetId);
if (refs.hasReferences()) {
throw new ReferentialIntegrityException(safeGetJCRPath(targetPath)
+ ": cannot remove node with references");
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/LocalItemStateManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/LocalItemStateManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/LocalItemStateManager.java (working copy)
@@ -20,7 +20,6 @@
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.observation.EventStateCollectionFactory;
import org.apache.jackrabbit.spi.Name;
@@ -206,11 +205,11 @@
/**
* {@inheritDoc}
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
// check change log
- NodeReferences refs = changeLog.get(id);
+ NodeReferences refs = changeLog.getReferencesTo(id);
if (refs != null) {
return refs;
}
@@ -220,9 +219,9 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
// check change log
- if (changeLog.get(id) != null) {
+ if (changeLog.getReferencesTo(id) != null) {
return true;
}
return sharedStateMgr.hasNodeReferences(id);
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (working copy)
@@ -32,7 +32,6 @@
import org.apache.jackrabbit.core.cluster.UpdateEventChannel;
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.nodetype.EffectiveNodeType;
import org.apache.jackrabbit.core.nodetype.NodeDef;
@@ -315,13 +314,13 @@
/**
* {@inheritDoc}
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
- ISMLocking.ReadLock readLock = acquireReadLock(id.getTargetId());
+ ISMLocking.ReadLock readLock = acquireReadLock(id);
try {
// check persistence manager
try {
- return persistMgr.load(id);
+ return persistMgr.getReferencesTo(id);
} catch (NoSuchItemStateException e) {
// ignore
}
@@ -345,17 +344,17 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
ISMLocking.ReadLock readLock;
try {
- readLock = acquireReadLock(id.getTargetId());
+ readLock = acquireReadLock(id);
} catch (ItemStateException e) {
return false;
}
try {
// check persistence manager
try {
- if (persistMgr.exists(id)) {
+ if (persistMgr.hasReferencesTo(id)) {
return true;
}
} catch (ItemStateException e) {
@@ -674,7 +673,7 @@
for (Iterator iter = local.modifiedRefs(); iter.hasNext();) {
NodeReferences refs = iter.next();
boolean virtual = false;
- NodeId id = refs.getId().getTargetId();
+ NodeId id = refs.getTargetId();
for (int i = 0; i < virtualProviders.length; i++) {
if (virtualProviders[i].hasItemState(id)) {
ChangeLog virtualRefs = virtualNodeReferences[i];
@@ -919,16 +918,15 @@
private void addReference(PropertyId id, NodeId target)
throws ItemStateException {
- NodeReferencesId refsId = new NodeReferencesId(target);
if (virtualProvider == null
- || !virtualProvider.hasNodeReferences(refsId)) {
+ || !virtualProvider.hasNodeReferences(target)) {
// get or create the references instance
- NodeReferences refs = local.get(refsId);
+ NodeReferences refs = local.getReferencesTo(target);
if (refs == null) {
- if (hasNodeReferences(refsId)) {
- refs = getNodeReferences(refsId);
+ if (hasNodeReferences(target)) {
+ refs = getNodeReferences(target);
} else {
- refs = new NodeReferences(refsId);
+ refs = new NodeReferences(target);
}
}
// add reference
@@ -954,14 +952,13 @@
private void removeReference(PropertyId id, NodeId target)
throws ItemStateException {
- NodeReferencesId refsId = new NodeReferencesId(target);
if (virtualProvider == null
- || !virtualProvider.hasNodeReferences(refsId)) {
+ || !virtualProvider.hasNodeReferences(target)) {
// either get node references from change log or load from
// persistence manager
- NodeReferences refs = local.get(refsId);
- if (refs == null && hasNodeReferences(refsId)) {
- refs = getNodeReferences(refsId);
+ NodeReferences refs = local.getReferencesTo(target);
+ if (refs == null && hasNodeReferences(target)) {
+ refs = getNodeReferences(target);
}
if (refs != null) {
// remove reference
@@ -994,20 +991,20 @@
if (state.isNode()) {
NodeState node = (NodeState) state;
if (isReferenceable(node)) {
- NodeReferencesId refsId = new NodeReferencesId(node.getNodeId());
+ NodeId targetId = node.getNodeId();
// either get node references from change log or
// load from persistence manager
- NodeReferences refs = local.get(refsId);
+ NodeReferences refs = local.getReferencesTo(targetId);
if (refs == null) {
- if (!hasNodeReferences(refsId)) {
+ if (!hasNodeReferences(targetId)) {
continue;
}
- refs = getNodeReferences(refsId);
+ refs = getNodeReferences(targetId);
}
// in some versioning operations (such as restore) a node
// may actually be deleted and then again added with the
// same UUID, i.e. the node is still referenceable.
- if (refs.hasReferences() && !local.has(node.getNodeId())) {
+ if (refs.hasReferences() && !local.has(targetId)) {
String msg = node.getNodeId()
+ ": the node cannot be removed because it is still being referenced.";
log.debug(msg);
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java (working copy)
@@ -31,12 +31,10 @@
import org.apache.jackrabbit.core.TransactionException;
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.observation.EventStateCollectionFactory;
import org.apache.jackrabbit.core.value.InternalValue;
import org.apache.jackrabbit.core.virtual.VirtualItemStateProvider;
-import org.apache.jackrabbit.uuid.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -312,7 +310,7 @@
* check the transactional change log. Fallback is always the call to
* the base class.
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
if (virtualProvider != null && virtualProvider.hasNodeReferences(id)) {
@@ -329,7 +327,7 @@
* check the transactional change log. Fallback is always the call to
* the base class.
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
if (virtualProvider != null && virtualProvider.hasNodeReferences(id)) {
return true;
}
@@ -367,7 +365,7 @@
* @throws ItemStateException if an error occurs while reading from the
* underlying shared item state manager.
*/
- private NodeReferences getReferences(NodeReferencesId id)
+ private NodeReferences getReferences(NodeId id)
throws ItemStateException {
NodeReferences refs;
try {
@@ -378,14 +376,13 @@
// apply changes from change log
ChangeLog changes = getChangeLog();
if (changes != null) {
- NodeId target = id.getTargetId();
// check removed reference properties
for (Iterator it = filterReferenceProperties(changes.deletedStates());
it.hasNext(); ) {
PropertyState prop = (PropertyState) it.next();
InternalValue[] values = prop.getValues();
for (int i = 0; i < values.length; i++) {
- if (values[i].getNodeId().equals(target)) {
+ if (values[i].getNodeId().equals(id)) {
refs.removeReference(prop.getPropertyId());
break;
}
@@ -397,7 +394,7 @@
PropertyState prop = (PropertyState) it.next();
InternalValue[] values = prop.getValues();
for (int i = 0; i < values.length; i++) {
- if (values[i].getNodeId().equals(target)) {
+ if (values[i].getNodeId().equals(id)) {
refs.addReference(prop.getPropertyId());
break;
}
@@ -415,7 +412,7 @@
// remove if one of the old values references the node
InternalValue[] values = old.getValues();
for (int i = 0; i < values.length; i++) {
- if (values[i].getNodeId().equals(target)) {
+ if (values[i].getNodeId().equals(id)) {
refs.removeReference(old.getPropertyId());
break;
}
@@ -430,7 +427,7 @@
// add if modified value references node
InternalValue[] values = prop.getValues();
for (int i = 0; i < values.length; i++) {
- if (values[i].getNodeId().equals(target)) {
+ if (values[i].getNodeId().equals(id)) {
refs.addReference(prop.getPropertyId());
break;
}
@@ -470,8 +467,8 @@
private void updateVirtualReferences(ChangeLog changes) throws ItemStateException {
ChangeLog references = new ChangeLog();
- for (Iterator iter = changes.addedStates(); iter.hasNext();) {
- ItemState state = (ItemState) iter.next();
+ for (Iterator iter = changes.addedStates(); iter.hasNext();) {
+ ItemState state = iter.next();
if (!state.isNode()) {
PropertyState prop = (PropertyState) state;
if (prop.getType() == PropertyType.REFERENCE) {
@@ -479,13 +476,13 @@
for (int i = 0; vals != null && i < vals.length; i++) {
addVirtualReference(
references, prop.getPropertyId(),
- new NodeReferencesId(vals[i].getNodeId()));
+ vals[i].getNodeId());
}
}
}
}
- for (Iterator iter = changes.modifiedStates(); iter.hasNext();) {
- ItemState state = (ItemState) iter.next();
+ for (Iterator iter = changes.modifiedStates(); iter.hasNext();) {
+ ItemState state = iter.next();
if (!state.isNode()) {
PropertyState newProp = (PropertyState) state;
PropertyState oldProp =
@@ -495,7 +492,7 @@
for (int i = 0; vals != null && i < vals.length; i++) {
removeVirtualReference(
references, oldProp.getPropertyId(),
- new NodeReferencesId(vals[i].getNodeId()));
+ vals[i].getNodeId());
}
}
if (newProp.getType() == PropertyType.REFERENCE) {
@@ -503,13 +500,13 @@
for (int i = 0; vals != null && i < vals.length; i++) {
addVirtualReference(
references, newProp.getPropertyId(),
- new NodeReferencesId(vals[i].getNodeId()));
+ vals[i].getNodeId());
}
}
}
}
- for (Iterator iter = changes.deletedStates(); iter.hasNext();) {
- ItemState state = (ItemState) iter.next();
+ for (Iterator iter = changes.deletedStates(); iter.hasNext();) {
+ ItemState state = iter.next();
if (!state.isNode()) {
PropertyState prop = (PropertyState) state;
if (prop.getType() == PropertyType.REFERENCE) {
@@ -517,7 +514,7 @@
for (int i = 0; vals != null && i < vals.length; i++) {
removeVirtualReference(
references, prop.getPropertyId(),
- new NodeReferencesId(vals[i].getNodeId()));
+ vals[i].getNodeId());
}
}
}
@@ -531,18 +528,18 @@
* Ignored if refsId.getTargetId() does not denote a
* virtual node.
* @param sourceId property id
- * @param refsId node references id
+ * @param targetId target node id
*/
private void addVirtualReference(
- ChangeLog references, PropertyId sourceId, NodeReferencesId refsId)
+ ChangeLog references, PropertyId sourceId, NodeId targetId)
throws NoSuchItemStateException, ItemStateException {
- NodeReferences refs = references.get(refsId);
+ NodeReferences refs = references.getReferencesTo(targetId);
if (refs == null) {
- refs = virtualProvider.getNodeReferences(refsId);
+ refs = virtualProvider.getNodeReferences(targetId);
}
- if (refs == null && virtualProvider.hasItemState(refsId.getTargetId())) {
- refs = new NodeReferences(refsId);
+ if (refs == null && virtualProvider.hasItemState(targetId)) {
+ refs = new NodeReferences(targetId);
}
if (refs != null) {
refs.addReference(sourceId);
@@ -555,18 +552,18 @@
* Ignored if refsId.getTargetId() does not denote a
* virtual node.
* @param sourceId property id
- * @param refsId node references id
+ * @param targetId target node id
*/
private void removeVirtualReference(
- ChangeLog references, PropertyId sourceId, NodeReferencesId refsId)
+ ChangeLog references, PropertyId sourceId, NodeId targetId)
throws NoSuchItemStateException, ItemStateException {
- NodeReferences refs = references.get(refsId);
+ NodeReferences refs = references.getReferencesTo(targetId);
if (refs == null) {
- refs = virtualProvider.getNodeReferences(refsId);
+ refs = virtualProvider.getNodeReferences(targetId);
}
- if (refs == null && virtualProvider.hasItemState(refsId.getTargetId())) {
- refs = new NodeReferences(refsId);
+ if (refs == null && virtualProvider.hasItemState(targetId)) {
+ refs = new NodeReferences(targetId);
}
if (refs != null) {
refs.removeReference(sourceId);
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChangeLog.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChangeLog.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChangeLog.java (working copy)
@@ -21,7 +21,7 @@
import org.apache.commons.collections.map.LinkedMap;
import org.apache.jackrabbit.core.id.ItemId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
+import org.apache.jackrabbit.core.id.NodeId;
/**
* Registers changes made to states and references and consolidates
@@ -51,7 +51,7 @@
* Modified references
*/
@SuppressWarnings("unchecked")
- private final Map modifiedRefs = (Map) new LinkedMap();
+ private final Map modifiedRefs = (Map) new LinkedMap();
/**
* Checks whether this change log contains any changes. This method is
@@ -114,7 +114,7 @@
* @param refs refs that has been modified
*/
public void modified(NodeReferences refs) {
- modifiedRefs.put(refs.getId(), refs);
+ modifiedRefs.put(refs.id, refs);
}
/**
@@ -173,13 +173,13 @@
}
/**
- * Return a node references object given its id. Returns
+ * Return a node references object given the target node id. Returns
* null if the node reference is not in the modified
* section.
*
* @return node references or null
*/
- public NodeReferences get(NodeReferencesId id) {
+ public NodeReferences getReferencesTo(NodeId id) {
return modifiedRefs.get(id);
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeReferences.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeReferences.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/NodeReferences.java (working copy)
@@ -22,7 +22,6 @@
import java.util.List;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
/**
@@ -37,9 +36,9 @@
static final long serialVersionUID = 7007727035982680717L;
/**
- * identifier of this NodeReferences instance.
+ * Identifier of the target node.
*/
- protected NodeReferencesId id;
+ protected NodeId id;
/**
* list of PropertyId's (i.e. the id's of the properties that refer to
@@ -51,31 +50,17 @@
*/
protected ArrayList references = new ArrayList();
- /**
- * Package private constructor
- *
- * @param id
- */
- public NodeReferences(NodeReferencesId id) {
+ public NodeReferences(NodeId id) {
this.id = id;
}
/**
- * Returns the identifier of this node references object.
- *
- * @return the id of this node references object.
- */
- public NodeReferencesId getId() {
- return id;
- }
-
- /**
* Returns the identifier of the target node.
*
* @return the id of the target node
*/
public NodeId getTargetId() {
- return id.getTargetId();
+ return id;
}
/**
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateManager.java (working copy)
@@ -17,7 +17,7 @@
package org.apache.jackrabbit.core.state;
import org.apache.jackrabbit.core.id.ItemId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
+import org.apache.jackrabbit.core.id.NodeId;
/**
* The ItemStateManager interface provides methods for retrieving
@@ -51,7 +51,7 @@
* @throws NoSuchItemStateException if the item does not exist
* @throws ItemStateException if an error occurs
*/
- NodeReferences getNodeReferences(NodeReferencesId id)
+ NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException;
/**
@@ -61,5 +61,5 @@
* @return true if a node reference object exists for the given
* id, otherwise false.
*/
- boolean hasNodeReferences(NodeReferencesId id);
+ boolean hasNodeReferences(NodeId id);
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/FineGrainedISMLocking.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/FineGrainedISMLocking.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/FineGrainedISMLocking.java (working copy)
@@ -25,7 +25,6 @@
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
import EDU.oswego.cs.dl.util.concurrent.Latch;
@@ -239,7 +238,7 @@
private static boolean hasDependency(ChangeLog changeLog, ItemId id) {
try {
if (changeLog.get(id) == null) {
- if (!id.denotesNode() || changeLog.get(new NodeReferencesId((NodeId) id)) == null) {
+ if (!id.denotesNode() || changeLog.getReferencesTo((NodeId) id) == null) {
// change log does not contain the item
return false;
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java (working copy)
@@ -34,7 +34,6 @@
import org.apache.jackrabbit.core.ZombieHierarchyManager;
import org.apache.jackrabbit.core.id.ItemId;
import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.id.PropertyId;
import org.apache.jackrabbit.core.nodetype.NodeDef;
import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
@@ -206,7 +205,7 @@
/**
* {@inheritDoc}
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
return stateMgr.getNodeReferences(id);
@@ -215,7 +214,7 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
return stateMgr.hasNodeReferences(id);
}
@@ -997,7 +996,7 @@
/**
* {@inheritDoc}
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
// n/a
throw new ItemStateException("getNodeReferences() not implemented");
@@ -1006,7 +1005,7 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
// n/a
return false;
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java (working copy)
@@ -30,7 +30,6 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.SharedItemStateManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -61,11 +60,12 @@
this.pMgr = persistMgr;
}
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ @Override
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
// check persistence manager
try {
- return pMgr.load(id);
+ return pMgr.getReferencesTo(id);
} catch (NoSuchItemStateException e) {
// ignore
}
@@ -73,10 +73,11 @@
throw new NoSuchItemStateException(id.toString());
}
- public boolean hasNodeReferences(NodeReferencesId id) {
+ @Override
+ public boolean hasNodeReferences(NodeId id) {
// check persistence manager
try {
- if (pMgr.exists(id)) {
+ if (pMgr.hasReferencesTo(id)) {
return true;
}
} catch (ItemStateException e) {
@@ -98,7 +99,7 @@
while (iterator.hasNext()) {
// filter out version storage intern ones
NodeReferences source = (NodeReferences) iterator.next();
- NodeReferences target = new NodeReferences(source.getId());
+ NodeReferences target = new NodeReferences(source.getTargetId());
Iterator iter = source.getReferences().iterator();
while (iter.hasNext()) {
PropertyId id = (PropertyId) iter.next();
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java (working copy)
@@ -50,7 +50,6 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.ItemStateListener;
import org.apache.jackrabbit.core.state.LocalItemStateManager;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.PropertyState;
import org.apache.jackrabbit.core.state.SharedItemStateManager;
@@ -370,10 +369,9 @@
// we're currently leverage the fact, that only references to "real"
// workspaces are recorded.
NodeId nodeId = activity.getNodeId();
- NodeReferencesId refId = new NodeReferencesId(nodeId);
- if (stateMgr.hasNodeReferences(refId)) {
+ if (stateMgr.hasNodeReferences(nodeId)) {
try {
- NodeReferences refs = stateMgr.getNodeReferences(refId);
+ NodeReferences refs = stateMgr.getNodeReferences(nodeId);
if (refs.hasReferences()) {
throw new ActivityViolationException("Unable to checkout. " +
"Activity is already used for the same node in " +
@@ -548,7 +546,7 @@
*/
protected boolean hasItemReferences(NodeId id)
throws RepositoryException {
- return stateMgr.hasNodeReferences(new NodeReferencesId(id));
+ return stateMgr.hasNodeReferences(id);
}
/**
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/AbstractVersionManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/AbstractVersionManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/AbstractVersionManager.java (working copy)
@@ -32,12 +32,10 @@
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.LocalItemStateManager;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
-import org.apache.jackrabbit.uuid.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -449,9 +447,8 @@
try {
// check if the activity has any references in the workspaces
NodeId nodeId = activity.getId();
- NodeReferencesId refId = new NodeReferencesId(nodeId);
- if (stateMgr.hasNodeReferences(refId)) {
- NodeReferences refs = stateMgr.getNodeReferences(refId);
+ if (stateMgr.hasNodeReferences(nodeId)) {
+ NodeReferences refs = stateMgr.getNodeReferences(nodeId);
if (refs.hasReferences()) {
throw new ReferentialIntegrityException("Unable to delete activity. still referenced.");
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java (working copy)
@@ -43,7 +43,6 @@
import org.apache.jackrabbit.core.state.ItemStateListener;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.XAItemStateManager;
import org.apache.jackrabbit.core.state.ISMLocking.ReadLock;
@@ -362,12 +361,12 @@
/**
* {@inheritDoc}
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
ChangeLog changeLog = ((XAItemStateManager) stateMgr).getChangeLog();
if (changeLog != null) {
- return changeLog.get(id);
+ return changeLog.getReferencesTo(id);
}
return null;
}
@@ -375,10 +374,10 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
ChangeLog changeLog = ((XAItemStateManager) stateMgr).getChangeLog();
if (changeLog != null) {
- return changeLog.get(id) != null;
+ return changeLog.getReferencesTo(id) != null;
}
return false;
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java (working copy)
@@ -27,7 +27,6 @@
import org.apache.jackrabbit.core.state.ItemStateListener;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.core.virtual.VirtualItemStateProvider;
import org.apache.jackrabbit.core.virtual.VirtualNodeState;
import org.apache.jackrabbit.core.virtual.VirtualPropertyState;
@@ -130,7 +129,7 @@
/**
* @inheritDoc
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
return stateMgr.getNodeReferences(id);
}
@@ -138,7 +137,7 @@
/**
* @inheritDoc
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
return stateMgr.hasNodeReferences(id);
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ChangeLogBasedHierarchyMgr.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ChangeLogBasedHierarchyMgr.java (revision 793175)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ChangeLogBasedHierarchyMgr.java (working copy)
@@ -27,7 +27,6 @@
import org.apache.jackrabbit.core.state.ItemStateManager;
import org.apache.jackrabbit.core.state.NoSuchItemStateException;
import org.apache.jackrabbit.core.state.NodeReferences;
-import org.apache.jackrabbit.core.id.NodeReferencesId;
import org.apache.jackrabbit.spi.Path;
import org.apache.jackrabbit.spi.Name;
@@ -169,7 +168,7 @@
/**
* Always throws a {@link UnsupportedOperationException}.
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
throw new UnsupportedOperationException();
}
@@ -177,7 +176,7 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
return false;
}
}
@@ -239,7 +238,7 @@
/**
* Always throws a {@link UnsupportedOperationException}.
*/
- public NodeReferences getNodeReferences(NodeReferencesId id)
+ public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException, ItemStateException {
throw new UnsupportedOperationException();
}
@@ -247,7 +246,7 @@
/**
* {@inheritDoc}
*/
- public boolean hasNodeReferences(NodeReferencesId id) {
+ public boolean hasNodeReferences(NodeId id) {
return false;
}
}
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/NodeReferencesId.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/NodeReferencesId.java (revision 793106)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/id/NodeReferencesId.java (working copy)
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.core.id;
-
-import java.io.Serializable;
-
-/**
- * Identifies a NodeReferences object.
- */
-public class NodeReferencesId implements Serializable {
-
- /** Serialization UID of this class. */
- static final long serialVersionUID = -3819311769214730025L;
-
- /**
- * The id of the target node.
- */
- private final NodeId targetId;
-
- /**
- * Creates a new instance of this class. Takes the id of the target node
- * as parameter.
- *
- * @param targetId id of target node
- * @throws IllegalArgumentException if targetId is null.
- */
- public NodeReferencesId(NodeId targetId) {
- if (targetId == null) {
- throw new IllegalArgumentException("targetId must not be null");
- }
- this.targetId = targetId;
- }
-
- /**
- * Returns the id of the target node.
- *
- * @return the id of the target node.
- */
- public NodeId getTargetId() {
- return targetId;
- }
-
- /**
- * Returns a NodeReferencesId holding the value of the specified
- * string. The string must be in the format returned by the
- * NodeReferencesId.toString() method.
- *
- * @param s a String containing the NodeReferencesId
- * representation to be parsed.
- * @return the NodeReferencesId represented by the argument
- * @throws IllegalArgumentException if the specified string can not be parsed
- * as a NodeReferencesId.
- * @see #toString()
- */
- public static NodeReferencesId valueOf(String s) throws IllegalArgumentException {
- if (s == null) {
- throw new IllegalArgumentException("invalid NodeReferencesId literal");
- }
- return new NodeReferencesId(NodeId.valueOf(s));
- }
-
- /**
- * Returns the same as this.getTargetId().toString().
- *
- * @return the same as this.getTargetId().toString().
- */
- public String toString() {
- return targetId.toString();
- }
-
- /**
- * Returns the same as this.getTargetId().hashCode().
- *
- * @return the same as this.getTargetId().hashCode().
- */
- public int hashCode() {
- return targetId.hashCode();
- }
-
- /**
- * @inheritDoc
- */
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj instanceof NodeReferencesId) {
- return targetId.equals(((NodeReferencesId) obj).targetId);
- }
- return false;
- }
-}