2362N/A * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. Oracle designates this 0N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 0N/A * NOTE: There is a JDK-internal dependency on the existence of this 0N/A * class and its getClientSocketFactory method in the implementation 0N/A * of javax.management.remote.rmi.RMIConnector. 0N/A /** wire representation for the object*/ 0N/A /** cached connection service for the object */ 0N/A /** flag to indicate whether this ref specifies a local server or 0N/A * is a ref for a remote object (surrogate) 0N/A * Construct a "well-known" live reference to a remote object 0N/A * @param isLocalServer If true, indicates this ref specifies a local 0N/A * server in this address space; if false, the ref is for a remote 0N/A * object (hence a surrogate or proxy) in another address space. 0N/A * Construct a new live reference for a server object in the local 0N/A * Construct a new live reference for a server object in the local 0N/A * address space, to use sockets of the specified type. 0N/A * Construct a new live reference for a "well-known" server object 0N/A * in the local address space. 0N/A * Construct a new live reference for a "well-known" server object 0N/A * in the local address space, to use sockets of the specified type. 0N/A * Return a shallow copy of this ref. 0N/A * Return the port number associated with this ref. 0N/A * Return the client socket factory associated with this ref. 0N/A * NOTE: There is a JDK-internal dependency on the existence of 0N/A * this method in the implementation of 0N/A * javax.management.remote.rmi.RMIConnector. 0N/A * Return the server socket factory associated with this ref. 0N/A * Export the object to accept incoming calls. 0N/A return "[endpoint:" +
ep +
"(" +
type +
")," +
0N/A * Fix for 4254103: LiveRef.remoteEquals should not fail 0N/A * if one of the objects in the comparison has a null 0N/A * server socket. Comparison should only consider the 0N/A * following criteria: 0N/A * hosts, ports, client socket factories and object IDs. 0N/A * Ensure that referential integrity is not broken while 0N/A * this LiveRef is in transit. If it is being marshalled 0N/A * as part of a result, it may not otherwise be strongly 0N/A * reachable after the remote call has completed; even if 0N/A * it is being marshalled as part of an argument, the VM 0N/A * may determine that the reference on the stack is no 0N/A * longer reachable after marshalling (see 6181943)-- 0N/A * therefore, tell the stream to save a reference until a 0N/A * timeout expires or, for results, a DGCAck message has 0N/A * been received from the caller, or for arguments, the 0N/A * remote call has completed. For a "local" LiveRef, save 0N/A * a reference to the impl directly, because the impl is 0N/A * not reachable from the LiveRef (see 4114579); 0N/A * otherwise, save a reference to the LiveRef, for the 0N/A * client-side DGC to watch over. (Also see 4017232.) 0N/A // All together now write out the endpoint, id, and flag 0N/A // (need to choose whether or not to use old JDK1.1 endpoint format) 0N/A // Now read in the endpoint, id, and result flag 0N/A // (need to choose whether or not to read old JDK1.1 endpoint format) 0N/A // have been unmarshaled. 0N/A // set flag in stream indicating that remote objects were 0N/A // unmarshaled. A DGC ack should be sent by the transport.