removal of handlers from facility cache implemented BLD200312291900
authormmatula@netbeans.org
Mon, 29 Dec 2003 14:35:12 +0000
changeset 142010d3ce2fd514
parent 1419 07a114d3a19d
child 1421 ddd2949da95d
removal of handlers from facility cache implemented
mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java
mdr/src/org/netbeans/mdr/handlers/InstanceHandler.java
mdr/src/org/netbeans/mdr/handlers/PackageProxyHandler.java
     1.1 --- a/mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java	Mon Dec 22 15:20:02 2003 +0000
     1.2 +++ b/mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java	Mon Dec 29 14:35:12 2003 +0000
     1.3 @@ -329,6 +329,12 @@
     1.4          }
     1.5          return null;
     1.6      }
     1.7 +    
     1.8 +    public void removeHandler(String mofId) {
     1.9 +        synchronized (facilityCache) {
    1.10 +            facilityCache.remove(mofId);
    1.11 +        }
    1.12 +    }
    1.13       
    1.14      /**
    1.15       * Called on repository exit. Should perform all needed finalization actions.
    1.16 @@ -775,7 +781,7 @@
    1.17                  Object superMeta = supers.next();
    1.18                  current = ((StorableClass) classProxies.get(superMeta));
    1.19                  if (current == null) {
    1.20 -                    throw new DebugException("Package definition is incomplete: class " + cls.getName() + " super = " + superMeta);
    1.21 +                    throw new DebugException("Package definition is incomplete: class " + cls.getName() + " super = " + ((superMeta instanceof MofClass) ? ((MofClass) superMeta).getName() : superMeta));
    1.22                  }
    1.23                  sc.addSuperclass(current.getMofId());
    1.24                  current.addSubclass(sc.getMofId());
    1.25 @@ -1319,6 +1325,16 @@
    1.26                  return result;
    1.27              }
    1.28          }
    1.29 +        
    1.30 +        public Object remove(Object key) {
    1.31 +            cleanUp();
    1.32 +            Object result = super.remove(key);
    1.33 +            if (result != null) {
    1.34 +                return ((HandlerReference) result).get();
    1.35 +            } else {
    1.36 +                return result;
    1.37 +            }
    1.38 +        }
    1.39  
    1.40          public Object get(Object key) {
    1.41              cleanUp();
     2.1 --- a/mdr/src/org/netbeans/mdr/handlers/InstanceHandler.java	Mon Dec 22 15:20:02 2003 +0000
     2.2 +++ b/mdr/src/org/netbeans/mdr/handlers/InstanceHandler.java	Mon Dec 29 14:35:12 2003 +0000
     2.3 @@ -308,6 +308,7 @@
     2.4          } finally {
     2.5              _unlock(fail);
     2.6          }
     2.7 +        _getRepository().removeHandler(refMofId());
     2.8      }
     2.9      
    2.10      protected void _delete() {
     3.1 --- a/mdr/src/org/netbeans/mdr/handlers/PackageProxyHandler.java	Mon Dec 22 15:20:02 2003 +0000
     3.2 +++ b/mdr/src/org/netbeans/mdr/handlers/PackageProxyHandler.java	Mon Dec 29 14:35:12 2003 +0000
     3.3 @@ -326,6 +326,7 @@
     3.4          } finally {
     3.5              _unlock(fail);
     3.6          }
     3.7 +        _getRepository().removeHandler(refMofId());
     3.8      }
     3.9  
    3.10      /* -------------------------------------------------------------------- */