synchronize ResourceOracleImpl.refresh()

Review at http://gwt-code-reviews.appspot.com/980802

Review by: scottb@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9035 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java b/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java
index ce2ce2f..31b5b44 100644
--- a/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java
+++ b/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java
@@ -173,12 +173,15 @@
 
   /**
    * Rescans the associated paths to recompute the available resources.
-   *
+   * 
+   * TODO(conroy,scottb): This synchronization could be improved upon to allow
+   * disjoint sets of oracles to be refreshed simultaneously.
+   * 
    * @param logger status and error details are written here
    * @param first At least one ResourceOracleImpl must be passed to refresh
    * @param rest Callers may optionally pass several oracles
    */
-  public static void refresh(
+  public static synchronized void refresh(
       TreeLogger logger, ResourceOracleImpl first, ResourceOracleImpl... rest) {
     int len = 1 + rest.length;
     ResourceOracleImpl[] oracles = new ResourceOracleImpl[1 + rest.length];