allow the replacement of non-serializable objects.
Project: http://git-wip-us.apache.org/repos/asf/ode-jacob/repo Commit: http://git-wip-us.apache.org/repos/asf/ode-jacob/commit/05e88d3d Tree: http://git-wip-us.apache.org/repos/asf/ode-jacob/tree/05e88d3d Diff: http://git-wip-us.apache.org/repos/asf/ode-jacob/diff/05e88d3d Branch: refs/heads/2.0a Commit: 05e88d3d46adebe07813dbea55997aeac335c9b3 Parents: e7ce2b4 Author: Tammo van Lessen <[email protected]> Authored: Wed Jul 23 16:51:48 2014 +0200 Committer: Tammo van Lessen <[email protected]> Committed: Wed Jul 23 16:51:48 2014 +0200 ---------------------------------------------------------------------- src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/05e88d3d/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java ---------------------------------------------------------------------- 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 a6c0837..e046b73 100644 --- a/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java +++ b/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java @@ -681,8 +681,9 @@ public class ExecutionQueueImpl implements ExecutionQueue { * @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.ChannelProxy) {
