diff --git a/spring-webflow-reference/src/flow-inheritance.xml b/spring-webflow-reference/src/flow-inheritance.xml
index 60af3e48..7d469792 100644
--- a/spring-webflow-reference/src/flow-inheritance.xml
+++ b/spring-webflow-reference/src/flow-inheritance.xml
@@ -149,7 +149,7 @@
subflow-state: id
- transition: on
+ transition: on and on-exception
view-state: id
diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/TransitionModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/TransitionModel.java
index 6b6c0c7c..ee15ba9d 100644
--- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/TransitionModel.java
+++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/TransitionModel.java
@@ -60,7 +60,8 @@ public class TransitionModel extends AbstractModel {
return false;
}
TransitionModel transition = (TransitionModel) model;
- return ObjectUtils.nullSafeEquals(getOn(), transition.getOn());
+ return ObjectUtils.nullSafeEquals(getOn(), transition.getOn())
+ && ObjectUtils.nullSafeEquals(getOnException(), transition.getOnException());
}
public void merge(Model model) {
diff --git a/spring-webflow/src/test/java/org/springframework/webflow/engine/model/TransitionModelTests.java b/spring-webflow/src/test/java/org/springframework/webflow/engine/model/TransitionModelTests.java
index aee44c52..0e1cd5a9 100644
--- a/spring-webflow/src/test/java/org/springframework/webflow/engine/model/TransitionModelTests.java
+++ b/spring-webflow/src/test/java/org/springframework/webflow/engine/model/TransitionModelTests.java
@@ -24,7 +24,17 @@ public class TransitionModelTests extends TestCase {
public void testMergeable() {
TransitionModel child = new TransitionModel();
- child.setOn("child");
+ child.setOn("event");
+ TransitionModel parent = new TransitionModel();
+ parent.setOn("event");
+ assertTrue(child.isMergeableWith(parent));
+ }
+
+ public void testMergeableOnException() {
+ TransitionModel child = new TransitionModel();
+ child.setOnException("expception");
+ TransitionModel parent = new TransitionModel();
+ parent.setOnException("exception");
assertTrue(child.isMergeableWith(child));
}
@@ -36,6 +46,14 @@ public class TransitionModelTests extends TestCase {
assertFalse(child.isMergeableWith(parent));
}
+ public void testNotMergeableOnException() {
+ TransitionModel child = new TransitionModel();
+ child.setOnException("child");
+ TransitionModel parent = new TransitionModel();
+ parent.setOnException("parent");
+ assertFalse(child.isMergeableWith(parent));
+ }
+
public void testNotMergeableWithNull() {
TransitionModel child = new TransitionModel();
assertFalse(child.isMergeableWith(null));