home *** CD-ROM | disk | FTP | other *** search
- package sun.rmi.transport;
-
- import java.io.IOException;
- import java.io.ObjectOutput;
- import java.io.PrintStream;
- import java.rmi.MarshalException;
- import java.rmi.NoSuchObjectException;
- import java.rmi.Remote;
- import java.rmi.RemoteException;
- import java.rmi.server.LogStream;
- import java.rmi.server.ObjID;
- import java.rmi.server.RemoteCall;
- import java.rmi.server.RemoteServer;
- import java.rmi.server.ServerNotActiveException;
- import sun.rmi.server.Dispatcher;
-
- public abstract class Transport {
- static int logLevel = LogStream.parseLevel(Utils.getProperty("sun.rmi.transport.logLevel"));
-
- public abstract Channel getChannel(Endpoint var1);
-
- public abstract Endpoint thisEndpoint();
-
- public void exportObject(ObjID var1, Target var2) throws RemoteException {
- ObjectTable.putTarget(var1, var2);
- }
-
- public boolean serviceCall(RemoteCall var1) {
- Dispatcher var2;
- Remote var3;
- try {
- if (logLevel >= 20) {
- LogStream.log("transport").println("Transport.serviceCall: waiting to read object id");
- }
-
- ObjID var19;
- try {
- var19 = ObjID.read(var1.getInputStream());
- } catch (IOException var17) {
- throw new MarshalException("unable to read objID", var17);
- }
-
- if (logLevel >= 10) {
- LogStream.log("transport").println("Transport.serviceCall: get target " + var19);
- }
-
- Target var20 = ObjectTable.getTarget(var19);
- if (var20 == null || (var3 = var20.getImpl()) == null) {
- throw new NoSuchObjectException("no such object in table");
- }
-
- var2 = var20.getDispatcher();
- } catch (RemoteException var18) {
- RemoteException var4 = var18;
- PrintStream var5 = RemoteServer.getLog();
- if (var5 != null) {
- synchronized(var5){}
-
- try {
- try {
- var5.print("[" + RemoteServer.getClientHost() + "] ");
- } catch (ServerNotActiveException var14) {
- }
-
- var5.print("exception: ");
- ((Throwable)var4).printStackTrace(var5);
- } catch (Throwable var15) {
- throw var15;
- }
- }
-
- try {
- if (logLevel >= 10) {
- LogStream var6 = LogStream.log("transport");
- ((PrintStream)var6).println("Transport.serviceCall: exception: ");
- ((Throwable)var4).printStackTrace(var6);
- }
-
- ObjectOutput var21 = var1.getResultStream(false);
- var21.writeObject(var4);
- var1.releaseOutputStream();
- return true;
- } catch (IOException var13) {
- return false;
- }
- }
-
- try {
- if (logLevel >= 20) {
- LogStream.log("transport").println("Transport.serviceCall: call dispatcher");
- }
-
- var2.dispatch(var3, var1);
- return true;
- } catch (IOException var16) {
- return false;
- }
- }
- }
-