diff -ru CVS/classpath/java/util/Calendar.java updated/classpath/java/util/Calendar.java
--- CVS/classpath/java/util/Calendar.java	2010-06-20 11:17:44.000000000 +0400
+++ updated/classpath/java/util/Calendar.java	2010-06-20 11:23:42.000000000 +0400
@@ -1,5 +1,5 @@
 /* Calendar.java --
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006,
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2010
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -603,7 +603,7 @@
   private static final HashMap<Locale,Class> cache = new HashMap<Locale,Class>();
 
   /** Preset argument types for calendar-class constructor lookup.  */
-  private static Class[] ctorArgTypes = new Class[]
+  private static final Class[] ctorArgTypes = new Class[]
                                         {
                                           TimeZone.class, Locale.class
                                         };
@@ -677,7 +677,7 @@
    */
   public static synchronized Locale[] getAvailableLocales()
   {
-    ResourceBundle rb = getBundle(new Locale("", ""));
+    ResourceBundle rb = getBundle(Locale.ROOT);
     return (Locale[]) rb.getObject("availableLocales");
   }
 
@@ -1035,9 +1035,8 @@
   public int hashCode()
   {
     long time = getTimeInMillis();
-    int val = (int) ((time & 0xffffffffL) ^ (time >> 32));
-    val += (getFirstDayOfWeek() + (isLenient() ? 1230 : 1237)
-            + getMinimalDaysInFirstWeek());
+    int val = ((int) time ^ (int) (time >> 32)) + getFirstDayOfWeek()
+              + (isLenient() ? 1230 : 1237) + getMinimalDaysInFirstWeek();
     TimeZone self = getTimeZone();
     if (self != null)
       val ^= self.hashCode();
diff -ru CVS/classpath/java/util/Currency.java updated/classpath/java/util/Currency.java
--- CVS/classpath/java/util/Currency.java	2010-06-20 11:21:26.000000000 +0400
+++ updated/classpath/java/util/Currency.java	2010-06-20 11:23:42.000000000 +0400
@@ -1,5 +1,5 @@
 /* Currency.java -- Representation of a currency
-   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2010  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -107,7 +107,7 @@
    * @see #getInstance(java.util.Locale)
    * @serial ignored.
    */
-  private static transient Map countryMap;
+  private static final transient Map countryMap = new HashMap();
 
   /**
    * A cache of <code>Currency</code> instances to
@@ -119,17 +119,13 @@
    * @see #readResolve()
    * @serial ignored.
    */
-  private static transient Map cache;
+  private static final transient Map cache = new HashMap();
 
   /**
    * Instantiates the cache and reads in the properties.
    */
   static
   {
-    /* Create a hash map for the locale mappings */
-    countryMap = new HashMap();
-    /* Create a hash map for the cache */
-    cache = new HashMap();
     /* Create the properties object */
     properties = new Properties();
     /* Try and load the properties from our iso4217.properties resource */
@@ -176,7 +172,7 @@
     if (countryCode.equals(""))
       {
         throw new
-          IllegalArgumentException("Invalid (empty) country code for locale:"
+          IllegalArgumentException("Invalid (empty) country code for locale: "
                                    + loc);
       }
     /* Construct the key for the currency */
diff -ru CVS/classpath/java/util/Properties.java updated/classpath/java/util/Properties.java
--- CVS/classpath/java/util/Properties.java	2010-06-20 11:21:40.000000000 +0400
+++ updated/classpath/java/util/Properties.java	2010-06-20 11:23:42.000000000 +0400
@@ -1,5 +1,6 @@
 /* Properties.java -- a set of persistent properties
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2010
+   Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -473,9 +474,9 @@
     // Eliminate tail recursion.
     do
       {
-        String value = (String) prop.get(key);
-        if (value != null)
-          return value;
+        Object value = prop.get(key);
+        if (value instanceof String) // skip non-String values
+          return (String) value;
         prop = prop.defaults;
       }
     while (prop != null);
diff -ru CVS/classpath/java/util/ResourceBundle.java updated/classpath/java/util/ResourceBundle.java
--- CVS/classpath/java/util/ResourceBundle.java	2010-06-20 11:21:54.000000000 +0400
+++ updated/classpath/java/util/ResourceBundle.java	2010-06-20 11:33:46.000000000 +0400
@@ -1,5 +1,5 @@
 /* ResourceBundle -- aids in loading resource bundles
-   Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006
+   Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2010
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -123,7 +123,7 @@
    *
    * @see BundleKey
    */
-  private static Map<BundleKey,Object> bundleCache =
+  private static final Map<BundleKey,Object> bundleCache =
     new LinkedHashMap<BundleKey,Object>(CACHE_SIZE + 1, 0.75F, true)
   {
     public boolean removeEldestEntry(Map.Entry<BundleKey,Object> entry)
@@ -498,7 +498,17 @@
             else
               is = classloader.getResourceAsStream(resourceName);
             if (is != null)
-              bundle = new PropertyResourceBundle(is);
+              {
+                bundle = new PropertyResourceBundle(is);
+                try
+                  {
+                    is.close();
+                  }
+                catch (IOException ex)
+                  {
+                    // ignore
+                  }
+              }
           }
         catch (IOException ex)
           {
diff -ru CVS/classpath/java/util/Timer.java updated/classpath/java/util/Timer.java
--- CVS/classpath/java/util/Timer.java	2010-06-20 11:22:08.000000000 +0400
+++ updated/classpath/java/util/Timer.java	2010-06-20 11:23:42.000000000 +0400
@@ -1,5 +1,5 @@
 /* Timer.java -- Timer that runs TimerTasks at a later time.
-   Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2005, 2010  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -360,17 +360,18 @@
    * executed immediately. Stops running when canceled or when the parent
    * Timer has been finalized and no more tasks have to be executed.
    */
-  private static final class Scheduler implements Runnable
+  private static final class Scheduler extends Thread
   {
     // The priority queue containing all the TimerTasks.
-    private TaskQueue queue;
+    private final TaskQueue queue;
 
     /**
      * Creates a new Scheduler that will schedule the tasks on the
      * given TaskQueue.
      */
-    public Scheduler(TaskQueue queue)
+    Scheduler(TaskQueue queue, String name)
     {
+      super(name);
       this.queue = queue;
     }
 
@@ -442,10 +443,7 @@
 
   // The queue that all the tasks are put in.
   // Given to the scheduler
-  private TaskQueue queue;
-
-  // The Scheduler that does all the real work
-  private Scheduler scheduler;
+  private final TaskQueue queue = new TaskQueue();
 
   // Used to run the scheduler.
   // Also used to checked if the Thread is still running by calling
@@ -513,12 +511,10 @@
    */
   private Timer(boolean daemon, int priority, String name)
   {
-    canceled = false;
-    queue = new TaskQueue();
-    scheduler = new Scheduler(queue);
-    thread = new Thread(scheduler, name);
+    Scheduler thread = new Scheduler(queue, name);
     thread.setDaemon(daemon);
     thread.setPriority(priority);
+    this.thread = thread;
     thread.start();
   }
 
diff -ru CVS/classpath/java/util/prefs/AbstractPreferences.java updated/classpath/java/util/prefs/AbstractPreferences.java
--- CVS/classpath/java/util/prefs/AbstractPreferences.java	2010-06-20 11:17:12.000000000 +0400
+++ updated/classpath/java/util/prefs/AbstractPreferences.java	2010-06-20 11:23:26.000000000 +0400
@@ -1,5 +1,5 @@
 /* AbstractPreferences -- Partial implementation of a Preference node
-   Copyright (C) 2001, 2003, 2004, 2006  Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2004, 2006, 2010  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -101,7 +101,7 @@
      * accessed by earlier <code>getChild()</code> or <code>childSpi()</code>
      * invocations and that have not been removed.
      */
-    private HashMap<String, AbstractPreferences> childCache
+    private final HashMap<String, AbstractPreferences> childCache
       = new HashMap<String, AbstractPreferences>();
 
     /**
