allow the replacement of non-serializable objects.
diff --git a/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java b/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
index 42393f8..ce872fa 100644
--- a/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
+++ b/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
@@ -641,8 +641,9 @@
* @throws IOException
*/
protected Object replaceObject(Object obj) throws IOException {
- if (!Serializable.class.isAssignableFrom(obj.getClass())) {
- throw new IllegalArgumentException("Cannot replace non Serializable instance of " + obj.getClass());
+ if (!Serializable.class.isAssignableFrom(obj.getClass()) &&
+ !(_replacementMap != null && _replacementMap.isReplaceable(obj))) {
+ throw new IllegalArgumentException("Cannot replace non-serializable or non-replacable instance of " + obj.getClass());
}
if (obj instanceof org.apache.ode.jacob.oo.ChannelProxy) {