Improve example to gracefully handle imporoper use of dsl
git-svn-id: https://svn.apache.org/repos/asf/ode/trunk@1435620 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java b/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
index fce098a..d2482fe 100644
--- a/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
+++ b/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
@@ -65,6 +65,7 @@
.order("1")
.and().then().order("2")
.and().then().order("3")
+ .and().then().and().then().and().then().and().then()
.and().no().andthen();
}
@@ -94,6 +95,9 @@
return this;
}
public PrinterProcess then() {
+ if (message == null) {
+ return this;
+ }
next = new PrinterProcess(printer, this);
return next;
}
@@ -106,14 +110,16 @@
@Override
public void run() {
- object(receive(printer.print(message), new Synch() {
- private static final long serialVersionUID = 1L;
- public void ret() {
- if (next != null) {
- next.run();
+ if (message != null) {
+ object(receive(printer.print(message), new Synch() {
+ private static final long serialVersionUID = 1L;
+ public void ret() {
+ if (next != null) {
+ next.run();
+ }
}
- }
- }));
+ }));
+ }
}
}
}