[richfaces-svn-commits] JBoss Rich Faces SVN: r12351 - in trunk/ui/message/src: test/java/org/richfaces/component and 1 other directory.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Tue Jan 20 09:55:23 EST 2009
Author: nbelaevski
Date: 2009-01-20 09:55:23 -0500 (Tue, 20 Jan 2009)
New Revision: 12351
Modified:
trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java
trunk/ui/message/src/test/java/org/richfaces/component/UIMessagesTest.java
Log:
https://jira.jboss.org/jira/browse/RF-5830
Modified: trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java
===================================================================
--- trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java 2009-01-20 13:44:58 UTC (rev 12350)
+++ trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java 2009-01-20 14:55:23 UTC (rev 12351)
@@ -28,7 +28,6 @@
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import java.util.Map.Entry;
import javax.el.ELException;
import javax.el.ValueExpression;
@@ -299,10 +298,30 @@
* </p>
*/
private void writeObject(ObjectOutputStream out) throws IOException {
- out.writeUTF(clientId);
+ if (clientId != null) {
+ out.writeBoolean(true);
+ out.writeUTF(clientId);
+ } else {
+ out.writeBoolean(false);
+ }
+
out.writeInt(message.getSeverity().getOrdinal());
- out.writeUTF(message.getSummary());
- out.writeUTF(message.getDetail());
+
+ String summary = message.getSummary();
+ if (summary != null) {
+ out.writeBoolean(true);
+ out.writeUTF(summary);
+ } else {
+ out.writeBoolean(false);
+ }
+
+ String detail = message.getDetail();
+ if (detail != null) {
+ out.writeBoolean(true);
+ out.writeUTF(detail);
+ } else {
+ out.writeBoolean(false);
+ }
}
/**
@@ -313,14 +332,27 @@
*/
private void readObject(ObjectInputStream in) throws IOException,
ClassNotFoundException {
- clientId = in.readUTF();
+
+ if (in.readBoolean()) {
+ clientId = in.readUTF();
+ }
+
Severity severity = FacesMessage.SEVERITY_INFO;
int ordinal = in.readInt();
if (ordinal >= 0 && ordinal < FacesMessage.VALUES.size()) {
severity = (Severity) FacesMessage.VALUES.get(ordinal);
}
- String summary = in.readUTF();
- String detail = in.readUTF();
+
+ String summary = null;
+ if (in.readBoolean()) {
+ summary = in.readUTF();
+ }
+
+ String detail = null;
+ if (in.readBoolean()) {
+ detail = in.readUTF();
+ }
+
message = new FacesMessage(severity, summary, detail);
}
Modified: trunk/ui/message/src/test/java/org/richfaces/component/UIMessagesTest.java
===================================================================
--- trunk/ui/message/src/test/java/org/richfaces/component/UIMessagesTest.java 2009-01-20 13:44:58 UTC (rev 12350)
+++ trunk/ui/message/src/test/java/org/richfaces/component/UIMessagesTest.java 2009-01-20 14:55:23 UTC (rev 12351)
@@ -3,7 +3,11 @@
*/
package org.richfaces.component;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -215,6 +219,59 @@
uiMessages.addMessagesForId(facesContext, INPUT_ID, severenities);
assertEquals(1, uiMessages.getRenderedMessages().size());
}
+
+ public void testMessageSerialization() throws Exception {
+ UIRichMessages.FacesMessageWithId message = saveRestore(new UIRichMessages.FacesMessageWithId("clientId",
+ new FacesMessage(FacesMessage.SEVERITY_INFO, "summary", "detail")));
+
+ assertEquals("clientId", message.getClientId());
+ assertNotNull(message.getMessage());
+ assertEquals(FacesMessage.SEVERITY_INFO, message.getMessage().getSeverity());
+ assertEquals("summary", message.getMessage().getSummary());
+ assertEquals("detail", message.getMessage().getDetail());
+
+ message = saveRestore(new UIRichMessages.FacesMessageWithId(null,
+ new FacesMessage()));
+
+ assertNull(message.getClientId());
+ assertNotNull(message.getMessage());
+ assertNull(message.getMessage().getSummary());
+ assertNull(message.getMessage().getDetail());
+
+ message = saveRestore(new UIRichMessages.FacesMessageWithId(null,
+ new FacesMessage("summary")));
+
+ assertNull(message.getClientId());
+ assertNotNull(message.getMessage());
+ assertEquals("summary", message.getMessage().getSummary());
+ assertEquals("summary", message.getMessage().getDetail());
+
+ message = saveRestore(new UIRichMessages.FacesMessageWithId(null,
+ new FacesMessage("summary", "detail")));
+
+ assertNull(message.getClientId());
+ assertNotNull(message.getMessage());
+ assertEquals("summary", message.getMessage().getSummary());
+ assertEquals("detail", message.getMessage().getDetail());
+
+ }
+
+ private <T> T saveRestore(T t) throws IOException, ClassNotFoundException {
+ T newTInstance = null;
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+
+ oos.writeObject(t);
+ oos.close();
+
+ ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ newTInstance = (T) ois.readObject();
+ ois.close();
+
+ return newTInstance;
+ }
+
/**
* @return
*/
More information about the richfaces-svn-commits
mailing list