You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2013/06/02 14:06:54 UTC
svn commit: r1488690 -
/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
Author: jukka
Date: Sun Jun 2 12:06:53 2013
New Revision: 1488690
URL: http://svn.apache.org/r1488690
Log:
OAK-168: Basic JCR VersionManager support
Throw VersionException from add/removeMixin() on a checked-in node
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1488690&r1=1488689&r2=1488690&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Sun Jun 2 12:06:53 2013
@@ -858,6 +858,13 @@ public class NodeImpl<T extends NodeDele
final String oakTypeName = getOakName(checkNotNull(mixinName));
perform(new ItemWriteOperation<Void>() {
@Override
+ protected void checkPreconditions() throws RepositoryException {
+ super.checkPreconditions();
+ if (!isCheckedOut()) {
+ throw new VersionException("Cannot add mixin type. Node is checked in.");
+ }
+ }
+ @Override
public Void perform() throws RepositoryException {
dlg.addMixin(oakTypeName);
return null;
@@ -869,6 +876,13 @@ public class NodeImpl<T extends NodeDele
public void removeMixin(final String mixinName) throws RepositoryException {
perform(new ItemWriteOperation<Void>() {
@Override
+ protected void checkPreconditions() throws RepositoryException {
+ super.checkPreconditions();
+ if (!isCheckedOut()) {
+ throw new VersionException("Cannot remove mixin type. Node is checked in.");
+ }
+ }
+ @Override
public Void perform() throws RepositoryException {
PropertyDelegate propDlg = dlg.getPropertyOrNull(JcrConstants.JCR_MIXINTYPES);
String oakName = getOakName(mixinName);