summaryrefslogtreecommitdiff
path: root/sources/core/VSTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/core/VSTask.java')
-rw-r--r--sources/core/VSTask.java26
1 files changed, 20 insertions, 6 deletions
diff --git a/sources/core/VSTask.java b/sources/core/VSTask.java
index bbc9cec..c06aad2 100644
--- a/sources/core/VSTask.java
+++ b/sources/core/VSTask.java
@@ -105,12 +105,11 @@ public class VSTask implements Comparable, VSSerializable {
VSAbstractEvent event = task.getEvent();
try {
- VSAbstractEvent copy = event.getCopy();
// Use the copy of the event object
- event = copy;
+ event = event.getCopy();
+
} catch (VSEventNotCopyableException e) {
// Use the original event object
- System.out.println(e);
}
init(task.getTaskTime(),
@@ -313,9 +312,24 @@ public class VSTask implements Comparable, VSSerializable {
* @param process the process
*/
public void setProcess(VSProcess process) {
- this.process = process;
- // TODO:: use the process' specific event object
- //this.event = null;
+ /* Only do it if the process differs */
+ if (!this.process.equals(process)) {
+ this.process = process;
+
+ try {
+ // Use the copy of the event object
+ event = event.getCopy(process);
+
+ } catch (VSEventNotCopyableException e) {
+ if (event instanceof VSAbstractProtocol) {
+ String eventShortname = event.getShortname();
+ event = process.getProtocolObject(event.getClassname());
+ event.setShortname(eventShortname);
+ } else {
+ System.out.println(e);
+ }
+ }
+ }
}
/**