home *** CD-ROM | disk | FTP | other *** search
- package java.rmi.activation;
-
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.rmi.MarshalledObject;
- import java.rmi.Remote;
- import java.rmi.RemoteException;
- import java.rmi.UnmarshalException;
- import java.rmi.server.RemoteObject;
- import java.rmi.server.RemoteRef;
- import java.rmi.server.UID;
- import java.security.AccessController;
- import sun.rmi.server.RemoteProxy;
- import sun.security.action.GetPropertyAction;
-
- public class ActivationID implements Serializable {
- private Activator activator;
- private UID uid = new UID();
- private static final long serialVersionUID = -4608673054848209235L;
- private static String activatorClassName = (String)AccessController.doPrivileged(new GetPropertyAction("java.rmi.activation.activator.class", "sun.rmi.server.Activation$ActivatorImpl"));
-
- public ActivationID(Activator var1) {
- this.activator = var1;
- }
-
- public Remote activate(boolean var1) throws ActivationException, UnknownObjectException, RemoteException {
- try {
- MarshalledObject var2 = this.activator.activate(this, var1);
- return (Remote)var2.get();
- } catch (UnknownObjectException var6) {
- throw var6;
- } catch (RemoteException var7) {
- throw var7;
- } catch (IOException var8) {
- throw new ActivationException("activation failed", var8);
- } catch (ClassNotFoundException var9) {
- throw new ActivationException("activation failed", var9);
- }
- }
-
- public int hashCode() {
- return this.uid.hashCode();
- }
-
- public boolean equals(Object var1) {
- if (!(var1 instanceof ActivationID)) {
- return false;
- } else {
- ActivationID var2 = (ActivationID)var1;
- return this.uid.equals(var2.uid) && this.activator.equals(var2.activator);
- }
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException, ClassNotFoundException {
- var1.writeObject(this.uid);
- RemoteRef var2 = ((RemoteObject)this.activator).getRef();
- var1.writeUTF(var2.getRefClass(var1));
- var2.writeExternal(var1);
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- this.uid = (UID)var1.readObject();
-
- try {
- Class var2 = Class.forName("sun.rmi.server." + var1.readUTF());
- RemoteRef var3 = (RemoteRef)var2.newInstance();
- var3.readExternal(var1);
- this.activator = (Activator)RemoteProxy.getStub(activatorClassName, var3);
- } catch (InstantiationException var4) {
- throw new UnmarshalException("Unable to create remote reference", var4);
- } catch (IllegalAccessException var5) {
- throw new UnmarshalException("Illegal access creating remote reference");
- }
- }
- }
-