[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...
Gavin King
gavin.king at jboss.com
Thu Jan 25 19:14:39 EST 2007
User: gavin
Date: 07/01/25 19:14:39
Modified: src/main/org/jboss/seam/core FacesMessages.java
Log:
fix JBSEAM-692
Revision Changes Path
1.27 +37 -11 jboss-seam/src/main/org/jboss/seam/core/FacesMessages.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: FacesMessages.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/FacesMessages.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- FacesMessages.java 21 Dec 2006 02:38:26 -0000 1.26
+++ FacesMessages.java 26 Jan 2007 00:14:39 -0000 1.27
@@ -39,20 +39,46 @@
private static final long serialVersionUID = -5395975397632138270L;
private transient List<Runnable> tasks;
- private List<FacesMessage> facesMessages = new ArrayList<FacesMessage>();
- private Map<String, List<FacesMessage>> keyedFacesMessages = new HashMap<String, List<FacesMessage>>();
+ private List<Message> facesMessages = new ArrayList<Message>();
+ private Map<String, List<Message>> keyedFacesMessages = new HashMap<String, List<Message>>();
+
+ /**
+ * Workaround for non-serializability of
+ * JSF FacesMessage.Severity class.
+ *
+ * @author Gavin King
+ *
+ */
+ class Message implements Serializable
+ {
+ private String summary;
+ private String detail;
+ private int severityOrdinal;
+
+ Message(FacesMessage fm)
+ {
+ summary = fm.getSummary();
+ detail = fm.getDetail();
+ severityOrdinal = fm.getSeverity().getOrdinal();
+ }
+
+ FacesMessage toFacesMessage()
+ {
+ return new FacesMessage( (Severity) FacesMessage.VALUES.get(severityOrdinal), summary, detail );
+ }
+ }
public void beforeRenderResponse()
{
- for (FacesMessage facesMessage: facesMessages)
+ for (Message message: facesMessages)
{
- FacesContext.getCurrentInstance().addMessage(null, facesMessage);
+ FacesContext.getCurrentInstance().addMessage( null,message.toFacesMessage() );
}
- for ( Map.Entry<String, List<FacesMessage>> entry: keyedFacesMessages.entrySet() )
+ for ( Map.Entry<String, List<Message>> entry: keyedFacesMessages.entrySet() )
{
- for ( FacesMessage msg: entry.getValue() )
+ for ( Message msg: entry.getValue() )
{
- FacesContext.getCurrentInstance().addMessage( entry.getKey(), msg );
+ FacesContext.getCurrentInstance().addMessage( entry.getKey(), msg.toFacesMessage() );
}
}
clear();
@@ -122,7 +148,7 @@
*/
public void add(FacesMessage facesMessage)
{
- facesMessages.add(facesMessage);
+ facesMessages.add( new Message(facesMessage) );
}
/**
@@ -132,13 +158,13 @@
public void add(String id, FacesMessage facesMessage)
{
String clientId = getClientId(id);
- List<FacesMessage> list = keyedFacesMessages.get(clientId);
+ List<Message> list = keyedFacesMessages.get(clientId);
if (list==null)
{
- list = new ArrayList<FacesMessage>();
+ list = new ArrayList<Message>();
keyedFacesMessages.put(clientId, list);
}
- list.add(facesMessage);
+ list.add( new Message(facesMessage) );
}
/**
More information about the jboss-cvs-commits
mailing list