From 9be1e506944a1152dc4ed9b7ee7ad4debb35fd76 Mon Sep 17 00:00:00 2001 From: Doug Felt Date: Thu, 2 Jun 2005 22:41:51 +0000 Subject: [PATCH] ICU-4529 serializable classes need serialization uids X-SVN-Rev: 17783 --- .../com/ibm/icu/text/DateFormatSymbols.java | 2 +- icu4j/src/com/ibm/icu/text/DecimalFormat.java | 2 +- .../com/ibm/icu/text/DecimalFormatSymbols.java | 2 +- icu4j/src/com/ibm/icu/text/MeasureFormat.java | 1 + icu4j/src/com/ibm/icu/text/NumberFormat.java | 2 +- .../ibm/icu/text/RuleBasedNumberFormat.java | 18 +++++++++++------- .../src/com/ibm/icu/text/SimpleDateFormat.java | 2 +- icu4j/src/com/ibm/icu/text/UFormat.java | 2 ++ .../src/com/ibm/icu/util/BuddhistCalendar.java | 3 ++- icu4j/src/com/ibm/icu/util/CECalendar.java | 2 ++ icu4j/src/com/ibm/icu/util/Calendar.java | 5 +++++ .../src/com/ibm/icu/util/ChineseCalendar.java | 2 ++ icu4j/src/com/ibm/icu/util/CopticCalendar.java | 3 +++ icu4j/src/com/ibm/icu/util/Currency.java | 2 +- .../src/com/ibm/icu/util/EthiopicCalendar.java | 3 +++ .../com/ibm/icu/util/GregorianCalendar.java | 3 +++ icu4j/src/com/ibm/icu/util/HebrewCalendar.java | 2 ++ .../src/com/ibm/icu/util/IslamicCalendar.java | 2 ++ .../src/com/ibm/icu/util/JapaneseCalendar.java | 4 +++- icu4j/src/com/ibm/icu/util/STZInfo.java | 2 +- icu4j/src/com/ibm/icu/util/TimeZone.java | 2 +- icu4j/src/com/ibm/icu/util/ULocale.java | 2 +- 22 files changed, 50 insertions(+), 18 deletions(-) diff --git a/icu4j/src/com/ibm/icu/text/DateFormatSymbols.java b/icu4j/src/com/ibm/icu/text/DateFormatSymbols.java index da6d7ca8d82..12143c97ee3 100755 --- a/icu4j/src/com/ibm/icu/text/DateFormatSymbols.java +++ b/icu4j/src/com/ibm/icu/text/DateFormatSymbols.java @@ -219,7 +219,7 @@ public class DateFormatSymbols implements Serializable, Cloneable { String localPatternChars = null; /* use serialVersionUID from JDK 1.1.4 for interoperability */ - static final long serialVersionUID = -5987973545549424702L; + private static final long serialVersionUID = -5987973545549424702L; /** * Gets era strings. For example: "AD" and "BC". diff --git a/icu4j/src/com/ibm/icu/text/DecimalFormat.java b/icu4j/src/com/ibm/icu/text/DecimalFormat.java index a5ae030247b..1aa7a352436 100755 --- a/icu4j/src/com/ibm/icu/text/DecimalFormat.java +++ b/icu4j/src/com/ibm/icu/text/DecimalFormat.java @@ -4360,7 +4360,7 @@ public class DecimalFormat extends NumberFormat { static final int MAX_SCIENTIFIC_INTEGER_DIGITS = 8; // Proclaim JDK 1.1 serial compatibility. - static final long serialVersionUID = 864413376551465018L; + private static final long serialVersionUID = 864413376551465018L; /** * Cache to hold the NumberPattern of a Locale. diff --git a/icu4j/src/com/ibm/icu/text/DecimalFormatSymbols.java b/icu4j/src/com/ibm/icu/text/DecimalFormatSymbols.java index de4fb8bbe87..a399cbfa92c 100755 --- a/icu4j/src/com/ibm/icu/text/DecimalFormatSymbols.java +++ b/icu4j/src/com/ibm/icu/text/DecimalFormatSymbols.java @@ -830,7 +830,7 @@ final public class DecimalFormatSymbols implements Cloneable, Serializable { private ULocale ulocale; // Proclaim JDK 1.1 FCS compatibility - static final long serialVersionUID = 5772796243397350300L; + private static final long serialVersionUID = 5772796243397350300L; // The internal serial version which says which version was written // - 0 (default) for version up to JDK 1.1.5 diff --git a/icu4j/src/com/ibm/icu/text/MeasureFormat.java b/icu4j/src/com/ibm/icu/text/MeasureFormat.java index e12495f13d4..ed1482cf7f0 100644 --- a/icu4j/src/com/ibm/icu/text/MeasureFormat.java +++ b/icu4j/src/com/ibm/icu/text/MeasureFormat.java @@ -25,6 +25,7 @@ import com.ibm.icu.util.ULocale; * @deprecated This is a draft API and might change in a future release of ICU. */ public abstract class MeasureFormat extends UFormat { + // no serialVersionUID, can't instantiate /** * @internal diff --git a/icu4j/src/com/ibm/icu/text/NumberFormat.java b/icu4j/src/com/ibm/icu/text/NumberFormat.java index a1835805a38..f8d84ad83aa 100755 --- a/icu4j/src/com/ibm/icu/text/NumberFormat.java +++ b/icu4j/src/com/ibm/icu/text/NumberFormat.java @@ -1471,7 +1471,7 @@ public abstract class NumberFormat extends UFormat { // Removed "implements Cloneable" clause. Needs to update serialization // ID for backward compatibility. - static final long serialVersionUID = -2308460125733713944L; + private static final long serialVersionUID = -2308460125733713944L; /** * Empty constructor. Public for compatibily with JDK which lets the diff --git a/icu4j/src/com/ibm/icu/text/RuleBasedNumberFormat.java b/icu4j/src/com/ibm/icu/text/RuleBasedNumberFormat.java index cc46b2052c5..583ad9e250b 100755 --- a/icu4j/src/com/ibm/icu/text/RuleBasedNumberFormat.java +++ b/icu4j/src/com/ibm/icu/text/RuleBasedNumberFormat.java @@ -518,17 +518,18 @@ public class RuleBasedNumberFormat extends NumberFormat { /** * The formatter's rule sets. */ - private NFRuleSet[] ruleSets = null; + private transient NFRuleSet[] ruleSets = null; /** * A pointer to the formatter's default rule set. This is always included * in ruleSets. */ - private NFRuleSet defaultRuleSet = null; + private transient NFRuleSet defaultRuleSet = null; /** * The formatter's locale. This is used to create DecimalFormatSymbols and * Collator objects. + * @serial */ private ULocale locale = null; @@ -537,17 +538,18 @@ public class RuleBasedNumberFormat extends NumberFormat { * the collator is actually created the first time the client does a parse * with lenient-parse mode turned on. */ - private Collator collator = null; + private transient Collator collator = null; /** * The DecimalFormatSymbols object that any DecimalFormat objects this * formatter uses should use. This variable is lazy-evaluated: it isn't * filled in if the rule set never uses a DecimalFormat pattern. */ - private DecimalFormatSymbols decimalFormatSymbols = null; + private transient DecimalFormatSymbols decimalFormatSymbols = null; /** * Flag specifying whether lenient parse mode is on or off. Off by default. + * @serial */ private boolean lenientParse = false; @@ -555,26 +557,28 @@ public class RuleBasedNumberFormat extends NumberFormat { * If the description specifies lenient-parse rules, they're stored here until * the collator is created. */ - private String lenientParseRules; + private transient String lenientParseRules; /** * If the description specifies post-process rules, they're stored here until * post-processing is required. */ - private String postProcessRules; + private transient String postProcessRules; /** * Post processor lazily constructed from the postProcessRules. */ - private RBNFPostProcessor postProcessor; + private transient RBNFPostProcessor postProcessor; /** * Localizations for rule set names. + * @serial */ private Map ruleSetDisplayNames; /** * The public rule set names; + * @serial */ private String[] publicRuleSetNames; diff --git a/icu4j/src/com/ibm/icu/text/SimpleDateFormat.java b/icu4j/src/com/ibm/icu/text/SimpleDateFormat.java index 425beab443a..84c62aa0374 100755 --- a/icu4j/src/com/ibm/icu/text/SimpleDateFormat.java +++ b/icu4j/src/com/ibm/icu/text/SimpleDateFormat.java @@ -206,7 +206,7 @@ public class SimpleDateFormat extends DateFormat { // the official serial version ID which says cryptically // which version we're compatible with - static final long serialVersionUID = 4774881970558875024L; + private static final long serialVersionUID = 4774881970558875024L; // the internal serial version which says which version was written // - 0 (default) for version up to JDK 1.1.3 diff --git a/icu4j/src/com/ibm/icu/text/UFormat.java b/icu4j/src/com/ibm/icu/text/UFormat.java index 67d0feed9fa..6a3a5ca1060 100644 --- a/icu4j/src/com/ibm/icu/text/UFormat.java +++ b/icu4j/src/com/ibm/icu/text/UFormat.java @@ -21,6 +21,8 @@ import com.ibm.icu.util.ULocale; * @deprecated This is a draft API and might change in a future release of ICU. */ public abstract class UFormat extends Format { + // jdk1.4.2 serialver + private static final long serialVersionUID = -4964390515840164416L; /** * @draft ICU 2.8 diff --git a/icu4j/src/com/ibm/icu/util/BuddhistCalendar.java b/icu4j/src/com/ibm/icu/util/BuddhistCalendar.java index 8c21a6aba2e..b1bcb2fe2c0 100755 --- a/icu4j/src/com/ibm/icu/util/BuddhistCalendar.java +++ b/icu4j/src/com/ibm/icu/util/BuddhistCalendar.java @@ -37,7 +37,8 @@ import java.util.Locale; * @deprecated This is a draft API and might change in a future release of ICU. */ public class BuddhistCalendar extends GregorianCalendar { - + // jdk1.4.2 serialver + private static final long serialVersionUID = 2583005278132380631L; private static String copyright = "Copyright \u00a9 1998 IBM Corp. All Rights Reserved."; //------------------------------------------------------------------------- diff --git a/icu4j/src/com/ibm/icu/util/CECalendar.java b/icu4j/src/com/ibm/icu/util/CECalendar.java index 8ed16d1c2fb..adab9e1b819 100644 --- a/icu4j/src/com/ibm/icu/util/CECalendar.java +++ b/icu4j/src/com/ibm/icu/util/CECalendar.java @@ -14,6 +14,8 @@ import java.util.Locale; * @internal */ class CECalendar extends Calendar { + // jdk1.4.2 serialver + private static final long serialVersionUID = -999547623066414271L; private static final int LIMITS[][] = { // Minimum Greatest Least Maximum diff --git a/icu4j/src/com/ibm/icu/util/Calendar.java b/icu4j/src/com/ibm/icu/util/Calendar.java index e2c2526442f..67f45740d0f 100755 --- a/icu4j/src/com/ibm/icu/util/Calendar.java +++ b/icu4j/src/com/ibm/icu/util/Calendar.java @@ -1465,6 +1465,10 @@ public abstract class Calendar implements Serializable, Cloneable, Comparable { // Proclaim serialization compatibility with JDK 1.1 // static final long serialVersionUID = -1807547505821590642L; + + // haven't been compatible for awhile, no longer try + // jdk1.4.2 serialver + private static final long serialVersionUID = 6222646104888790989L; /** * Bitmask for internalSet() defining which fields may legally be set @@ -3068,6 +3072,7 @@ public abstract class Calendar implements Serializable, Cloneable, Comparable { } result = cal.handleGetDateFormat(pattern, loc); } catch (MissingResourceException e) { + // !!! need dateformat subclass appropriate to calendar type here! // No custom patterns result = DateFormat.getDateTimeInstance(dateStyle, timeStyle, loc); diff --git a/icu4j/src/com/ibm/icu/util/ChineseCalendar.java b/icu4j/src/com/ibm/icu/util/ChineseCalendar.java index b440dcce202..869d9894d56 100755 --- a/icu4j/src/com/ibm/icu/util/ChineseCalendar.java +++ b/icu4j/src/com/ibm/icu/util/ChineseCalendar.java @@ -77,6 +77,8 @@ import java.util.Locale; * @deprecated This is a draft API and might change in a future release of ICU. */ public class ChineseCalendar extends Calendar { + // jdk1.4.2 serialver + private static final long serialVersionUID = 7312110751940929420L;' //------------------------------------------------------------------ // Developer Notes diff --git a/icu4j/src/com/ibm/icu/util/CopticCalendar.java b/icu4j/src/com/ibm/icu/util/CopticCalendar.java index 42697bc1699..1742eb6c92f 100644 --- a/icu4j/src/com/ibm/icu/util/CopticCalendar.java +++ b/icu4j/src/com/ibm/icu/util/CopticCalendar.java @@ -11,6 +11,9 @@ import java.util.Locale; public final class CopticCalendar extends CECalendar { + // jdk1.4.2 serialver + private static final long serialVersionUID = 5903818751846742911L; + /** * Constant for \u03c9\u03bf\u03b3\u03c4/\u062a\ufeee\ufe97, * the 1st month of the Coptic year. diff --git a/icu4j/src/com/ibm/icu/util/Currency.java b/icu4j/src/com/ibm/icu/util/Currency.java index a3943ee96d0..b302cbb08dc 100644 --- a/icu4j/src/com/ibm/icu/util/Currency.java +++ b/icu4j/src/com/ibm/icu/util/Currency.java @@ -37,7 +37,7 @@ import com.ibm.icu.impl.LocaleUtility; */ public class Currency extends MeasureUnit implements Serializable { // using serialver from jdk1.4.2_05 - static final long serialVersionUID = -5839973855554750484L; + private static final long serialVersionUID = -5839973855554750484L; /** * ISO 4217 3-letter code. diff --git a/icu4j/src/com/ibm/icu/util/EthiopicCalendar.java b/icu4j/src/com/ibm/icu/util/EthiopicCalendar.java index 0e8f16893f9..ad2049ff695 100644 --- a/icu4j/src/com/ibm/icu/util/EthiopicCalendar.java +++ b/icu4j/src/com/ibm/icu/util/EthiopicCalendar.java @@ -11,6 +11,9 @@ import java.util.Locale; public final class EthiopicCalendar extends CECalendar { + //jdk1.4.2 serialver + private static final long serialVersionUID = -2438495771339315608L; + /** * Constant for \u1218\u1235\u12a8\u1228\u121d, the 1st month of the Ethiopic year. */ diff --git a/icu4j/src/com/ibm/icu/util/GregorianCalendar.java b/icu4j/src/com/ibm/icu/util/GregorianCalendar.java index db6c503871d..b20ba293bcd 100755 --- a/icu4j/src/com/ibm/icu/util/GregorianCalendar.java +++ b/icu4j/src/com/ibm/icu/util/GregorianCalendar.java @@ -165,6 +165,9 @@ import java.util.Locale; * @stable ICU 2.0 */ public class GregorianCalendar extends Calendar { + // jdk1.4.2 serialver + private static final long serialVersionUID = 9199388694351062137L; + /* * Implementation Notes * diff --git a/icu4j/src/com/ibm/icu/util/HebrewCalendar.java b/icu4j/src/com/ibm/icu/util/HebrewCalendar.java index 89edd91a876..8be73e583d6 100755 --- a/icu4j/src/com/ibm/icu/util/HebrewCalendar.java +++ b/icu4j/src/com/ibm/icu/util/HebrewCalendar.java @@ -67,6 +67,8 @@ import java.util.Locale; * @deprecated This is a draft API and might change in a future release of ICU. */ public class HebrewCalendar extends Calendar { + // jdk1.4.2 serialver + private static final long serialVersionUID = -1952524560588825816L; private static String copyright = "Copyright \u00a9 1997-1998 IBM Corp. All Rights Reserved."; diff --git a/icu4j/src/com/ibm/icu/util/IslamicCalendar.java b/icu4j/src/com/ibm/icu/util/IslamicCalendar.java index 5e7c6c54d2a..00cbd688684 100755 --- a/icu4j/src/com/ibm/icu/util/IslamicCalendar.java +++ b/icu4j/src/com/ibm/icu/util/IslamicCalendar.java @@ -72,6 +72,8 @@ import java.util.Locale; * @deprecated This is a draft API and might change in a future release of ICU. */ public class IslamicCalendar extends Calendar { + // jdk1.4.2 serialver + private static final long serialVersionUID = -6253365474073869325L; private static String copyright = "Copyright \u00a9 1997-1998 IBM Corp. All Rights Reserved."; diff --git a/icu4j/src/com/ibm/icu/util/JapaneseCalendar.java b/icu4j/src/com/ibm/icu/util/JapaneseCalendar.java index 0089bcad010..dfa4613d123 100755 --- a/icu4j/src/com/ibm/icu/util/JapaneseCalendar.java +++ b/icu4j/src/com/ibm/icu/util/JapaneseCalendar.java @@ -44,7 +44,9 @@ import java.util.Locale; * @deprecated This is a draft API and might change in a future release of ICU. */ public class JapaneseCalendar extends GregorianCalendar { - + // jdk1.4.2 serialver + private static final long serialVersionUID = -2977189902603704691L; + private static String copyright = "Copyright \u00a9 1998 IBM Corp. All Rights Reserved."; //------------------------------------------------------------------------- diff --git a/icu4j/src/com/ibm/icu/util/STZInfo.java b/icu4j/src/com/ibm/icu/util/STZInfo.java index 2b7114b9a9a..6015d07423f 100644 --- a/icu4j/src/com/ibm/icu/util/STZInfo.java +++ b/icu4j/src/com/ibm/icu/util/STZInfo.java @@ -11,7 +11,7 @@ import java.io.Serializable; * @internal */ final class STZInfo implements Serializable { - static final long serialVersionUID = -7849612037842370168L; + private static final long serialVersionUID = -7849612037842370168L; void setStart(int sm, int sdwm, int sdw, int st, int sdm, boolean sa) { this.sm = sm; diff --git a/icu4j/src/com/ibm/icu/util/TimeZone.java b/icu4j/src/com/ibm/icu/util/TimeZone.java index ef2926805ee..c424ea557dd 100755 --- a/icu4j/src/com/ibm/icu/util/TimeZone.java +++ b/icu4j/src/com/ibm/icu/util/TimeZone.java @@ -71,7 +71,7 @@ import com.ibm.icu.text.SimpleDateFormat; */ abstract public class TimeZone implements Serializable, Cloneable { // using serialver from jdk1.4.2_05 - static final long serialVersionUID = -744942128318337471L; + private static final long serialVersionUID = -744942128318337471L; /** * Default constructor. (For invocation by subclass constructors, diff --git a/icu4j/src/com/ibm/icu/util/ULocale.java b/icu4j/src/com/ibm/icu/util/ULocale.java index 34d4cce3b63..ba70b6f4a4b 100644 --- a/icu4j/src/com/ibm/icu/util/ULocale.java +++ b/icu4j/src/com/ibm/icu/util/ULocale.java @@ -85,7 +85,7 @@ import com.ibm.icu.impl.ICUResourceBundle; */ public final class ULocale implements Serializable { // using serialver from jdk1.4.2_05 - static final long serialVersionUID = 3715177670352309217L; + private static final long serialVersionUID = 3715177670352309217L; /** * Useful constant for language.