diff --git a/spring-faces/src/main/java/org/springframework/faces/model/OneSelectionTrackingListDataModel.java b/spring-faces/src/main/java/org/springframework/faces/model/OneSelectionTrackingListDataModel.java index 499ff285..a1612141 100644 --- a/spring-faces/src/main/java/org/springframework/faces/model/OneSelectionTrackingListDataModel.java +++ b/spring-faces/src/main/java/org/springframework/faces/model/OneSelectionTrackingListDataModel.java @@ -24,9 +24,10 @@ import org.springframework.util.Assert; /** * A {@link DataModel} implementation that tracks the currently selected row, allowing only one selection at a time. - * + * * @author Jeremy Grelle */ +@SuppressWarnings("serial") public class OneSelectionTrackingListDataModel extends SerializableListDataModel implements SelectionAware { /** diff --git a/spring-faces/src/main/java/org/springframework/faces/model/SerializableListDataModel.java b/spring-faces/src/main/java/org/springframework/faces/model/SerializableListDataModel.java index a65c2cdb..e9cd793e 100644 --- a/spring-faces/src/main/java/org/springframework/faces/model/SerializableListDataModel.java +++ b/spring-faces/src/main/java/org/springframework/faces/model/SerializableListDataModel.java @@ -15,6 +15,9 @@ */ package org.springframework.faces.model; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -29,8 +32,10 @@ import org.springframework.util.Assert; * @author Jeremy Grelle * @author Phillip Webb */ +@SuppressWarnings("serial") public class SerializableListDataModel extends ListDataModel implements Serializable { + public SerializableListDataModel() { this(new ArrayList()); } @@ -59,6 +64,16 @@ public class SerializableListDataModel extends ListDataModel implements Se super.setWrappedData(data); } + private void writeObject(ObjectOutputStream oos) throws IOException { + oos.writeObject(getWrappedData()); + oos.write(getRowIndex()); + } + + private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { + setWrappedData(ois.readObject()); + setRowIndex(ois.read()); + } + public String toString() { return getWrappedData().toString(); }