Added Serializable check so exception handling is consistent across 2.2.x and 3.0

This commit is contained in:
Michael Minella
2014-05-21 13:50:15 -05:00
parent 2c0e24f4a3
commit a0d9b7cea9

View File

@@ -15,10 +15,6 @@
*/
package org.springframework.batch.core.repository.dao;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.springframework.batch.core.repository.ExecutionContextSerializer;
import org.springframework.core.serializer.DefaultDeserializer;
import org.springframework.core.serializer.DefaultSerializer;
@@ -26,6 +22,12 @@ import org.springframework.core.serializer.Deserializer;
import org.springframework.core.serializer.Serializer;
import org.springframework.util.Assert;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.Map;
/**
* An implementation of the {@link ExecutionContextSerializer} using the default
* serialization implementations from Spring ({@link DefaultSerializer} and
@@ -52,6 +54,9 @@ public class DefaultExecutionContextSerializer implements ExecutionContextSerial
public void serialize(Object context, OutputStream out) throws IOException {
Assert.notNull(context);
Assert.notNull(out);
for(Object value : ((Map)context).values()) {
Assert.isInstanceOf(Serializable.class, value, "Value: [ " + value + "must be serializable.");
}
serializer.serialize(context, out);
}