2362N/A * Copyright (c) 2003, 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 0N/A * published by the Free Software Foundation. 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 * @summary Check RMI/JRMP stubs can be deserialized using user's loader 0N/A * @author Eamonn McManus 0N/A * @run clean DeserializeEncodedURLTest SingleClassLoader 0N/A * @run build DeserializeEncodedURLTest SingleClassLoader 0N/A * @run main DeserializeEncodedURLTest 0N/A Test that the RMI connector client can handle a URL of the form 0N/A where the serialized RMIServer stub is encoded directly in the URL, 0N/A when the class of that stub is known to the supplied 0N/A DEFAULT_CLASS_LOADER but not to the calling code's class loader. 0N/A This is an unusual usage, and is not explicitly specified in the JMX 0N/A Remote API, but it is potentially useful where client and server 0N/A agree to a code base for mutant stubs (that e.g. use a different 0N/A protocol or include debugging or optimization). 0N/A We make an RMI connector server by giving it an instance of an 0N/A RMIJRMPServerImpl subclass that manufactures mutant stubs. These 0N/A stubs are known to a special loader (mutantLoader) but not to this 0N/A test's loader. We set up the client's default loader to 0N/A mutantLoader, and check that it can deserialize the stub containing 0N/A This test incidentally creates the connector server as an MBean 0N/A rather than using the JMXConnectorServerFactory, just because I'm 0N/A not sure we have coverage of that elsewhere. 0N/A "from an RMI connector URL even when the stub's " +
0N/A "class is known to the user's default loader " +
0N/A "but not the caller's loader");