summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2014-10-03 17:30:41 +0200
committerAndrew Branson <andrew.branson@cern.ch>2014-10-03 17:30:41 +0200
commit275d0bbf555c8917be82ce4cc21eb4cabb00f4c5 (patch)
treeddcc6b14077d90d1b970b67829f07120547dbb62 /src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java
parenta139f95bfeca603333b8c0310ae09c6805e58584 (diff)
Huge exception overhaul: Merged ClusterStorageException with
PersistencyException. Replaced MembershipException with InvalidCollectionModification CORBA Exception. Made all predef steps throw more accurate exceptions when they go wrong, and let more exceptions bubble through from underneath.
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java
index 6dd7e0a..e41411b 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/WriteProperty.java
@@ -22,12 +22,13 @@ package com.c2kernel.lifecycle.instance.predefined;
import java.util.Arrays;
-import com.c2kernel.common.InvalidDataException;
-import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.common.InvalidData;
+import com.c2kernel.common.ObjectCannotBeUpdated;
+import com.c2kernel.common.ObjectNotFound;
+import com.c2kernel.common.PersistencyException;
import com.c2kernel.lookup.AgentPath;
import com.c2kernel.lookup.ItemPath;
import com.c2kernel.persistency.ClusterStorage;
-import com.c2kernel.persistency.ClusterStorageException;
import com.c2kernel.process.Gateway;
import com.c2kernel.property.Property;
import com.c2kernel.utils.Logger;
@@ -50,13 +51,13 @@ public class WriteProperty extends PredefinedStep
//requestdata is xmlstring
@Override
protected String runActivityLogic(AgentPath agent, ItemPath item,
- int transitionID, String requestData) throws InvalidDataException {
+ int transitionID, String requestData) throws InvalidData, ObjectCannotBeUpdated, ObjectNotFound, PersistencyException {
String[] params = getDataList(requestData);
if (Logger.doLog(3)) Logger.msg(3, "WriteProperty: called by "+agent+" on "+item+" with parameters "+Arrays.toString(params));
if (params.length != 2)
- throw new InvalidDataException("WriteProperty: invalid parameters "+Arrays.toString(params), "");
+ throw new InvalidData("WriteProperty: invalid parameters "+Arrays.toString(params));
String name = params[0];
String newValue = params[1];
@@ -66,13 +67,11 @@ public class WriteProperty extends PredefinedStep
try {
prop = (Property)Gateway.getStorage().get(item, ClusterStorage.PROPERTY+"/"+name, null);
if (!prop.isMutable() && !newValue.equals(prop.getValue()))
- throw new InvalidDataException("WriteProperty: Property '"+name+"' is not mutable.", "");
+ throw new ObjectCannotBeUpdated("WriteProperty: Property '"+name+"' is not mutable.");
prop.setValue(newValue);
Gateway.getStorage().put(item, prop, null);
- } catch (ObjectNotFoundException e) {
- throw new InvalidDataException("WriteProperty: Property '"+name+"' not found.", "");
- } catch (ClusterStorageException e) {
- throw unknownException(e);
+ } catch (ObjectNotFound e) {
+ throw new ObjectNotFound("WriteProperty: Property '"+name+"' not found.");
}
return requestData;