dev@javaserverfaces.java.net

[REVIEW] Be good serializing citizens

From: Ryan Lubke <Ryan.Lubke_at_Sun.COM>
Date: Wed, 18 May 2005 16:06:33 -0400

Ensure Serializable classes include a serialVersionUID field.


SECTION: Modified Files
----------------------------
M jsf-api/build.xml
M jsf-ri/build.xml
  - added replace tasks to replace @serialVersionUID@ with a the UID
    produced by the serialver tool

M jsf-api/template-src/MethodBindingMethodExpressionAdapter.java
M jsf-api/template-src/MethodExpressionMethodBindingAdapter.java
M jsf-api/template-src/ValueBindingValueExpressionAdapter.java
M jsf-api/template-src/ValueExpressionValueBindingAdapter.java
    - added field for serialVersionUID with an intial value of
@serialVersionUID@

M jsf-api/src/javax/faces/webapp/AttributeTag.java
M jsf-api/src/javax/faces/webapp/ConverterTag.java
M jsf-api/src/javax/faces/webapp/ValidatorTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ActionListenerTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertDateTimeTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertNumberTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateDoubleRangeTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLengthTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLongRangeTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateRequiredTag.java
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ValueChangeListenerTag.java
M jsf-ri/src/com/sun/faces/util/TreeStructure.java
   - added generated serialVersionUIDs

SECTION: Diffs
----------------------------
Index: jsf-api/build.xml
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-api/build.xml,v
retrieving revision 1.144
diff -u -r1.144 build.xml
--- jsf-api/build.xml 5 May 2005 20:50:54 -0000 1.144
+++ jsf-api/build.xml 18 May 2005 20:08:32 -0000
@@ -308,6 +308,22 @@
           todir="${build.generate}/javax/faces/webapp"
           filtering="true"/>
 
+ <replace
file="${build.generate}/javax/faces/component/MethodBindingMethodExpressionAdapter.java"
+ token="@serialVersionUID@"
+ value="7334926223014401689L"/>
+
+ <replace
file="${build.generate}/javax/faces/component/MethodExpressionMethodBindingAdapter.java"
+ token="@serialVersionUID@"
+ value="-1822420567946048452L"/>
+
+ <replace
file="${build.generate}/javax/faces/component/ValueExpressionValueBindingAdapter.java"
+ token="@serialVersionUID@"
+ value="2388977392466671243L"/>
+
+ <replace
file="${build.generate}/javax/faces/component/ValueBindingValueExpressionAdapter.java"
+ token="@serialVersionUID@"
+ value="-8015491904782686906L"/>
+
   </target>
 
 
