diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/classified-content-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/classified-content-context.xml
index c3222767b6..5f8035cfc2 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/classified-content-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/classified-content-context.xml
@@ -66,8 +66,6 @@
-
-
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/AbstractPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/AbstractPostMethodInvocationProcessor.java
deleted file mode 100644
index 894e6e0216..0000000000
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/AbstractPostMethodInvocationProcessor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2005-2015 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor;
-
-
-/**
- * Abstract Post Method Invocation Processor
- *
- * @author Tuna Aksoy
- * @since 3.0
- */
-public abstract class AbstractPostMethodInvocationProcessor extends BasePostMethodInvocationProcessor
-{
- /**
- * Abstract method to process a single element
- *
- * @param object The element to process
- * @return Processed element
- */
- protected abstract T processSingleElement(T object);
-
- /**
- * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#process(java.lang.Object)
- */
- @Override
- public T process(T object)
- {
- T result = object;
-
- if (result != null)
- {
- result = processSingleElement(result);
- }
-
- return result;
- }
-}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ArrayPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ArrayPostMethodInvocationProcessor.java
index f1fce3b821..1584276c36 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ArrayPostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ArrayPostMethodInvocationProcessor.java
@@ -19,7 +19,6 @@
package org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor;
import static java.lang.reflect.Array.newInstance;
-import static org.alfresco.util.ParameterCheck.mandatory;
import java.lang.reflect.Array;
import java.util.ArrayList;
@@ -52,39 +51,40 @@ public class ArrayPostMethodInvocationProcessor extends BasePostMethodInvocation
@Override
public T process(T object)
{
- mandatory("object", object);
-
T result = object;
- T[] objects = (T[]) result;
- T obj = objects[0];
- BasePostMethodInvocationProcessor processor = getPostMethodInvocationProcessor().getProcessor(obj);
- if (processor != null)
+ if (result != null)
{
- int length = objects.length;
- List processedObjects = new ArrayList();
+ T[] objects = (T[]) result;
+ T obj = objects[0];
- for (int i = 0; i < length; i++)
+ BasePostMethodInvocationProcessor processor = getPostMethodInvocationProcessor().getProcessor(obj);
+ if (processor != null)
{
- Object processedObject = processor.process(objects[i]);
- if (processedObject != null)
+ int length = objects.length;
+ List processedObjects = new ArrayList();
+
+ for (int i = 0; i < length; i++)
{
- processedObjects.add(processedObject);
+ Object processedObject = processor.process(objects[i]);
+ if (processedObject != null)
+ {
+ processedObjects.add(processedObject);
+ }
}
+
+ int size = processedObjects.size();
+ T[] objs = (T[]) newInstance(obj.getClass(), size);
+
+ for (int i = 0; i < size; i++)
+ {
+ objs[i] = (T) processedObjects.get(i);
+ }
+
+ result = (T) objs;
}
-
- int size = processedObjects.size();
- T[] objs = (T[]) newInstance(obj.getClass(), size);
-
- for (int i = 0; i < size; i++)
- {
- objs[i] = (T) processedObjects.get(i);
- }
-
- result = (T) objs;
}
return result;
}
-
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/AssociationRefPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/AssociationRefPostMethodInvocationProcessor.java
index 990aa3df7c..e7e83dfe8b 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/AssociationRefPostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/AssociationRefPostMethodInvocationProcessor.java
@@ -29,7 +29,7 @@ import org.springframework.stereotype.Component;
* @since 3.0
*/
@Component
-public class AssociationRefPostMethodInvocationProcessor extends AbstractPostMethodInvocationProcessor
+public class AssociationRefPostMethodInvocationProcessor extends BasePostMethodInvocationProcessor
{
/**
* @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#getClassName()
@@ -41,19 +41,29 @@ public class AssociationRefPostMethodInvocationProcessor extends AbstractPostMet
}
/**
- * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.AbstractPostMethodInvocationProcessor#processSingleElement(java.lang.Object)
+ * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#process(java.lang.Object)
*/
@Override
- protected T processSingleElement(T object)
+ public T process(T object)
{
- AssociationRef associationRef = getClassName().cast(object);
+ T result = object;
- NodeRef sourceRef = associationRef.getSourceRef();
- NodeRef filteredSource = filter(sourceRef);
+ if (result != null)
+ {
+ AssociationRef associationRef = getClassName().cast(result);
- NodeRef targetRef = associationRef.getTargetRef();
- NodeRef filteredTarget = filter(targetRef);
+ NodeRef sourceRef = associationRef.getSourceRef();
+ NodeRef filteredSource = filter(sourceRef);
- return (filteredSource == null || filteredTarget == null) ? null : object;
+ NodeRef targetRef = associationRef.getTargetRef();
+ NodeRef filteredTarget = filter(targetRef);
+
+ if (filteredSource == null || filteredTarget == null)
+ {
+ result = null;
+ }
+ }
+
+ return result;
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/BasePostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/BasePostMethodInvocationProcessor.java
index 9e8a9ff221..9024286533 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/BasePostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/BasePostMethodInvocationProcessor.java
@@ -24,11 +24,9 @@ import javax.annotation.PostConstruct;
import org.alfresco.module.org_alfresco_module_rm.classification.ContentClassificationService;
import org.alfresco.module.org_alfresco_module_rm.classification.SecurityClearanceService;
-import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
-import org.alfresco.util.Pair;
import org.springframework.beans.factory.annotation.Autowired;
/**
@@ -59,10 +57,6 @@ public abstract class BasePostMethodInvocationProcessor
@Autowired
private PostMethodInvocationProcessor postMethodInvocationProcessor;
- /** Cache to hold the filtered node information */
- @Autowired
- private SimpleCache, Pair> basePostMethodInvocationProcessorCache;
-
/**
* @return the nodeService
*/
@@ -103,14 +97,6 @@ public abstract class BasePostMethodInvocationProcessor
return this.postMethodInvocationProcessor;
}
- /**
- * @return the cache
- */
- protected SimpleCache, Pair> getCache()
- {
- return this.basePostMethodInvocationProcessorCache;
- }
-
/**
* @param nodeService the nodeService to set
*/
@@ -152,11 +138,12 @@ public abstract class BasePostMethodInvocationProcessor
}
/**
- * @param cache the cache to set
+ * Registers the post method invocation processors
*/
- public void setCache(SimpleCache, Pair> cache)
+ @PostConstruct
+ public void register()
{
- this.basePostMethodInvocationProcessorCache = cache;
+ getPostMethodInvocationProcessor().register(this);
}
/**
@@ -172,16 +159,7 @@ public abstract class BasePostMethodInvocationProcessor
* @param object The object to check
* @return The given object
*/
- public abstract T process(T object);
-
- /**
- * Registers the post method invocation processors
- */
- @PostConstruct
- public void register()
- {
- getPostMethodInvocationProcessor().register(this);
- }
+ protected abstract T process(T object);
/**
* Filters the node if the give node reference exist and it is a
@@ -202,29 +180,6 @@ public abstract class BasePostMethodInvocationProcessor
filter = null;
}
-// if (filter != null)
-// {
-// String uniqueCacheKey = getFullyAuthenticatedUser() /*+ userClearance?*/;
-//
-// Pair cacheKey = new Pair(uniqueCacheKey, filter);
-// Pair cacheValue = getCache().get(cacheKey);
-//
-// if (cacheValue == null || !cacheValue.getFirst().booleanValue())
-// {
-// if (getNodeService().exists(nodeRef) &&
-// getDictionaryService().isSubClass(getNodeService().getType(nodeRef), TYPE_CONTENT) &&
-// !getContentClassificationService().hasClearance(nodeRef))
-// {
-// filter = null;
-// }
-// getCache().put(new Pair(uniqueCacheKey, nodeRef), new Pair(true, filter));
-// }
-// else
-// {
-// filter = getCache().get(cacheKey).getSecond();
-// }
-// }
-
return filter;
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ChildAssociationRefPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ChildAssociationRefPostMethodInvocationProcessor.java
index b6d2b85786..acd003e9d2 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ChildAssociationRefPostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ChildAssociationRefPostMethodInvocationProcessor.java
@@ -29,7 +29,7 @@ import org.springframework.stereotype.Component;
* @since 3.0
*/
@Component
-public class ChildAssociationRefPostMethodInvocationProcessor extends AbstractPostMethodInvocationProcessor
+public class ChildAssociationRefPostMethodInvocationProcessor extends BasePostMethodInvocationProcessor
{
/**
* @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#getClassName()
@@ -41,28 +41,34 @@ public class ChildAssociationRefPostMethodInvocationProcessor extends AbstractPo
}
/**
- * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.AbstractPostMethodInvocationProcessor#processSingleElement(java.lang.Object)
+ * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#process(java.lang.Object)
*/
@Override
- protected T processSingleElement(T object)
+ public T process(T object)
{
- T result;
+ T result = object;
- ChildAssociationRef childAssociationRef = getClassName().cast(object);
-
- NodeRef childRef = childAssociationRef.getChildRef();
- NodeRef filteredChildRef = filter(childRef);
-
- NodeRef parentRef = childAssociationRef.getParentRef();
- NodeRef filteredParentRef;
- if (parentRef == null)
+ if (result != null)
{
- result = filteredChildRef == null ? null : object;
- }
- else
- {
- filteredParentRef = filter(parentRef);
- result = (filteredChildRef == null || filteredParentRef == null) ? null : object;
+ ChildAssociationRef childAssociationRef = getClassName().cast(result);
+
+ NodeRef childRef = childAssociationRef.getChildRef();
+ NodeRef filteredChildRef = filter(childRef);
+
+ NodeRef parentRef = childAssociationRef.getParentRef();
+ NodeRef filteredParentRef;
+ if (parentRef == null && filteredChildRef == null)
+ {
+ result = null;
+ }
+ else
+ {
+ filteredParentRef = filter(parentRef);
+ if (filteredChildRef == null || filteredParentRef == null)
+ {
+ result = null;
+ }
+ }
}
return result;
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/NodeRefPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/NodeRefPostMethodInvocationProcessor.java
index 9e7a267fda..d358357077 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/NodeRefPostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/NodeRefPostMethodInvocationProcessor.java
@@ -28,7 +28,7 @@ import org.springframework.stereotype.Component;
* @since 3.0
*/
@Component
-public class NodeRefPostMethodInvocationProcessor extends AbstractPostMethodInvocationProcessor
+public class NodeRefPostMethodInvocationProcessor extends BasePostMethodInvocationProcessor
{
/**
* @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#getClassName()
@@ -40,12 +40,22 @@ public class NodeRefPostMethodInvocationProcessor extends AbstractPostMethodInvo
}
/**
- * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.AbstractPostMethodInvocationProcessor#processSingleElement(java.lang.Object)
+ * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#process(java.lang.Object)
*/
@Override
- protected T processSingleElement(T object)
+ public T process(T object)
{
- NodeRef nodeRef = getClassName().cast(object);
- return filter(nodeRef) == null ? null : object;
+ T result = object;
+
+ if (result != null)
+ {
+ NodeRef nodeRef = getClassName().cast(result);
+ if (filter(nodeRef) == null)
+ {
+ result = null;
+ }
+ }
+
+ return result;
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/PagingResultsPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/PagingResultsPostMethodInvocationProcessor.java
index 0497efd59c..345f82e88b 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/PagingResultsPostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/PagingResultsPostMethodInvocationProcessor.java
@@ -50,34 +50,41 @@ public class PagingResultsPostMethodInvocationProcessor extends BasePostMethodIn
@Override
public T process(T object)
{
- final PagingResults pagingResults = getClassName().cast(object);
- List page = pagingResults.getPage();
- final List processedPage = getPostMethodInvocationProcessor().process(page);
+ T result = object;
- return (T) new PagingResults()
+ if (result != null)
{
- @Override
- public String getQueryExecutionId()
+ final PagingResults pagingResults = getClassName().cast(result);
+ List page = pagingResults.getPage();
+ final List processedPage = getPostMethodInvocationProcessor().process(page);
+
+ result = (T) new PagingResults()
{
- return pagingResults.getQueryExecutionId();
- }
- @Override
- public List getPage()
- {
- return processedPage;
- }
- @Override
- public boolean hasMoreItems()
- {
- // FIXME: hasMoreItems might not be correct
- return pagingResults.hasMoreItems();
- }
- @Override
- public Pair getTotalResultCount()
- {
- int size = processedPage.size();
- return new Pair(size, size);
- }
- };
+ @Override
+ public String getQueryExecutionId()
+ {
+ return pagingResults.getQueryExecutionId();
+ }
+ @Override
+ public List getPage()
+ {
+ return processedPage;
+ }
+ @Override
+ public boolean hasMoreItems()
+ {
+ // hasMoreItems might not be correct. Cannot determine the correct value as request details are needed.
+ return pagingResults.hasMoreItems();
+ }
+ @Override
+ public Pair getTotalResultCount()
+ {
+ int size = processedPage.size();
+ return new Pair(size, size);
+ }
+ };
+ }
+
+ return result;
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/PermissionCheckValuePostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/PermissionCheckValuePostMethodInvocationProcessor.java
index e7e68c335c..946059818a 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/PermissionCheckValuePostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/PermissionCheckValuePostMethodInvocationProcessor.java
@@ -29,7 +29,7 @@ import org.springframework.stereotype.Component;
* @since 3.0
*/
@Component
-public class PermissionCheckValuePostMethodInvocationProcessor extends AbstractPostMethodInvocationProcessor
+public class PermissionCheckValuePostMethodInvocationProcessor extends BasePostMethodInvocationProcessor
{
/**
* @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#getClassName()
@@ -41,13 +41,23 @@ public class PermissionCheckValuePostMethodInvocationProcessor extends AbstractP
}
/**
- * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.AbstractPostMethodInvocationProcessor#processSingleElement(java.lang.Object)
+ * @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#process(java.lang.Object)
*/
@Override
- protected T processSingleElement(T object)
+ public T process(T object)
{
- PermissionCheckValue permissionCheckValue = getClassName().cast(object);
- NodeRef nodeRef = permissionCheckValue.getNodeRef();
- return filter(nodeRef) == null ? null : object;
+ T result = object;
+
+ if (result != null)
+ {
+ PermissionCheckValue permissionCheckValue = getClassName().cast(result);
+ NodeRef nodeRef = permissionCheckValue.getNodeRef();
+ if (filter(nodeRef) == null)
+ {
+ result = null;
+ }
+ }
+
+ return result;
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/QueryEngineResultsPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/QueryEngineResultsPostMethodInvocationProcessor.java
index 298f56f95e..397fe98922 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/QueryEngineResultsPostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/QueryEngineResultsPostMethodInvocationProcessor.java
@@ -52,26 +52,33 @@ public class QueryEngineResultsPostMethodInvocationProcessor extends BasePostMet
@Override
public T process(T object)
{
- QueryEngineResults queryEngineResults = getClassName().cast(object);
- Map, ResultSet> resultsMap = queryEngineResults.getResults();
- Map, ResultSet> returnMap = new HashMap<>();
- BasePostMethodInvocationProcessor processor = null;
+ T result = object;
- for (Entry, ResultSet> entry : resultsMap.entrySet())
+ if (result != null)
{
- ResultSet value = entry.getValue();
- if (processor == null)
+ QueryEngineResults queryEngineResults = getClassName().cast(result);
+ Map, ResultSet> resultsMap = queryEngineResults.getResults();
+ Map, ResultSet> returnMap = new HashMap<>();
+ BasePostMethodInvocationProcessor processor = null;
+
+ for (Entry, ResultSet> entry : resultsMap.entrySet())
{
- processor = getPostMethodInvocationProcessor().getProcessor(value);
+ ResultSet value = entry.getValue();
+ if (processor == null)
+ {
+ processor = getPostMethodInvocationProcessor().getProcessor(value);
+ }
+
+ ResultSet newResultSet = processor.process(value);
+ if (newResultSet != null)
+ {
+ returnMap.put(entry.getKey(), newResultSet);
+ }
}
- ResultSet newResultSet = processor.process(value);
- if (newResultSet != null)
- {
- returnMap.put(entry.getKey(), newResultSet);
- }
+ result = (T) new QueryEngineResults(returnMap);
}
- return (T) new QueryEngineResults(returnMap);
+ return result;
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ResultSetPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ResultSetPostMethodInvocationProcessor.java
index 81e5a322ae..4123b3967a 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ResultSetPostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/ResultSetPostMethodInvocationProcessor.java
@@ -61,7 +61,7 @@ public class ResultSetPostMethodInvocationProcessor extends BasePostMethodInvoca
if (result != null)
{
- ResultSet returnedObject = getClassName().cast(object);
+ ResultSet returnedObject = getClassName().cast(result);
BitSet inclusionMask = new BitSet(returnedObject.length());
FilteringResultSet filteringResultSet = new FilteringResultSet(returnedObject, inclusionMask);
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/StoreRefPostMethodInvocationProcessor.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/StoreRefPostMethodInvocationProcessor.java
index 2093953cff..f0f310c86f 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/StoreRefPostMethodInvocationProcessor.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/interceptor/processor/StoreRefPostMethodInvocationProcessor.java
@@ -29,7 +29,7 @@ import org.springframework.stereotype.Component;
* @since 3.0
*/
@Component
-public class StoreRefPostMethodInvocationProcessor extends AbstractPostMethodInvocationProcessor
+public class StoreRefPostMethodInvocationProcessor extends BasePostMethodInvocationProcessor
{
/**
* @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.BasePostMethodInvocationProcessor#getClassName()
@@ -44,10 +44,20 @@ public class StoreRefPostMethodInvocationProcessor extends AbstractPostMethodInv
* @see org.alfresco.module.org_alfresco_module_rm.classification.interceptor.processor.AbstractPostMethodInvocationProcessor#processSingleElement(java.lang.Object)
*/
@Override
- protected T processSingleElement(T object)
+ public T process(T object)
{
- StoreRef storeRef = getClassName().cast(object);
- NodeRef nodeRef = getNodeService().getRootNode(storeRef);
- return filter(nodeRef) == null ? null : object;
+ T result = object;
+
+ if (result != null)
+ {
+ StoreRef storeRef = getClassName().cast(result);
+ NodeRef nodeRef = getNodeService().getRootNode(storeRef);
+ if (filter(nodeRef) == null)
+ {
+ result = null;
+ }
+ }
+
+ return result;
}
}