1/* 2 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 27package sun.rmi.registry; 28 29import java.io.IOException; 30import java.io.InputStream; 31import java.rmi.AccessException; 32import java.rmi.server.RemoteCall; 33 34import sun.rmi.transport.Connection; 35import sun.rmi.transport.StreamRemoteCall; 36import sun.rmi.transport.tcp.TCPConnection; 37 38/** 39 * Skeleton to dispatch RegistryImpl methods. 40 * Originally generated by RMIC but frozen to match the stubs. 41 */ 42@SuppressWarnings({"deprecation", "serial"}) 43public final class RegistryImpl_Skel 44 implements java.rmi.server.Skeleton { 45 private static final java.rmi.server.Operation[] operations = { 46 new java.rmi.server.Operation("void bind(java.lang.String, java.rmi.Remote)"), 47 new java.rmi.server.Operation("java.lang.String list()[]"), 48 new java.rmi.server.Operation("java.rmi.Remote lookup(java.lang.String)"), 49 new java.rmi.server.Operation("void rebind(java.lang.String, java.rmi.Remote)"), 50 new java.rmi.server.Operation("void unbind(java.lang.String)") 51 }; 52 53 private static final long interfaceHash = 4905912898345647071L; 54 55 public java.rmi.server.Operation[] getOperations() { 56 return operations.clone(); 57 } 58 59 public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) 60 throws java.lang.Exception { 61 if (hash != interfaceHash) 62 throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); 63 64 sun.rmi.registry.RegistryImpl server = (sun.rmi.registry.RegistryImpl) obj; 65 switch (opnum) { 66 case 0: // bind(String, Remote) 67 { 68 // Check access before reading the arguments 69 RegistryImpl.checkAccess("Registry.bind"); 70 71 java.lang.String $param_String_1; 72 java.rmi.Remote $param_Remote_2; 73 try { 74 java.io.ObjectInput in = call.getInputStream(); 75 $param_String_1 = (java.lang.String) in.readObject(); 76 $param_Remote_2 = (java.rmi.Remote) in.readObject(); 77 } catch (java.io.IOException | java.lang.ClassNotFoundException e) { 78 throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); 79 } finally { 80 call.releaseInputStream(); 81 } 82 server.bind($param_String_1, $param_Remote_2); 83 try { 84 call.getResultStream(true); 85 } catch (java.io.IOException e) { 86 throw new java.rmi.MarshalException("error marshalling return", e); 87 } 88 break; 89 } 90 91 case 1: // list() 92 { 93 call.releaseInputStream(); 94 java.lang.String[] $result = server.list(); 95 try { 96 java.io.ObjectOutput out = call.getResultStream(true); 97 out.writeObject($result); 98 } catch (java.io.IOException e) { 99 throw new java.rmi.MarshalException("error marshalling return", e); 100 } 101 break; 102 } 103 104 case 2: // lookup(String) 105 { 106 java.lang.String $param_String_1; 107 try { 108 java.io.ObjectInput in = call.getInputStream(); 109 $param_String_1 = (java.lang.String) in.readObject(); 110 } catch (java.io.IOException | java.lang.ClassNotFoundException e) { 111 throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); 112 } finally { 113 call.releaseInputStream(); 114 } 115 java.rmi.Remote $result = server.lookup($param_String_1); 116 try { 117 java.io.ObjectOutput out = call.getResultStream(true); 118 out.writeObject($result); 119 } catch (java.io.IOException e) { 120 throw new java.rmi.MarshalException("error marshalling return", e); 121 } 122 break; 123 } 124 125 case 3: // rebind(String, Remote) 126 { 127 // Check access before reading the arguments 128 RegistryImpl.checkAccess("Registry.rebind"); 129 130 java.lang.String $param_String_1; 131 java.rmi.Remote $param_Remote_2; 132 try { 133 java.io.ObjectInput in = call.getInputStream(); 134 $param_String_1 = (java.lang.String) in.readObject(); 135 $param_Remote_2 = (java.rmi.Remote) in.readObject(); 136 } catch (java.io.IOException | java.lang.ClassNotFoundException e) { 137 throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); 138 } finally { 139 call.releaseInputStream(); 140 } 141 server.rebind($param_String_1, $param_Remote_2); 142 try { 143 call.getResultStream(true); 144 } catch (java.io.IOException e) { 145 throw new java.rmi.MarshalException("error marshalling return", e); 146 } 147 break; 148 } 149 150 case 4: // unbind(String) 151 { 152 // Check access before reading the arguments 153 RegistryImpl.checkAccess("Registry.unbind"); 154 155 java.lang.String $param_String_1; 156 try { 157 java.io.ObjectInput in = call.getInputStream(); 158 $param_String_1 = (java.lang.String) in.readObject(); 159 } catch (java.io.IOException | java.lang.ClassNotFoundException e) { 160 throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); 161 } finally { 162 call.releaseInputStream(); 163 } 164 server.unbind($param_String_1); 165 try { 166 call.getResultStream(true); 167 } catch (java.io.IOException e) { 168 throw new java.rmi.MarshalException("error marshalling return", e); 169 } 170 break; 171 } 172 173 default: 174 throw new java.rmi.UnmarshalException("invalid method number"); 175 } 176 } 177} 178