raphael     2002/11/05 16:00:24

  Modified:    src/java/org/apache/jetspeed/services/registry
                        CastorRegistryService.java RegistryWatcher.java
  Log:
  Fix Regsitry "double entry" issue, auto-save at startup and
  unnecessary work at startup
  
  Revision  Changes    Path
  1.24      +8 -12     
jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java
  
  Index: CastorRegistryService.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- CastorRegistryService.java        3 Nov 2002 15:09:47 -0000       1.23
  +++ CastorRegistryService.java        6 Nov 2002 00:00:24 -0000       1.24
  @@ -461,6 +461,7 @@
           //Mark that we are done
           setInit(true);
   
  +
           // load the registries
           Enumeration en = names.elements();
   
  @@ -498,9 +499,6 @@
               refresh(name);
           }
   
  -        //refresh all registries
  -        refresh();
  -
           // Start the directory watcher thread and rely on its refresh process
           // to completely load all registries
           if (this.watcher != null)
  @@ -512,6 +510,7 @@
           {
               Log.debug("RegistryService: early init()....end!, this.getInit()= " + 
getInit());
           }
  +
       }
   
   
  @@ -568,7 +567,7 @@
        */
       public void refresh()
       {
  -        synchronized (this)
  +        synchronized (watcher)
           {
               Enumeration en = getNames();
               while (en.hasMoreElements())
  @@ -658,9 +657,6 @@
                   Log.error(e);  // At least log the exception.
               }
           }
  -
  -        // refresh all regsitries to take the new entries into account
  -        refresh();
       }
   
       /**
  @@ -788,7 +784,7 @@
           }
   
           int count = 0;
  -        Registry registry = get(regName);
  +        BaseRegistry registry = (BaseRegistry)get(regName);
   
           if (registry == null)
           {
  @@ -802,7 +798,7 @@
           {
               String location = (String) en.nextElement();
               RegistryFragment fragment = (RegistryFragment) fragments.get(location);
  -                        int fragCount = 0;
  +            int fragCount = 0;
   
               if (!fragment.hasChanged())
               {
  @@ -844,7 +840,7 @@
                                       Log.debug("RegistryService: Updating entry " + 
entry.getName() + " of class " + entry.getClass() + " to registry " + name);
                                   }
   
  -                                registry.setEntry(entry);
  +                                registry.setLocalEntry(entry);
                                   // Initialize the entry index
                                   this.entryIndex.put(entry.getName(), location);
                                   ++fragCount;
  @@ -852,7 +848,7 @@
                           }
                           else
                           {
  -                            registry.addEntry(entry);
  +                            registry.addLocalEntry(entry);
                               // Initialize the entry index
                               this.entryIndex.put(entry.getName(), location);
                               ++fragCount;
  
  
  
  1.7       +4 -3      
jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/RegistryWatcher.java
  
  Index: RegistryWatcher.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/RegistryWatcher.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- RegistryWatcher.java      3 Nov 2002 15:09:47 -0000       1.6
  +++ RegistryWatcher.java      6 Nov 2002 00:00:24 -0000       1.7
  @@ -103,7 +103,8 @@
       /**
        * Creates a default RegistryWatcher
        */
  -    public RegistryWatcher() {
  +    public RegistryWatcher()
  +    {
           setDaemon(true);
           setPriority(Thread.MIN_PRIORITY);
       }
  @@ -272,7 +273,7 @@
               {
                   boolean needRefresh = false;
   
  -                synchronized (subscriber)
  +                synchronized (this)
                   {
                       Map fragments = subscriber.getFragmentMap();
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:jetspeed-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:jetspeed-dev-help@;jakarta.apache.org>

Reply via email to