home *** CD-ROM | disk | FTP | other *** search
- package java.rmi.server;
-
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.lang.reflect.Constructor;
- import java.rmi.NoSuchObjectException;
- import java.rmi.Remote;
- import java.rmi.RemoteException;
- import sun.rmi.transport.ObjectTable;
-
- public class UnicastRemoteObject extends RemoteServer {
- private int port;
- private RMIClientSocketFactory csf;
- private RMIServerSocketFactory ssf;
- private static final long serialVersionUID = 4974527148936298033L;
- private static Class[] portParamTypes;
- private static Class[] portFactoryParamTypes;
- // $FF: synthetic field
- static Class class$java$rmi$server$RMIClientSocketFactory;
- // $FF: synthetic field
- static Class class$java$rmi$server$RMIServerSocketFactory;
- // $FF: synthetic field
- static Class class$java$rmi$server$ServerRef;
-
- protected UnicastRemoteObject() throws RemoteException {
- this(0);
- }
-
- protected UnicastRemoteObject(int var1) throws RemoteException {
- this.port = 0;
- this.csf = null;
- this.ssf = null;
- this.port = var1;
- exportObject(this, var1);
- }
-
- protected UnicastRemoteObject(int var1, RMIClientSocketFactory var2, RMIServerSocketFactory var3) throws RemoteException {
- this.port = 0;
- this.csf = null;
- this.ssf = null;
- this.port = var1;
- this.csf = var2;
- this.ssf = var3;
- exportObject(this, var1, var2, var3);
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- var1.defaultReadObject();
- this.reexport();
- }
-
- public Object clone() throws CloneNotSupportedException {
- try {
- UnicastRemoteObject var1 = (UnicastRemoteObject)super.clone();
- var1.reexport();
- return var1;
- } catch (RemoteException var2) {
- throw new ServerCloneException("Clone failed", var2);
- }
- }
-
- private void reexport() throws RemoteException {
- if (this.csf == null && this.ssf == null) {
- exportObject(this, this.port);
- } else {
- exportObject(this, this.port, this.csf, this.ssf);
- }
-
- }
-
- public static RemoteStub exportObject(Remote var0) throws RemoteException {
- return (RemoteStub)exportObject(var0, 0);
- }
-
- public static Remote exportObject(Remote var0, int var1) throws RemoteException {
- Object[] var2 = new Object[]{new Integer(var1)};
- return exportObject(var0, "UnicastServerRef", portParamTypes, var2);
- }
-
- public static Remote exportObject(Remote var0, int var1, RMIClientSocketFactory var2, RMIServerSocketFactory var3) throws RemoteException {
- Object[] var4 = new Object[]{new Integer(var1), var2, var3};
- return exportObject(var0, "UnicastServerRef2", portFactoryParamTypes, var4);
- }
-
- public static boolean unexportObject(Remote var0, boolean var1) throws NoSuchObjectException {
- return ObjectTable.unexportObject(var0, var1);
- }
-
- private static Remote exportObject(Remote var0, String var1, Class[] var2, Object[] var3) throws RemoteException {
- String var4 = "sun.rmi.server." + var1;
-
- Class var5;
- try {
- var5 = Class.forName(var4);
- } catch (ClassNotFoundException var8) {
- throw new ExportException("No class found for server ref type: " + var1);
- }
-
- if (!(class$java$rmi$server$ServerRef == null ? (class$java$rmi$server$ServerRef = class$("java.rmi.server.ServerRef")) : class$java$rmi$server$ServerRef).isAssignableFrom(var5)) {
- throw new ExportException("Server ref class not instance of " + (class$java$rmi$server$ServerRef == null ? (class$java$rmi$server$ServerRef = class$("java.rmi.server.ServerRef")) : class$java$rmi$server$ServerRef).getName() + ": " + var5.getName());
- } else {
- ServerRef var6;
- try {
- Constructor var7 = var5.getConstructor(var2);
- var6 = (ServerRef)var7.newInstance(var3);
- if (var0 instanceof UnicastRemoteObject) {
- ((UnicastRemoteObject)var0).ref = var6;
- }
- } catch (Exception var9) {
- throw new ExportException("Exception creating instance of server ref class: " + var5.getName(), var9);
- }
-
- return var6.exportObject(var0, (Object)null);
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static {
- portParamTypes = new Class[]{Integer.TYPE};
- portFactoryParamTypes = new Class[]{Integer.TYPE, class$java$rmi$server$RMIClientSocketFactory == null ? (class$java$rmi$server$RMIClientSocketFactory = class$("java.rmi.server.RMIClientSocketFactory")) : class$java$rmi$server$RMIClientSocketFactory, class$java$rmi$server$RMIServerSocketFactory == null ? (class$java$rmi$server$RMIServerSocketFactory = class$("java.rmi.server.RMIServerSocketFactory")) : class$java$rmi$server$RMIServerSocketFactory};
- }
- }
-