diff --git a/.classpath b/.classpath
index 6e5ddb36f5..972084b667 100644
--- a/.classpath
+++ b/.classpath
@@ -8,5 +8,6 @@
+
diff --git a/source/java/org/alfresco/repo/avm/AVMLockingAwareService.java b/source/java/org/alfresco/repo/avm/AVMLockingAwareService.java
index 8810b01571..4a01c3cb42 100644
--- a/source/java/org/alfresco/repo/avm/AVMLockingAwareService.java
+++ b/source/java/org/alfresco/repo/avm/AVMLockingAwareService.java
@@ -873,7 +873,6 @@ public class AVMLockingAwareService implements AVMService, ApplicationContextAwa
{
throw new AVMLockingException("avmlockservice.locked", new Object[]{path});
}
- fLockingService.addWebProject(webProject);
if (fLockingService.getLock(webProject, storePath[1]) == null)
{
List owners = new ArrayList(1);
diff --git a/source/java/org/alfresco/repo/avm/AVMNodeService.java b/source/java/org/alfresco/repo/avm/AVMNodeService.java
index 5b50ef7e88..d2a95ae88e 100644
--- a/source/java/org/alfresco/repo/avm/AVMNodeService.java
+++ b/source/java/org/alfresco/repo/avm/AVMNodeService.java
@@ -77,6 +77,11 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
{
private static Logger fgLogger = Logger.getLogger(AVMNodeService.class);
+ /**
+ * Flag for whether policy callbacks are made.
+ */
+ private boolean fInvokePolicies = false;
+
/**
* Reference to AVMService.
*/
@@ -98,6 +103,11 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
{
}
+ public void setInvokePolicies(boolean invoke)
+ {
+ fInvokePolicies = invoke;
+ }
+
/**
* Gets a list of all available node store references
*
@@ -1265,13 +1275,14 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
{
try
{
- Map propsBefore = new HashMap();
-// ContentData oldContentData = fAVMService.getContentDataForRead(-1, avmVersionPath.getSecond());
-// propsBefore.put(ContentModel.PROP_CONTENT, oldContentData);
fAVMService.setContentData(avmVersionPath.getSecond(), (ContentData)value);
- Map propsAfter = new HashMap();
- propsAfter.put(ContentModel.PROP_CONTENT, value);
- invokeOnUpdateProperties(nodeRef, propsBefore, propsAfter);
+ if (fInvokePolicies)
+ {
+ Map propsBefore = new HashMap();
+ Map propsAfter = new HashMap();
+ propsAfter.put(ContentModel.PROP_CONTENT, value);
+ invokeOnUpdateProperties(nodeRef, propsBefore, propsAfter);
+ }
}
catch (ClassCastException e)
{
diff --git a/source/java/org/alfresco/repo/avm/AVMServiceTest.java b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
index 39324b7082..6a444ae2e7 100644
--- a/source/java/org/alfresco/repo/avm/AVMServiceTest.java
+++ b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
@@ -101,6 +101,54 @@ import org.alfresco.util.Pair;
*/
public class AVMServiceTest extends AVMServiceTestBase
{
+ /**
+ * Minimal testing of Locking Aware service.
+ */
+ public void testLockingAwareService()
+ {
+ AVMService oldService = fService;
+ fService = (AVMService)fContext.getBean("AVMLockingAwareService");
+ AuthenticationService authService = (AuthenticationService)fContext.getBean("AuthenticationService");
+ try
+ {
+ fService.setStoreProperty("main", QName.createQName(null, ".dns.main"),
+ new PropertyValue(QName.createQName(null, "silly"), "Nothing."));
+ fService.createStore("test");
+ fService.setStoreProperty("test", QName.createQName(null, ".dns.test.main"),
+ new PropertyValue(QName.createQName(null, "silly"), "Nothing."));
+ setupBasicTree0();
+ authService.authenticateAsGuest();
+ // assertEquals(0, fLockingService.getUsersLocks("admin").size());
+ List diffs = fSyncService.compare(-1, "main:/", -1, "test:/", null);
+ fSyncService.update(diffs, null, false, false, false, false, null, null);
+ RetryingTransactionHelper.RetryingTransactionCallback