home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / java / rmi / activation / ActivationGroup.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  5.7 KB  |  179 lines

  1. package java.rmi.activation;
  2.  
  3. import java.lang.reflect.Constructor;
  4. import java.lang.reflect.InvocationTargetException;
  5. import java.rmi.MarshalledObject;
  6. import java.rmi.Naming;
  7. import java.rmi.Remote;
  8. import java.rmi.RemoteException;
  9. import java.rmi.server.UnicastRemoteObject;
  10. import java.security.AccessController;
  11. import java.security.PrivilegedActionException;
  12. import sun.security.action.GetIntegerAction;
  13.  
  14. public abstract class ActivationGroup extends UnicastRemoteObject implements ActivationInstantiator {
  15.    private ActivationGroupID groupID;
  16.    private ActivationMonitor monitor;
  17.    private long incarnation;
  18.    private static ActivationGroup currGroup;
  19.    private static ActivationGroupID currGroupID;
  20.    private static ActivationSystem currSystem;
  21.    private static boolean canCreate = true;
  22.    private static Class[] groupConstrParams;
  23.    private static final long serialVersionUID = -7696947875314805420L;
  24.    // $FF: synthetic field
  25.    static Class class$java$rmi$activation$ActivationGroupID;
  26.    // $FF: synthetic field
  27.    static Class class$java$rmi$MarshalledObject;
  28.    // $FF: synthetic field
  29.    static Class class$sun$rmi$server$ActivationGroupImpl;
  30.  
  31.    protected ActivationGroup(ActivationGroupID var1) throws RemoteException {
  32.       this.groupID = var1;
  33.    }
  34.  
  35.    public boolean inactiveObject(ActivationID var1) throws ActivationException, UnknownObjectException, RemoteException {
  36.       this.monitor.inactiveObject(var1);
  37.       return true;
  38.    }
  39.  
  40.    public abstract void activeObject(ActivationID var1, Remote var2) throws ActivationException, UnknownObjectException, RemoteException;
  41.  
  42.    public static synchronized ActivationGroup createGroup(ActivationGroupID var0, ActivationGroupDesc var1, long var2) throws ActivationException {
  43.       SecurityManager var4 = System.getSecurityManager();
  44.       if (var4 != null) {
  45.          var4.checkSetFactory();
  46.       }
  47.  
  48.       if (currGroup != null) {
  49.          throw new ActivationException("group already exists");
  50.       } else if (!canCreate) {
  51.          throw new ActivationException("group deactivated and cannot be recreated");
  52.       } else {
  53.          try {
  54.             try {
  55.                String var5 = var1.getClassName();
  56.                if (var5 == null) {
  57.                   var5 = (class$sun$rmi$server$ActivationGroupImpl == null ? (class$sun$rmi$server$ActivationGroupImpl = class$("sun.rmi.server.ActivationGroupImpl")) : class$sun$rmi$server$ActivationGroupImpl).getName();
  58.                }
  59.  
  60.                String var6 = var5;
  61.  
  62.                Class var7;
  63.                try {
  64.                   var7 = (Class)AccessController.doPrivileged(new 1(var1, var6));
  65.                } catch (PrivilegedActionException var11) {
  66.                   throw new ActivationException("Could not load default group implementation class", var11.getException());
  67.                }
  68.  
  69.                Constructor var8 = var7.getConstructor(groupConstrParams);
  70.                Object[] var9 = new Object[]{var0, var1.getData()};
  71.                Object var10 = var8.newInstance(var9);
  72.                if (!(var10 instanceof ActivationGroup)) {
  73.                   throw new ActivationException("group not correct class: " + var10.getClass().getName());
  74.                }
  75.  
  76.                currGroup = (ActivationGroup)var10;
  77.                currGroupID = var0;
  78.                currSystem = var0.getSystem();
  79.                currGroup.incarnation = var2;
  80.                currGroup.monitor = currSystem.activeGroup(var0, currGroup, var2);
  81.                canCreate = false;
  82.             } catch (InvocationTargetException var12) {
  83.                var12.getTargetException().printStackTrace();
  84.                throw new ActivationException("exception in group constructor", var12.getTargetException());
  85.             } catch (ActivationException var13) {
  86.                throw var13;
  87.             } catch (Exception var14) {
  88.                throw new ActivationException("exception creating group", var14);
  89.             }
  90.          } catch (ActivationException var15) {
  91.             destroyGroup();
  92.             canCreate = true;
  93.             throw var15;
  94.          }
  95.  
  96.          return currGroup;
  97.       }
  98.    }
  99.  
  100.    public static synchronized ActivationGroupID currentGroupID() {
  101.       return currGroupID;
  102.    }
  103.  
  104.    static synchronized ActivationGroupID internalCurrentGroupID() throws ActivationException {
  105.       if (currGroupID == null) {
  106.          throw new ActivationException("nonexistent group");
  107.       } else {
  108.          return currGroupID;
  109.       }
  110.    }
  111.  
  112.    public static synchronized void setSystem(ActivationSystem var0) throws ActivationException {
  113.       SecurityManager var1 = System.getSecurityManager();
  114.       if (var1 != null) {
  115.          var1.checkSetFactory();
  116.       }
  117.  
  118.       if (currSystem != null) {
  119.          throw new ActivationException("activation system already set");
  120.       } else {
  121.          currSystem = var0;
  122.       }
  123.    }
  124.  
  125.    public static synchronized ActivationSystem getSystem() throws ActivationException {
  126.       if (currSystem == null) {
  127.          try {
  128.             int var0 = (Integer)AccessController.doPrivileged(new GetIntegerAction("java.rmi.activation.port", 1098));
  129.             currSystem = (ActivationSystem)Naming.lookup("//:" + var0 + "/java.rmi.activation.ActivationSystem");
  130.          } catch (Exception var1) {
  131.             throw new ActivationException("ActivationSystem not running", var1);
  132.          }
  133.       }
  134.  
  135.       return currSystem;
  136.    }
  137.  
  138.    protected void activeObject(ActivationID var1, MarshalledObject var2) throws ActivationException, UnknownObjectException, RemoteException {
  139.       this.monitor.activeObject(var1, var2);
  140.    }
  141.  
  142.    protected void inactiveGroup() throws UnknownGroupException, RemoteException {
  143.       try {
  144.          this.monitor.inactiveGroup(this.groupID, this.incarnation);
  145.       } finally {
  146.          destroyGroup();
  147.       }
  148.  
  149.    }
  150.  
  151.    private static synchronized void destroyGroup() {
  152.       currGroup = null;
  153.       currGroupID = null;
  154.    }
  155.  
  156.    static synchronized ActivationGroup currentGroup() throws ActivationException {
  157.       if (currGroup == null) {
  158.          throw new ActivationException("group is not active");
  159.       } else {
  160.          return currGroup;
  161.       }
  162.    }
  163.  
  164.    public abstract MarshalledObject newInstance(ActivationID var1, ActivationDesc var2) throws ActivationException, RemoteException;
  165.  
  166.    // $FF: synthetic method
  167.    static Class class$(String var0) {
  168.       try {
  169.          return Class.forName(var0);
  170.       } catch (ClassNotFoundException var2) {
  171.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  172.       }
  173.    }
  174.  
  175.    static {
  176.       groupConstrParams = new Class[]{class$java$rmi$activation$ActivationGroupID == null ? (class$java$rmi$activation$ActivationGroupID = class$("java.rmi.activation.ActivationGroupID")) : class$java$rmi$activation$ActivationGroupID, class$java$rmi$MarshalledObject == null ? (class$java$rmi$MarshalledObject = class$("java.rmi.MarshalledObject")) : class$java$rmi$MarshalledObject};
  177.    }
  178. }
  179.