You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2011/09/15 19:25:23 UTC
svn commit: r1171185 - in
/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi:
JcrVersionManager.java SessionImpl.java hierarchy/NodeEntry.java
Author: mduerig
Date: Thu Sep 15 17:25:23 2011
New Revision: 1171185
URL: http://svn.apache.org/viewvc?rev=1171185&view=rev
Log:
Microkernel based Jackrabbit prototype (WIP)
refactor: use cast function instead of explicit cast wherever cast is provably correct
Modified:
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/JcrVersionManager.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/JcrVersionManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/JcrVersionManager.java?rev=1171185&r1=1171184&r2=1171185&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/JcrVersionManager.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/JcrVersionManager.java Thu Sep 15 17:25:23 2011
@@ -37,6 +37,8 @@ import javax.jcr.version.Version;
import javax.jcr.version.VersionHistory;
import java.util.Iterator;
+import static org.apache.jackrabbit.spi.commons.util.Unchecked.cast;
+
/**
* {@code VersionManagerImpl}...
*/
@@ -297,11 +299,15 @@ public class JcrVersionManager implement
private NodeImpl getValidActivity(Node activityNode, String methodName) throws RepositoryException {
NodeImpl activity;
if (session == activityNode.getSession()) {
- activity = (NodeImpl) activityNode;
+ if (!(activityNode instanceof NodeImpl)) {
+ throw new RepositoryException("Invalid argument: " + activityNode);
+ }
+
+ activity = cast(activityNode);
} else {
String msg = "Attempt to " + methodName + " an activity node that has been retrieved by another session.";
log.warn(msg);
- activity = (NodeImpl) session.getNodeByIdentifier(activityNode.getIdentifier());
+ activity = session.getNodeByIdentifier(activityNode.getIdentifier());
}
if (!activity.isNodeType(NameConstants.NT_ACTIVITY)) {
throw new UnsupportedRepositoryOperationException("Given node is not an activity.");
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java?rev=1171185&r1=1171184&r2=1171185&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java Thu Sep 15 17:25:23 2011
@@ -56,6 +56,7 @@ import org.apache.jackrabbit.spi.commons
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
import org.apache.jackrabbit.spi.commons.nodetype.NodeTypeResolver;
+import org.apache.jackrabbit.spi.commons.util.Unchecked;
import org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -530,7 +531,7 @@ public class SessionImpl extends Abstrac
* @see Session#getNodeByIdentifier(String)
*/
@Override
- public Node getNodeByIdentifier(String id) throws RepositoryException {
+ public NodeImpl getNodeByIdentifier(String id) throws RepositoryException {
return getNodeById(getIdFactory().fromJcrIdentifier(id));
}
@@ -849,7 +850,11 @@ public class SessionImpl extends Abstrac
NodeState getVersionState(Version version) throws RepositoryException {
NodeState nodeState;
if (version.getSession() == this) {
- nodeState = ((NodeImpl) version).getItemState();
+ if (!(version instanceof NodeImpl)) {
+ throw new RepositoryException("Invalid argument" + version);
+ }
+
+ nodeState = Unchecked.<NodeImpl>cast(version).getItemState();
} else {
Path p = getQPath(version.getPath());
Path parentPath = p.getAncestor(1);
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java?rev=1171185&r1=1171184&r2=1171185&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java Thu Sep 15 17:25:23 2011
@@ -1116,7 +1116,11 @@ public class NodeEntry extends Hierarchy
// special cases: jcr:uuid and jcr:mixinTypes affect the
// parent (i.e. this NodeEntry)
if (isUuidOrMixin(eventName)) {
- notifyUUIDorMIXINModified((PropertyEntry) child);
+ if (!(child instanceof PropertyEntry)) {
+ throw new IllegalArgumentException("Invalid event: " + childEvent);
+ }
+
+ notifyUUIDorMIXINModified(Unchecked.<PropertyEntry>cast(child));
}
}
} // else: existing entry but state not yet built -> ignore event