oin = getInputStream();
oin = startInputStream();
  public void executeCall() throws Exception  {    byte returncode;    ObjectInput oin;        // signal the call when constructing    try      {	DataOutputStream dout = conn.getDataOutputStream();	dout.write(MESSAGE_CALL);		oout = conn.getObjectOutputStream();	objid.write(oout);	oout.writeInt(opnum);	oout.writeLong(hash);      }    catch(IOException ex)      {	throw new MarshalException("Try to write header but failed.", ex);      }    try      {	releaseOutputStream();	DataInputStream din = conn.getDataInputStream();        if (din.readByte() != MESSAGE_CALL_ACK)	    throw new RemoteException("Call not acked");        oin = getInputStream();        returncode = oin.readByte();        UID.read(oin);      }    catch(IOException ex)      {        throw new UnmarshalException("Try to read header but failed:", ex);      }        //check return code    switch(returncode)      {      case RETURN_ACK: //it's ok	return;      case RETURN_NACK:	Object returnobj;	try	  {	    returnobj = oin.readObject();	  }	catch(Exception ex2)	  {	    throw new UnmarshalException	      ("Try to read exception object but failed", ex2);	  }		if(!(returnobj instanceof Exception))	  throw new UnmarshalException("Should be Exception type here: "				       + returnobj);	throw (Exception)returnobj;	      default:	throw new UnmarshalException("Invalid return code");      }  }