diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java index b45daaf7f1..a96aeca46c 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java @@ -41,6 +41,9 @@ import org.springframework.extensions.webscripts.WebScriptRequest; */ public class RmEventPut extends RMEventBase { + /** Parameter names */ + public static final String PARAM_EVENTNAME = "eventname"; + /** Records management event service */ private RecordsManagementEventService rmEventService; @@ -72,8 +75,14 @@ public class RmEventPut extends RMEventBase json = new JSONObject(new JSONTokener(req.getContent().getContent())); // Check the event name - String eventName = getValue(json, "eventName"); - doCheck(eventName, "No event name was provided."); + Map templateVars = req.getServiceMatch().getTemplateVars(); + String eventName = templateVars.get(PARAM_EVENTNAME); + if (eventName == null || + eventName.isEmpty() || + rmEventService.existsEvent(eventName) == false) + { + throw new WebScriptException(Status.STATUS_NOT_FOUND, "No event name was provided."); + } // Check the event display label String eventDisplayLabel = getValue(json, "eventDisplayLabel"); diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/EventRestApiTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/EventRestApiTest.java index 8b8229278c..32039a3cf7 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/EventRestApiTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/EventRestApiTest.java @@ -181,6 +181,11 @@ public class EventRestApiTest extends BaseRMWebScriptTestCase implements Records assertEquals(EVENT_TYPE, eventObj.get(KEY_EVENT_TYPE)); // Bad requests + obj = new JSONObject(); + obj.put(KEY_EVENT_NAME, "cheese"); + obj.put(KEY_EVENT_DISPLAY_LABEL, "whatever"); + obj.put(KEY_EVENT_TYPE, EVENT_TYPE); + sendRequest(new PutRequest(GET_EVENTS_URL + "/cheese", obj.toString(), APPLICATION_JSON), 404); } finally