diff --git a/repository/src/main/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuter.java b/repository/src/main/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuter.java
index 8f80af25db..51e559ae51 100644
--- a/repository/src/main/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuter.java
+++ b/repository/src/main/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuter.java
@@ -4,21 +4,21 @@
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
- * This file is part of the Alfresco software.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
- *
+ *
* 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 .
* #L%
@@ -31,6 +31,7 @@ import java.util.List;
import java.util.Map;
import org.alfresco.repo.action.ParameterDefinitionImpl;
+import org.alfresco.repo.action.access.ActionAccessRestriction;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ParameterDefinition;
@@ -42,7 +43,7 @@ import org.alfresco.service.transaction.TransactionService;
/**
* Add features action executor implementation.
- *
+ *
* @author Roy Wetherall
*/
public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
@@ -64,7 +65,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
/**
* Set the node service
- *
+ *
* @param nodeService
* the node service
*/
@@ -75,7 +76,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
/**
* Set the transaction service
- *
+ *
* @param transactionService
* the transaction service
*/
@@ -115,6 +116,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
// Build the aspect details
Map paramValues = ruleAction.getParameterValues();
+ removeActionContextParameter(paramValues);
for (Map.Entry entry : paramValues.entrySet())
{
if (entry.getKey().equals(PARAM_ASPECT_NAME) == true)
@@ -147,4 +149,12 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
paramList.add(new ParameterDefinitionImpl(PARAM_ASPECT_NAME, DataTypeDefinition.QNAME, true, getParamDisplayLabel(PARAM_ASPECT_NAME), false, "ac-aspects"));
}
+ /**
+ * Remove actionContext from the parameter values to declassify as an adhoc property
+ */
+ private void removeActionContextParameter(Map paramValues)
+ {
+ paramValues.remove(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME);
+ }
+
}
diff --git a/repository/src/test/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuterTest.java b/repository/src/test/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuterTest.java
index 19b12b2208..167dfce62c 100644
--- a/repository/src/test/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuterTest.java
+++ b/repository/src/test/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuterTest.java
@@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.action.ActionImpl;
+import org.alfresco.repo.action.access.ActionAccessRestriction;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.service.cmr.action.ActionDefinition;
import org.alfresco.service.cmr.action.ParameterDefinition;
@@ -162,4 +163,20 @@ public class AddFeaturesActionExecuterTest extends BaseSpringTest
I18NUtil.setLocale(Locale.getDefault());
}
+
+ /**
+ * Test check actionContext param is removed from adhoc properties
+ */
+ @Test
+ public void testCheckActionContext()
+ {
+ // Execute the action
+ ActionImpl action = new ActionImpl(null, ID, AddFeaturesActionExecuter.NAME, null);
+ action.setParameterValue(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME, ActionAccessRestriction.V1_ACTION_CONTEXT);
+ action.setParameterValue(AddFeaturesActionExecuter.PARAM_ASPECT_NAME, ContentModel.ASPECT_CLASSIFIABLE);
+ this.executer.execute(action, this.nodeRef);
+
+ // Ensure the actionContext parameter has been removed
+ assertFalse(nodeService.getProperties(this.nodeRef).containsKey(QName.createQName(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME)));
+ }
}