Index: jsf-api/src/javax/faces/webapp/AttributeTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-api/src/javax/faces/webapp/AttributeTag.java,v
retrieving revision 1.14
diff -u -r1.14 AttributeTag.java
--- jsf-api/src/javax/faces/webapp/AttributeTag.java 5 May 2005
20:51:13 -0000 1.14
+++ jsf-api/src/javax/faces/webapp/AttributeTag.java 18 May 2005
20:08:32 -0000
@@ -32,6 +32,12 @@
 public class AttributeTag extends TagSupport {
 
 
+ // ----------------------------------------------------------
Static Members
+
+
+ private static final long serialVersionUID = -7782950243436672334L;
+
+
     // -------------------------------------------------------------
Attributes
 
 
Index: jsf-api/src/javax/faces/webapp/ConverterTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-api/src/javax/faces/webapp/ConverterTag.java,v
retrieving revision 1.15
diff -u -r1.15 ConverterTag.java
--- jsf-api/src/javax/faces/webapp/ConverterTag.java 5 May 2005
20:51:13 -0000 1.15
+++ jsf-api/src/javax/faces/webapp/ConverterTag.java 18 May 2005
20:08:32 -0000
@@ -60,6 +60,12 @@
 
 public class ConverterTag extends TagSupport {
 
+
+ // ----------------------------------------------------------
Static Members
+
+
+ private static final long serialVersionUID = -5909792518081427720L;
+
 
     // --------------------------------------------------------------
Attributes
 
Index: jsf-api/src/javax/faces/webapp/ValidatorTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-api/src/javax/faces/webapp/ValidatorTag.java,v
retrieving revision 1.21
diff -u -r1.21 ValidatorTag.java
--- jsf-api/src/javax/faces/webapp/ValidatorTag.java 5 May 2005
20:51:14 -0000 1.21
+++ jsf-api/src/javax/faces/webapp/ValidatorTag.java 18 May 2005
20:08:32 -0000
@@ -57,6 +57,12 @@
 public class ValidatorTag extends TagSupport {
 
 
+ // ----------------------------------------------------------
Static Members
+
+
+ private static final long serialVersionUID = -5562623615418158868L;
+
+
     // -------------------------------------------------------------
Attributes
 
     /**
Index: jsf-api/template-src/MethodBindingMethodExpressionAdapter.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-api/template-src/MethodBindingMethodExpressionAdapter.java,v
retrieving revision 1.1
diff -u -r1.1 MethodBindingMethodExpressionAdapter.java
--- jsf-api/template-src/MethodBindingMethodExpressionAdapter.java 5
May 2005 21:55:41 -0000 1.1
+++ jsf-api/template-src/MethodBindingMethodExpressionAdapter.java 18
May 2005 20:08:33 -0000
@@ -27,7 +27,9 @@
  */
 @protection@ class MethodBindingMethodExpressionAdapter extends
MethodBinding implements StateHolder,
     Serializable {
-
+
+ private static final long serialVersionUID = @serialVersionUID@;
+
     private MethodExpression methodExpression= null;
     private boolean tranzient;
 
Index: jsf-api/template-src/MethodExpressionMethodBindingAdapter.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-api/template-src/MethodExpressionMethodBindingAdapter.java,v
retrieving revision 1.1
diff -u -r1.1 MethodExpressionMethodBindingAdapter.java
--- jsf-api/template-src/MethodExpressionMethodBindingAdapter.java 5
May 2005 21:55:41 -0000 1.1
+++ jsf-api/template-src/MethodExpressionMethodBindingAdapter.java 18
May 2005 20:08:33 -0000
@@ -26,6 +26,8 @@
 
 @protection@ class MethodExpressionMethodBindingAdapter extends
MethodExpression implements Serializable, StateHolder {
 
+ private static final long serialVersionUID = @serialVersionUID@;
+
     public MethodExpressionMethodBindingAdapter() {} // for StateHolder
 
     private MethodBinding binding = null;
Index: jsf-api/template-src/ValueBindingValueExpressionAdapter.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-api/template-src/ValueBindingValueExpressionAdapter.java,v
retrieving revision 1.1
diff -u -r1.1 ValueBindingValueExpressionAdapter.java
--- jsf-api/template-src/ValueBindingValueExpressionAdapter.java 5
May 2005 21:55:41 -0000 1.1
+++ jsf-api/template-src/ValueBindingValueExpressionAdapter.java 18
May 2005 20:08:33 -0000
@@ -28,7 +28,9 @@
  */
 @protection@ class ValueBindingValueExpressionAdapter extends
ValueBinding implements StateHolder,
     Serializable {
-
+
+ private static final long serialVersionUID = @serialVersionUID@;
+
     private ValueExpression valueExpression= null;
     private boolean tranzient;
 
Index: jsf-api/template-src/ValueExpressionValueBindingAdapter.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-api/template-src/ValueExpressionValueBindingAdapter.java,v
retrieving revision 1.1
diff -u -r1.1 ValueExpressionValueBindingAdapter.java
--- jsf-api/template-src/ValueExpressionValueBindingAdapter.java 5
May 2005 21:55:41 -0000 1.1
+++ jsf-api/template-src/ValueExpressionValueBindingAdapter.java 18
May 2005 20:08:33 -0000
@@ -25,6 +25,8 @@
 
 @protection@ class ValueExpressionValueBindingAdapter extends
ValueExpression implements Serializable, StateHolder {
 
+ private static final long serialVersionUID = @serialVersionUID@;
+
     public ValueExpressionValueBindingAdapter() {}
 
     private ValueBinding binding = null;
Index: jsf-ri/build.xml
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/build.xml,v
retrieving revision 1.179
diff -u -r1.179 build.xml
--- jsf-ri/build.xml 11 May 2005 13:59:00 -0000 1.179
+++ jsf-ri/build.xml 18 May 2005 20:08:35 -0000
@@ -227,6 +227,23 @@
       </fileset>
     </copy>
 
+ <replace
file="${build.generate}/com/sun/faces/application/MethodBindingMethodExpressionAdapter.java"
+ token="@serialVersionUID@"
+ value="6351778415298720238L"/>
+
 
+ <replace
file="${build.generate}/com/sun/faces/application/MethodExpressionMethodBindingAdapter.java"
+ token="@serialVersionUID@"
+ value="5639227653537610567L"/>
+
 
+ <replace
file="${build.generate}/com/sun/faces/application/ValueExpressionValueBindingAdapter.java"
+ token="@serialVersionUID@"
+ value="2990621816592041196L"/>
+
 
+ <replace
file="${build.generate}/com/sun/faces/application/ValueBindingValueExpressionAdapter.java"
+ token="@serialVersionUID@"
+ value="7410146713650507654L"/>
+
+
   </target>
 
   <target name="check.taglib.generation.necessity" if="jsf-tools">
Index: jsf-ri/src/com/sun/faces/taglib/jsf_core/ActionListenerTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/taglib/jsf_core/ActionListenerTag.java,v
retrieving revision 1.20
diff -u -r1.20 ActionListenerTag.java
--- jsf-ri/src/com/sun/faces/taglib/jsf_core/ActionListenerTag.java
 16 May 2005 20:16:32 -0000 1.20
+++ jsf-ri/src/com/sun/faces/taglib/jsf_core/ActionListenerTag.java
 18 May 2005 20:08:35 -0000
@@ -57,7 +57,7 @@
 
     // -------------------------------------------------------------
Attributes
 
-
+ private static final long serialVersionUID = -5222351612904952740L;
     private static final Log log =
LogFactory.getLog(ActionListenerTag.class);
 
     /**
Index: jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertDateTimeTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertDateTimeTag.java,v
retrieving revision 1.15
diff -u -r1.15 ConvertDateTimeTag.java
--- jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertDateTimeTag.java
 5 May 2005 20:51:26 -0000 1.15
+++ jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertDateTimeTag.java
 18 May 2005 20:08:36 -0000
@@ -32,6 +32,7 @@
 
 public class ConvertDateTimeTag extends ConverterTag {
 
+ private static final long serialVersionUID = -5815655767093677438L;
     private static ValueExpression CONVERTER_ID_EXPR = null;
 
     //
Index: jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertNumberTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertNumberTag.java,v
retrieving revision 1.13
diff -u -r1.13 ConvertNumberTag.java
--- jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertNumberTag.java 5
May 2005 20:51:26 -0000 1.13
+++ jsf-ri/src/com/sun/faces/taglib/jsf_core/ConvertNumberTag.java 18
May 2005 20:08:36 -0000
@@ -30,6 +30,7 @@
 
 public class ConvertNumberTag extends ConverterTag {
 
+ private static final long serialVersionUID = -2710405278792415110L;
     private static ValueExpression CONVERTER_ID_EXPR = null;
 
     //
Index: jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateDoubleRangeTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateDoubleRangeTag.java,v
retrieving revision 1.13
diff -u -r1.13 ValidateDoubleRangeTag.java
---
jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateDoubleRangeTag.java
 5 May 2005 20:51:27 -0000 1.13
+++
jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateDoubleRangeTag.java
 18 May 2005 20:08:36 -0000
@@ -28,7 +28,8 @@
 
 public class ValidateDoubleRangeTag extends MaxMinValidatorTag {
 
-private static ValueExpression VALIDATOR_ID_EXPR = null;
+ private static final long serialVersionUID = 1677210040390032609L;
+ private static ValueExpression VALIDATOR_ID_EXPR = null;
 
 //
 // Instance Variables
Index: jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLengthTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLengthTag.java,v
retrieving revision 1.13
diff -u -r1.13 ValidateLengthTag.java
--- jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLengthTag.java 5
May 2005 20:51:27 -0000 1.13
+++ jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLengthTag.java
 18 May 2005 20:08:36 -0000
@@ -28,6 +28,7 @@
 
 public class ValidateLengthTag extends MaxMinValidatorTag {
 
+ private static final long serialVersionUID = -3594596279980791500L;
     private static ValueExpression VALIDATOR_ID_EXPR = null;
 
 
Index: jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLongRangeTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLongRangeTag.java,v
retrieving revision 1.13
diff -u -r1.13 ValidateLongRangeTag.java
--- jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLongRangeTag.java
 5 May 2005 20:51:27 -0000 1.13
+++ jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateLongRangeTag.java
 18 May 2005 20:08:36 -0000
@@ -28,6 +28,7 @@
 
 public class ValidateLongRangeTag extends MaxMinValidatorTag {
 
+ private static final long serialVersionUID = 292617728229736800L;
     private static ValueExpression VALIDATOR_ID_EXPR = null;
 
 // Attribute Instance Variables
Index: jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateRequiredTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateRequiredTag.java,v
retrieving revision 1.12
diff -u -r1.12 ValidateRequiredTag.java
--- jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateRequiredTag.java
 5 May 2005 20:51:27 -0000 1.12
+++ jsf-ri/src/com/sun/faces/taglib/jsf_core/ValidateRequiredTag.java
 18 May 2005 20:08:36 -0000
@@ -27,7 +27,8 @@
 
 public class ValidateRequiredTag extends ValidatorTag {
 
- private static ValueExpression VALIDATOR_ID_EXPR = null;
+ private static final long serialVersionUID = -4925861676709072353L;
+ private static ValueExpression VALIDATOR_ID_EXPR = null;
 
 //
 // Constructors and Initializers
Index: jsf-ri/src/com/sun/faces/taglib/jsf_core/ValueChangeListenerTag.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/taglib/jsf_core/ValueChangeListenerTag.java,v
retrieving revision 1.13
diff -u -r1.13 ValueChangeListenerTag.java
---
jsf-ri/src/com/sun/faces/taglib/jsf_core/ValueChangeListenerTag.java
 16 May 2005 20:16:32 -0000 1.13
+++
jsf-ri/src/com/sun/faces/taglib/jsf_core/ValueChangeListenerTag.java
 18 May 2005 20:08:36 -0000
@@ -57,6 +57,7 @@
 
     // -------------------------------------------------------------
Attributes
 
+ private static final long serialVersionUID = -212845116876281363L;
     private static final Log log =
         LogFactory.getLog(ValueChangeListenerTag.class);
 
Index: jsf-ri/src/com/sun/faces/util/TreeStructure.java
===================================================================
RCS file:
/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/util/TreeStructure.java,v
retrieving revision 1.8
diff -u -r1.8 TreeStructure.java
--- jsf-ri/src/com/sun/faces/util/TreeStructure.java 12 Oct 2004
14:39:55 -0000 1.8
+++ jsf-ri/src/com/sun/faces/util/TreeStructure.java 18 May 2005
20:08:37 -0000
@@ -9,20 +9,22 @@
 
 package com.sun.faces.util;
 
-import javax.faces.FacesException;
-import javax.faces.component.UIComponent;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+
 /**
  * TreeStructure is a class that represents the structure of a UIComponent
  * instance. This class plays a key role in saving and restoring the
structure
  * of the component tree.
  */
 public class TreeStructure implements java.io.Serializable {
+
+ private static final long serialVersionUID = 8320767450484935667L;
 
     ArrayList children = null;
     HashMap facets = null;