8015987: The corba repo contains unneeded .sjava files
authoraefimov
Thu, 01 Aug 2013 14:59:05 +0400
changeset 19231 6f0ebdd538a0
parent 18978 edb01c460d4c
child 19232 ddfc1727d3ef
8015987: The corba repo contains unneeded .sjava files Reviewed-by: alanb, chegar, coffeys
corba/src/share/classes/com/sun/corba/se/impl/copyobject/JavaInputStream.sjava
corba/src/share/classes/com/sun/corba/se/impl/copyobject/JavaOutputStream.sjava
corba/src/share/classes/com/sun/corba/se/impl/interceptors/ThreadCurrentStack.sjava
corba/src/share/classes/com/sun/corba/se/impl/orbutil/DefineWrapper.sjava
corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl_save.sjava
corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLTypesUtil_save.sjava
corba/src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalClientRequestImpl.sjava
corba/src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalClientResponseImpl.sjava
corba/src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalServerRequestImpl.sjava
corba/src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalServerResponseImpl.sjava
corba/src/share/classes/com/sun/corba/se/impl/transport/BufferConnectionImpl.sjava
--- a/corba/src/share/classes/com/sun/corba/se/impl/copyobject/JavaInputStream.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,528 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.sun.corba.se.impl.encoding;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.nio.ByteBuffer;
-
-import org.omg.CORBA.TypeCode;
-import org.omg.CORBA.Principal;
-import org.omg.CORBA.Any;
-
-import com.sun.org.omg.SendingContext.CodeBase;
-
-import com.sun.corba.se.pept.protocol.MessageMediator;
-
-import com.sun.corba.se.spi.logging.CORBALogDomains;
-import com.sun.corba.se.spi.orb.ORB;
-import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
-import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
-
-import com.sun.corba.se.impl.logging.ORBUtilSystemException;
-import com.sun.corba.se.impl.encoding.CodeSetConversion;
-import com.sun.corba.se.impl.encoding.OSFCodeSetRegistry;
-
-/**
- * This is delegates to the real implementation.
- *
- * NOTE:
- *
- * Before using the stream for valuetype unmarshaling, one must call
- * performORBVersionSpecificInit().
- */
-public abstract class CDRInputStream
-    extends org.omg.CORBA_2_3.portable.InputStream
-    implements com.sun.corba.se.impl.encoding.MarshalInputStream,
-               org.omg.CORBA.DataInputStream, org.omg.CORBA.portable.ValueInputStream
-{
-    protected CorbaMessageMediator messageMediator;
-    private CDRInputStreamBase impl;
-
-    // We can move this out somewhere later.  For now, it serves its purpose
-    // to create a concrete CDR delegate based on the GIOP version.
-    private static class InputStreamFactory {
-        
-        public static CDRInputStreamBase newInputStream(ORB orb, GIOPVersion version)
-        {
-            switch(version.intValue()) {
-                case GIOPVersion.VERSION_1_0:
-                    return new CDRInputStream_1_0();
-                case GIOPVersion.VERSION_1_1:
-                    return new CDRInputStream_1_1();
-                case GIOPVersion.VERSION_1_2:
-                    return new CDRInputStream_1_2();
-                default:
-		    ORBUtilSystemException wrapper = ORBUtilSystemException.get( orb,
-			CORBALogDomains.RPC_ENCODING ) ;
-		    throw wrapper.unsupportedGiopVersion( version ) ;
-            }
-        }
-    }
-
-    // Required for the case when a ClientResponseImpl is
-    // created with a SystemException due to a dead server/closed
-    // connection with no warning.  Note that the stream will
-    // not be initialized in this case.
-    // 
-    // Probably also required by ServerRequestImpl.
-    // 
-    // REVISIT.
-    public CDRInputStream() {
-    }
-
-    public CDRInputStream(CDRInputStream is) {
-        impl = is.impl.dup();
-        impl.setParent(this);
-    }
-
-    public CDRInputStream(org.omg.CORBA.ORB orb,
-                          ByteBuffer byteBuffer,
-                          int size,
-                          boolean littleEndian,
-                          GIOPVersion version,
-                          BufferManagerRead bufMgr)
-    {
-        impl = InputStreamFactory.newInputStream( (ORB)orb, version);
-
-        impl.init(orb, byteBuffer, size, littleEndian, bufMgr);
-
-        impl.setParent(this);
-    }
-
-    // org.omg.CORBA.portable.InputStream
-    public final boolean read_boolean() {
-        return impl.read_boolean();
-    }
-
-    public final char read_char() {
-        return impl.read_char();
-    }
-
-    public final char read_wchar() {
-        return impl.read_wchar();
-    }
-
-    public final byte read_octet() {
-        return impl.read_octet();
-    }
-
-    public final short read_short() {
-        return impl.read_short();
-    }
-
-    public final short read_ushort() {
-        return impl.read_ushort();
-    }
-
-    public final int read_long() {
-        return impl.read_long();
-    }
-
-    public final int read_ulong() {
-        return impl.read_ulong();
-    }
-
-    public final long read_longlong() {
-        return impl.read_longlong();
-    }
-
-    public final long read_ulonglong() {
-        return impl.read_ulonglong();
-    }
-
-    public final float read_float() {
-        return impl.read_float();
-    }
-
-    public final double read_double() {
-        return impl.read_double();
-    }
-
-    public final String read_string() {
-        return impl.read_string();
-    }
-
-    public final String read_wstring() {
-        return impl.read_wstring();
-    }
-
-    public final void read_boolean_array(boolean[] value, int offset, int length) {
-        impl.read_boolean_array(value, offset, length);
-    }
-
-    public final void read_char_array(char[] value, int offset, int length) {
-        impl.read_char_array(value, offset, length);
-    }
-
-    public final void read_wchar_array(char[] value, int offset, int length) {
-        impl.read_wchar_array(value, offset, length);
-    }
-
-    public final void read_octet_array(byte[] value, int offset, int length) {
-        impl.read_octet_array(value, offset, length);
-    }
-
-    public final void read_short_array(short[] value, int offset, int length) {
-        impl.read_short_array(value, offset, length);
-    }
-
-    public final void read_ushort_array(short[] value, int offset, int length) {
-        impl.read_ushort_array(value, offset, length);
-    }
-
-    public final void read_long_array(int[] value, int offset, int length) {
-        impl.read_long_array(value, offset, length);
-    }
-
-    public final void read_ulong_array(int[] value, int offset, int length) {
-        impl.read_ulong_array(value, offset, length);
-    }
-
-    public final void read_longlong_array(long[] value, int offset, int length) {
-        impl.read_longlong_array(value, offset, length);
-    }
-
-    public final void read_ulonglong_array(long[] value, int offset, int length) {
-        impl.read_ulonglong_array(value, offset, length);
-    }
-
-    public final void read_float_array(float[] value, int offset, int length) {
-        impl.read_float_array(value, offset, length);
-    }
-
-    public final void read_double_array(double[] value, int offset, int length) {
-        impl.read_double_array(value, offset, length);
-    }
-
-    public final org.omg.CORBA.Object read_Object() {
-        return impl.read_Object();
-    }
-
-    public final TypeCode read_TypeCode() {
-        return impl.read_TypeCode();
-    }
-    public final Any read_any() {
-        return impl.read_any();
-    }
-
-    public final Principal read_Principal() {
-        return impl.read_Principal();
-    }
-
-    public final int read() throws java.io.IOException {
-        return impl.read();
-    }
-
-    public final java.math.BigDecimal read_fixed() {
-        return impl.read_fixed();
-    }
-
-    public final org.omg.CORBA.Context read_Context() {
-        return impl.read_Context();
-    }
-
-    public final org.omg.CORBA.Object read_Object(java.lang.Class clz) {
-        return impl.read_Object(clz);
-    }
-
-    public final org.omg.CORBA.ORB orb() {
-        return impl.orb();
-    }
-
-    // org.omg.CORBA_2_3.portable.InputStream
-    public final java.io.Serializable read_value() {
-        return impl.read_value();
-    }
-
-    public final java.io.Serializable read_value(java.lang.Class clz) {
-        return impl.read_value(clz);
-    }
-
-    public final java.io.Serializable read_value(org.omg.CORBA.portable.BoxedValueHelper factory) {
-        return impl.read_value(factory);
-    }
-
-    public final java.io.Serializable read_value(java.lang.String rep_id) {
-        return impl.read_value(rep_id);
-    }
-
-    public final java.io.Serializable read_value(java.io.Serializable value) {
-        return impl.read_value(value);
-    }
-
-    public final java.lang.Object read_abstract_interface() {
-        return impl.read_abstract_interface();
-    }
-
-    public final java.lang.Object read_abstract_interface(java.lang.Class clz) {
-        return impl.read_abstract_interface(clz);
-    }
-    // com.sun.corba.se.impl.encoding.MarshalInputStream
-
-    public final void consumeEndian() {
-        impl.consumeEndian();
-    }
-
-    public final int getPosition() {
-        return impl.getPosition();
-    }
-
-    // org.omg.CORBA.DataInputStream
-
-    public final java.lang.Object read_Abstract () {
-        return impl.read_Abstract();
-    }
-
-    public final java.io.Serializable read_Value () {
-        return impl.read_Value();
-    }
-
-    public final void read_any_array (org.omg.CORBA.AnySeqHolder seq, int offset, int length) {
-        impl.read_any_array(seq, offset, length);
-    }
-
-    public final void read_boolean_array (org.omg.CORBA.BooleanSeqHolder seq, int offset, int length) {
-        impl.read_boolean_array(seq, offset, length);
-    }
-
-    public final void read_char_array (org.omg.CORBA.CharSeqHolder seq, int offset, int length) {
-        impl.read_char_array(seq, offset, length);
-    }
-
-    public final void read_wchar_array (org.omg.CORBA.WCharSeqHolder seq, int offset, int length) {
-        impl.read_wchar_array(seq, offset, length);
-    }
-
-    public final void read_octet_array (org.omg.CORBA.OctetSeqHolder seq, int offset, int length) {
-        impl.read_octet_array(seq, offset, length);
-    }
-
-    public final void read_short_array (org.omg.CORBA.ShortSeqHolder seq, int offset, int length) {
-        impl.read_short_array(seq, offset, length);
-    }
-
-    public final void read_ushort_array (org.omg.CORBA.UShortSeqHolder seq, int offset, int length) {
-        impl.read_ushort_array(seq, offset, length);
-    }
-
-    public final void read_long_array (org.omg.CORBA.LongSeqHolder seq, int offset, int length) {
-        impl.read_long_array(seq, offset, length);
-    }
-
-    public final void read_ulong_array (org.omg.CORBA.ULongSeqHolder seq, int offset, int length) {
-        impl.read_ulong_array(seq, offset, length);
-    }
-
-    public final void read_ulonglong_array (org.omg.CORBA.ULongLongSeqHolder seq, int offset, int length) {
-        impl.read_ulonglong_array(seq, offset, length);
-    }
-
-    public final void read_longlong_array (org.omg.CORBA.LongLongSeqHolder seq, int offset, int length) {
-        impl.read_longlong_array(seq, offset, length);
-    }
-
-    public final void read_float_array (org.omg.CORBA.FloatSeqHolder seq, int offset, int length) {
-        impl.read_float_array(seq, offset, length);
-    }
-
-    public final void read_double_array (org.omg.CORBA.DoubleSeqHolder seq, int offset, int length) {
-        impl.read_double_array(seq, offset, length);
-    }
-
-    // org.omg.CORBA.portable.ValueBase
-    public final String[] _truncatable_ids() {
-        return impl._truncatable_ids();
-    }
-
-    // java.io.InputStream
-    public final int read(byte b[]) throws IOException {
-        return impl.read(b);
-    }
-
-    public final int read(byte b[], int off, int len) throws IOException {
-        return impl.read(b, off, len);
-    }
-
-    public final long skip(long n) throws IOException {
-        return impl.skip(n);
-    }
-
-    public final int available() throws IOException {
-        return impl.available();
-    }
-
-    public final void close() throws IOException {
-        impl.close();
-    }
-
-    public final void mark(int readlimit) {
-        impl.mark(readlimit);
-    }
-
-    public final void reset() {
-        impl.reset();
-    }
-
-    public final boolean markSupported() {
-        return impl.markSupported();
-    }
-
-    public abstract CDRInputStream dup();
-
-    // Needed by TCUtility
-    public final java.math.BigDecimal read_fixed(short digits, short scale) {
-        return impl.read_fixed(digits, scale);
-    }
-
-    public final boolean isLittleEndian() {
-        return impl.isLittleEndian();
-    }
-
-    protected final ByteBuffer getByteBuffer() {
-        return impl.getByteBuffer();
-    }
-
-    protected final void setByteBuffer(ByteBuffer byteBuffer) {
-        impl.setByteBuffer(byteBuffer);
-    }
-
-    protected final void setByteBufferWithInfo(ByteBufferWithInfo bbwi) {
-        impl.setByteBufferWithInfo(bbwi);
-    }
-
-    public final int getBufferLength() {
-        return impl.getBufferLength();
-    }
-
-    protected final void setBufferLength(int value) {
-        impl.setBufferLength(value);
-    }
-
-    protected final int getIndex() {
-        return impl.getIndex();
-    }
-
-    protected final void setIndex(int value) {
-        impl.setIndex(value);
-    }
-
-    public final void orb(org.omg.CORBA.ORB orb) {
-        impl.orb(orb);
-    }
-
-    public final GIOPVersion getGIOPVersion() {
-        return impl.getGIOPVersion();
-    }
-
-    public final BufferManagerRead getBufferManager() {
-        return impl.getBufferManager();
-    }
-
-    // This should be overridden by any stream (ex: IIOPInputStream)
-    // which wants to read values.  Thus, TypeCodeInputStream doesn't
-    // have to do this.
-    public CodeBase getCodeBase() {
-        return null;
-    }
-
-    // Use Latin-1 for GIOP 1.0 or when code set negotiation was not
-    // performed.
-    protected CodeSetConversion.BTCConverter createCharBTCConverter() {
-        return CodeSetConversion.impl().getBTCConverter(OSFCodeSetRegistry.ISO_8859_1,
-                                                        impl.isLittleEndian());
-    }
-
-    // Subclasses must decide what to do here.  It's inconvenient to
-    // make the class and this method abstract because of dup().
-    protected abstract CodeSetConversion.BTCConverter createWCharBTCConverter();
-
-    // Prints the current buffer in a human readable form
-    void printBuffer() {
-        impl.printBuffer();
-    }
-
-    /**
-     * Aligns the current position on the given octet boundary
-     * if there are enough bytes available to do so.  Otherwise,
-     * it just returns.  This is used for some (but not all)
-     * GIOP 1.2 message headers.
-     */
-    public void alignOnBoundary(int octetBoundary) {
-        impl.alignOnBoundary(octetBoundary);
-    }
-
-    // Needed by request and reply messages for GIOP versions >= 1.2 only.
-    public void setHeaderPadding(boolean headerPadding) {
-        impl.setHeaderPadding(headerPadding);
-    }
-    
-    /**
-     * This must be called after determining the proper ORB version,
-     * and setting it on the stream's ORB instance.  It can be called
-     * after reading the service contexts, since that is the only place
-     * we can get the ORB version info.
-     *
-     * Trying to unmarshal things requiring repository IDs before calling
-     * this will result in NullPtrExceptions.
-     */
-    public void performORBVersionSpecificInit() {
-        // In the case of SystemExceptions, a stream is created
-        // with its default constructor (and thus no impl is set).
-        if (impl != null)
-            impl.performORBVersionSpecificInit();
-    }
-
-    /**
-     * Resets any internal references to code set converters.
-     * This is useful for forcing the CDR stream to reacquire
-     * converters (probably from its subclasses) when state
-     * has changed.
-     */
-    public void resetCodeSetConverters() {
-        impl.resetCodeSetConverters();
-    }
-
-    public void setMessageMediator(MessageMediator messageMediator)
-    {
-        this.messageMediator = (CorbaMessageMediator) messageMediator;
-    }
-
-    public MessageMediator getMessageMediator()
-    {
-        return messageMediator;
-    }
-
-    // ValueInputStream -----------------------------
-
-    public void start_value() {
-        impl.start_value();
-    }
-
-    public void end_value() {
-        impl.end_value();
-    }
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/copyobject/JavaOutputStream.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,435 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.sun.corba.se.impl.encoding;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.nio.ByteBuffer;
-
-import org.omg.CORBA.TypeCode;
-import org.omg.CORBA.Principal;
-import org.omg.CORBA.Any;
-
-import com.sun.corba.se.pept.protocol.MessageMediator;
-
-import com.sun.corba.se.spi.orb.ORB;
-import com.sun.corba.se.spi.logging.CORBALogDomains;
-import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
-import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
-
-import com.sun.corba.se.impl.encoding.CodeSetConversion;
-import com.sun.corba.se.impl.encoding.OSFCodeSetRegistry;
-import com.sun.corba.se.impl.orbutil.ORBConstants;
-import com.sun.corba.se.impl.logging.ORBUtilSystemException;
-
-/**
- * This is delegates to the real implementation.
- */
-public abstract class CDROutputStream
-    extends org.omg.CORBA_2_3.portable.OutputStream
-    implements com.sun.corba.se.impl.encoding.MarshalOutputStream,
-               org.omg.CORBA.DataOutputStream, org.omg.CORBA.portable.ValueOutputStream
-{
-/*
-    private CDROutputStreamBase impl;
-    protected ORB orb ;
-    protected ORBUtilSystemException wrapper ;
-    protected CorbaMessageMediator corbaMessageMediator;
-
-
-    // We can move this out somewhere later.  For now, it serves its purpose
-    // to create a concrete CDR delegate based on the GIOP version.
-    private static class OutputStreamFactory {
-        
-        public static CDROutputStreamBase newOutputStream(ORB orb, GIOPVersion version)
-        {
-            switch(version.intValue()) {
-                case GIOPVersion.VERSION_1_0:
-                    return new CDROutputStream_1_0();
-                case GIOPVersion.VERSION_1_1:
-                    return new CDROutputStream_1_1();
-                case GIOPVersion.VERSION_1_2:
-                    return new CDROutputStream_1_2();
-                default:
-		    ORBUtilSystemException wrapper = ORBUtilSystemException.get( orb,
-			CORBALogDomains.RPC_ENCODING ) ;
-                    // REVISIT - what is appropriate?  INTERNAL exceptions
-                    // are really hard to track later.
-		    throw wrapper.unsupportedGiopVersion( version ) ;
-            }
-        }
-    }
-
-    // REVISIT - These two constructors should be re-factored to better hide
-    // the fact that someone extending this class 'can' construct a CDROutputStream
-    // that does not use pooled ByteBuffers. Right now, only EncapsOutputStream
-    // does _not_ use pooled ByteBuffers, see EncapsOutputStream.
-
-    // NOTE: When a stream is constructed for non-channel-backed sockets
-    // it notifies the constructor not to use pooled (i.e, direct)
-    // ByteBuffers.
-
-    public CDROutputStream(ORB orb,
-                           GIOPVersion version,
-			   boolean littleEndian,
-			   BufferManagerWrite bufferManager,
-                           byte streamFormatVersion,
-                           boolean usePooledByteBuffers)
-    {
-        impl = OutputStreamFactory.newOutputStream(orb, version);
-        impl.init(orb, littleEndian, bufferManager, streamFormatVersion, usePooledByteBuffers);
-
-        impl.setParent(this);
-	this.orb = orb ;
-	this.wrapper = ORBUtilSystemException.get( orb,
-	    CORBALogDomains.RPC_ENCODING ) ;
-    }
-
-    public CDROutputStream(ORB orb,
-                           GIOPVersion version,
-			   boolean littleEndian,
-			   BufferManagerWrite bufferManager,
-                           byte streamFormatVersion)
-    {
-        this(orb, version, littleEndian, bufferManager, streamFormatVersion, true);
-    }
-*/
-
-    private ByteArrayOutputStream bos ;
-    private ObjectOutputStream oos ;
-
-    public JavaOutputStream() 
-    {
-	bos = new ByteArrayOutputStream() ;
-	oos = new ObjectOutputStream( bos ) ;
-    }
-
-    // Provided by IIOPOutputStream and EncapsOutputStream
-    public org.omg.CORBA.portable.InputStream create_input_stream()
-    {
-	ObjectInputStream ois = new ByteArrayInputStream( bos.toByteArray() ) ;
-	    
-	return new JavaInputStream( ois ) ;
-    }
-
-    public final void write_boolean(boolean value) {
-        impl.write_boolean(value);
-    }
-    public final void write_char(char value) {
-        impl.write_char(value);
-    }
-    public final void write_wchar(char value) {
-        impl.write_wchar(value);
-    }
-    public final void write_octet(byte value) {
-        impl.write_octet(value);
-    }
-    public final void write_short(short value) {
-        impl.write_short(value);
-    }
-    public final void write_ushort(short value) {
-        impl.write_ushort(value);
-    }
-    public final void write_long(int value) {
-        impl.write_long(value);
-    }
-    public final void write_ulong(int value) {
-        impl.write_ulong(value);
-    }
-    public final void write_longlong(long value) {
-        impl.write_longlong(value);
-    }
-    public final void write_ulonglong(long value) {
-        impl.write_ulonglong(value);
-    }
-    public final void write_float(float value) {
-        impl.write_float(value);
-    }
-    public final void write_double(double value) {
-        impl.write_double(value);
-    }
-    public final void write_string(String value) {
-        impl.write_string(value);
-    }
-    public final void write_wstring(String value) {
-        impl.write_wstring(value);
-    }
-
-    public final void write_boolean_array(boolean[] value, int offset, int length) {
-        impl.write_boolean_array(value, offset, length);
-    }
-    public final void write_char_array(char[] value, int offset, int length) {
-        impl.write_char_array(value, offset, length);
-    }
-    public final void write_wchar_array(char[] value, int offset, int length) {
-        impl.write_wchar_array(value, offset, length);
-    }
-    public final void write_octet_array(byte[] value, int offset, int length) {
-        impl.write_octet_array(value, offset, length);
-    }
-    public final void write_short_array(short[] value, int offset, int length) {
-        impl.write_short_array(value, offset, length);
-    }
-    public final void write_ushort_array(short[] value, int offset, int length){
-        impl.write_ushort_array(value, offset, length);
-    }
-    public final void write_long_array(int[] value, int offset, int length) {
-        impl.write_long_array(value, offset, length);
-    }
-    public final void write_ulong_array(int[] value, int offset, int length) {
-        impl.write_ulong_array(value, offset, length);
-    }
-    public final void write_longlong_array(long[] value, int offset, int length) {
-        impl.write_longlong_array(value, offset, length);
-    }
-    public final void write_ulonglong_array(long[] value, int offset,int length) {
-        impl.write_ulonglong_array(value, offset, length);
-    }
-    public final void write_float_array(float[] value, int offset, int length) {
-        impl.write_float_array(value, offset, length);
-    }
-    public final void write_double_array(double[] value, int offset, int length) {
-        impl.write_double_array(value, offset, length);
-    }
-    public final void write_Object(org.omg.CORBA.Object value) {
-        impl.write_Object(value);
-    }
-    public final void write_TypeCode(TypeCode value) {
-        impl.write_TypeCode(value);
-    }
-    public final void write_any(Any value) {
-        impl.write_any(value);
-    }
-
-    public final void write_Principal(Principal value) {
-        impl.write_Principal(value);
-    }
-
-    public final void write(int b) throws java.io.IOException {
-        impl.write(b);
-    }
-    
-    public final void write_fixed(java.math.BigDecimal value) {
-        impl.write_fixed(value);
-    }
-
-    public final void write_Context(org.omg.CORBA.Context ctx,
-			      org.omg.CORBA.ContextList contexts) {
-        impl.write_Context(ctx, contexts);
-    }
-
-    public final org.omg.CORBA.ORB orb() {
-        return impl.orb();
-    }
-
-    // org.omg.CORBA_2_3.portable.OutputStream
-    public final void write_value(java.io.Serializable value) {
-        impl.write_value(value);
-    }
-
-    public final void write_value(java.io.Serializable value, java.lang.Class clz) {
-        impl.write_value(value, clz);
-    }
-
-    public final void write_value(java.io.Serializable value, String repository_id) {
-        impl.write_value(value, repository_id);
-    }
-
-    public final void write_value(java.io.Serializable value, 
-                            org.omg.CORBA.portable.BoxedValueHelper factory) {
-        impl.write_value(value, factory);
-    }
-
-    public final void write_abstract_interface(java.lang.Object obj) {
-        impl.write_abstract_interface(obj);
-    }
-
-    // java.io.OutputStream
-    public final void write(byte b[]) throws IOException {
-        impl.write(b);
-    }
-
-    public final void write(byte b[], int off, int len) throws IOException {
-        impl.write(b, off, len);
-    }
-
-    public final void flush() throws IOException {
-        impl.flush();
-    }
-
-    public final void close() throws IOException {
-        impl.close();
-    }
-
-    // com.sun.corba.se.impl.encoding.MarshalOutputStream
-    public final void start_block() {
-        impl.start_block();
-    }
-
-    public final void end_block() {
-        impl.end_block();
-    }
-
-    public final void putEndian() {
-        impl.putEndian();
-    }
-
-    public void writeTo(java.io.OutputStream s)
-	throws IOException 
-    {
-        impl.writeTo(s);
-    }
-
-    public final byte[] toByteArray() {
-        return impl.toByteArray();
-    }
-
-    // org.omg.CORBA.DataOutputStream
-    public final void write_Abstract (java.lang.Object value) {
-        impl.write_Abstract(value);
-    }
-
-    public final void write_Value (java.io.Serializable value) {
-        impl.write_Value(value);
-    }
-
-    public final void write_any_array(org.omg.CORBA.Any[] seq, int offset, int length) {
-        impl.write_any_array(seq, offset, length);
-    }
-
-    public void setMessageMediator(MessageMediator messageMediator)
-    {
-        this.corbaMessageMediator = (CorbaMessageMediator) messageMediator;
-    }
-
-    public MessageMediator getMessageMediator()
-    {
-        return corbaMessageMediator;
-    }
-
-    // org.omg.CORBA.portable.ValueBase
-    public final String[] _truncatable_ids() {
-        return impl._truncatable_ids();
-    }
-
-    // Other
-    protected final int getSize() {
-        return impl.getSize();
-    }
-
-    protected final int getIndex() {
-        return impl.getIndex();
-    }
-
-    protected int getRealIndex(int index) {
-        // Used in indirections. Overridden by TypeCodeOutputStream.
-        return index;
-    }
-
-    protected final void setIndex(int value) {
-        impl.setIndex(value);
-    }
-
-    protected final ByteBuffer getByteBuffer() {
-        return impl.getByteBuffer();
-    }
-
-    protected final void setByteBuffer(ByteBuffer byteBuffer) {
-        impl.setByteBuffer(byteBuffer);
-    }
-
-    public final boolean isLittleEndian() {
-        return impl.isLittleEndian();
-    }
-
-    // XREVISIT - return to final if possible
-    // REVISIT - was protected - need access from msgtypes test.
-    public ByteBufferWithInfo getByteBufferWithInfo() {
-        return impl.getByteBufferWithInfo();
-    }
-
-    protected void setByteBufferWithInfo(ByteBufferWithInfo bbwi) {
-        impl.setByteBufferWithInfo(bbwi);
-    }
-
-    // REVISIT: was protected - but need to access from xgiop.
-    public final BufferManagerWrite getBufferManager() {
-        return impl.getBufferManager();
-    }
-
-    public final void write_fixed(java.math.BigDecimal bigDecimal, short digits, short scale) {
-        impl.write_fixed(bigDecimal, digits, scale);
-    }
-
-    public final void writeOctetSequenceTo(org.omg.CORBA.portable.OutputStream s) {
-        impl.writeOctetSequenceTo(s);
-    }
-
-    public final GIOPVersion getGIOPVersion() {
-        return impl.getGIOPVersion();
-    }
-
-    public final void writeIndirection(int tag, int posIndirectedTo) {
-        impl.writeIndirection(tag, posIndirectedTo);
-    }
-
-    // Use Latin-1 for GIOP 1.0 or when code set negotiation was not
-    // performed.
-    protected CodeSetConversion.CTBConverter createCharCTBConverter() {
-        return CodeSetConversion.impl().getCTBConverter(OSFCodeSetRegistry.ISO_8859_1);
-    }
-
-    // Subclasses must decide what to do here.  It's inconvenient to
-    // make the class and this method abstract because of dup().
-    protected abstract CodeSetConversion.CTBConverter createWCharCTBConverter();
-
-    protected final void freeInternalCaches() {
-        impl.freeInternalCaches();
-    }
-
-    void printBuffer() {
-        impl.printBuffer();
-    }
-
-    public void alignOnBoundary(int octetBoundary) {
-        impl.alignOnBoundary(octetBoundary);
-    }
-
-    // Needed by request and reply messages for GIOP versions >= 1.2 only.
-    public void setHeaderPadding(boolean headerPadding) {
-        impl.setHeaderPadding(headerPadding);
-    }
-
-    // ValueOutputStream -----------------------------
-
-    public void start_value(String rep_id) {
-        impl.start_value(rep_id);
-    }
-
-    public void end_value() {
-        impl.end_value();
-    }
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/interceptors/ThreadCurrentStack.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.interceptors;
-
-import com.sun.corba.se.impl.corba.AnyImpl;
-import org.omg.PortableInterceptor.Current;
-import org.omg.PortableInterceptor.InvalidSlot;
-
-import com.sun.corba.se.impl.util.MinorCodes;
-import com.sun.corba.se.impl.core.ORB;
-
-/**
- * ThreadCurrentStack is the container of PICurrent instances for each thread
- */
-public class ThreadCurrentStack
-{
-    // PICurrentPool is the container for reusable PICurrents
-    private class PICurrentPool {
-
-        // Contains a list of reusable PICurrents
-        private java.util.ArrayList pool;
-
-        // High water mark for the pool
-        // If the pool size reaches this limit then putPICurrent will
-        // not put PICurrent to the pool.
-        private static final int  HIGH_WATER_MARK = 5;
-
-        // currentIndex points to the last PICurrent in the list
-        private int currentIndex;
-
-        PICurrentPool( ) {
-            pool = new java.util.ArrayList( HIGH_WATER_MARK );
-            currentIndex = 0;
-        }
-
-        /**
-         * Puts PICurrent to the re-usable pool.
-         */
-        void putPICurrent( PICurrent current ) {
-            // If there are enough PICurrents in the pool, then don't add
-            // this current to the pool.
-            if( currentIndex >= HIGH_WATER_MARK ) {
-                return;
-            }
-            pool.add(currentIndex , current);
-            currentIndex++;
-        }
-
-        /**
-         * Gets PICurrent from the re-usable pool.
-         */
-        PICurrent getPICurrent( ) {
-            // If there are no entries in the pool then return null
-            if( currentIndex == 0 ) {
-                return null;
-            }
-            // Works like a stack, Gets the last one added first
-            currentIndex--;
-            return (PICurrent) pool.get(currentIndex);
-        }
-    }
-   
-    // Contains all the active PICurrents for each thread.
-    // The ArrayList is made to behave like a stack.
-    private java.util.ArrayList currentContainer;
-
-    // Keeps track of number of PICurrents in the stack.
-    private int currentIndex;
- 
-    // For Every Thread there will be a pool of re-usable ThreadCurrent's
-    // stored in PICurrentPool
-    private PICurrentPool currentPool;
-
-    // The orb associated with this ThreadCurrentStack
-    private ORB piOrb;
-
-    /**
-     * Constructs the stack and and PICurrentPool
-     */
-    ThreadCurrentStack( ORB piOrb, PICurrent current ) {
-       this.piOrb = piOrb;
-       currentIndex = 0;
-       currentContainer = new java.util.ArrayList( );
-       currentPool = new PICurrentPool( );
-       currentContainer.add( currentIndex, current );
-       currentIndex++;
-    }
-   
-
-    /**
-     * pushPICurrent goes through the following steps
-     * 1: Checks to see if there is any PICurrent in PICurrentPool
-     *    If present then use that instance to push into the ThreadCurrentStack
-     *
-     * 2:If there is no PICurrent in the pool, then creates a new one and pushes
-     *    that into the ThreadCurrentStack
-     */
-    void pushPICurrent( ) {
-        PICurrent current = currentPool.getPICurrent( );
-        if( current == null ) {
-            // get an existing PICurrent to get the slotSize
-            PICurrent currentTemp = peekPICurrent();
-            current = new PICurrent( piOrb, currentTemp.getSlotSize( ));
-        }
-        currentContainer.add( currentIndex, current );
-        currentIndex++;
-    }
-
-    /**
-     * popPICurrent does the following
-     * 1: pops the top PICurrent in the ThreadCurrentStack
-     *
-     * 2: resets the slots in the PICurrent which resets the slotvalues to
-     *    null if there are any previous sets. 
-     *
-     * 3: pushes the reset PICurrent into the PICurrentPool to reuse 
-     */
-    void  popPICurrent( ) {
-        // Do not pop the PICurrent, If there is only one.
-        // This should not happen, But an extra check for safety.
-        if( currentIndex <= 1 ) {
-            throw new org.omg.CORBA.INTERNAL( 
-                      "Cannot pop the only PICurrent in the stack",
-		      MinorCodes.CANT_POP_ONLY_CURRENT_2,
-		      CompletionStatus.COMPLETED_NO );
-        }
-        currentIndex--;
-        PICurrent current = (PICurrent)currentContainer.get( currentIndex );
-        current.resetSlots( );
-        currentPool.putPICurrent( current );
-    }
-
-    /**
-     * peekPICurrent gets the top PICurrent in the ThreadCurrentStack without
-     * popping.
-     */
-    PICurrent peekPICurrent( ) {
-       return (PICurrent) currentContainer.get( currentIndex - 1);
-    }
-
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/DefineWrapper.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.orbutil ;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-/** This class provides just a main method.  Its purpose is to allow -D arguments to
-* set up the system properties when starting programs with tools like OptimizeIt that
-* make this difficult or impossible.
-*
-* Invocation: {java launcher of some kind} DefineClass -Dxxx=yyy -Dxxx=yyy ... {class name} arg0, arg1, ...
-* Result: updates system properties with -D args, then uses reflection to invoke {class name}.main with the args
-*/
-
-class DefineWrapper {
-    public static void main( String[] args )
-    {
-	int numberDefines = args.length ;
-	String className = null ;
-
-	for (int ctr=0; ctr<args.length; ctr++ ) {
-	    String arg = args[ctr] ;
-
-	    if ((arg.charAt(0) == '-') && (arg.charAt(1) == 'D')) {
-		int eqIndex =  arg.indexOf( '=' ) ;
-		if (eqIndex < 0)
-		    throw new Exception( arg + " is not a valid property assignment" ) ;
-
-		final String key = arg.subString( 2, eqIndex ) ;
-		final String value = arg.subStrung( eqIndex + 1 ) ;
-
-		AccessController.doPrivileged( new PrivilegedAction() {
-			public Object run() {
-			    System.setProperty( key, value ) ;
-			    return null ;
-			}
-		    } ) ;
-	    } else {
-		numberDefines = ctr ;
-		className = arg ;
-		break ;
-	    }
-	}
-
-	if (numberDefines < args.length) {
-	    Class cls = getMainClass( className ) ;
-	    Method mainMethod = getMainMethod( cls ) ;
-
-	    String[] newArgs = new String[ args.length - numberDefines ] ;
-	    for (int ctr = numberDefines+1; ctr<args.length; ctr++ ) {
-		newArgs[ ctr-numberDefines-1 ] = args[ ctr ] ;
-	    }
-		
-	    // build args to the main and call it
-	    Object params [] = new Object [1];
-	    params[0] = newArgs;
-	    mainMethod.invoke(null, params);
-	} else {
-	    throw new Exception( "No class name given" ) ;
-	}
-    }
-
-    private static Class getMainClass( String name ) 
-    {
-	// determine the class loader to be used for loading the class
-	// since ServerMain is going to be in JDK and we need to have this
-	// class to load application classes, this is required here.
-	ClassLoader cl = Thread.currentThread().getContextClassLoader();
-
-	if (cl == null)
-	    cl = ClassLoader.getSystemClassLoader();
-
-	try {
-	    // determine the main class, try loading with current class loader
-	    cls = Class.forName( className ) ;
-	} catch (ClassNotFoundException ex) {
-	    // eat the exception and try to load using SystemClassLoader
-	    cls = Class.forName( className, true, cl);
-	}
-    }
-
-    private static Method getMainMethod( Class serverClass ) 
-    {
-	Class argTypes[] = new Class[] { String[].class } ;
-	Method method = null ;
-
-	try {
-	    method = serverClass.getDeclaredMethod( "main", argTypes ) ;
-	} catch (Exception exc) {
-	    throw new Exception( "Could not get main() method: " + exc ) ;
-	} 
-
-	if (!isPublicStaticVoid( method ))
-	    throw new Exception( "Main method is not public static void" ) ;
-	
-	return method ;
-    }
-
-    private static boolean isPublicStaticVoid( Method method ) 
-    {
-	// check modifiers: public static
-	int modifiers =  method.getModifiers ();
-	if (!Modifier.isPublic (modifiers) || !Modifier.isStatic (modifiers)) {
-	    logError( method.getName() + " is not public static" ) ;
-	    return false ;
-	}
-
-	// check return type and exceptions
-	if (method.getExceptionTypes ().length != 0) {
-	    logError( method.getName() + " declares exceptions" ) ;
-	    return false ;
-	}
-
-	if (!method.getReturnType().equals (Void.TYPE)) {
-	    logError( method.getName() + " does not have a void return type" ) ;
-	    return false ;
-	}
-
-	return true ;
-    }
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl_save.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,909 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.presentation.rmi ;
-
-import java.lang.reflect.Method;
-
-import java.math.BigInteger;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.HashMap;
-import java.util.StringTokenizer;
-
-import com.sun.corba.se.spi.presentation.rmi.IDLNameTranslator ;
-
-import com.sun.corba.se.impl.presentation.rmi.IDLType ;
-import com.sun.corba.se.impl.presentation.rmi.IDLTypeException ;
-import com.sun.corba.se.impl.presentation.rmi.IDLTypesUtil ;
-import com.sun.corba.se.impl.orbutil.ObjectUtility ;
-
-/**
- * Bidirectional translator between RMI-IIOP interface methods and
- * and IDL Names.
- */
-public class IDLNameTranslatorImpl implements IDLNameTranslator {
-
-    // From CORBA Spec, Table 6 Keywords.
-    // Note that since all IDL identifiers are case 
-    // insensitive, java identifier comparisons to these
-    // will be case insensitive also.
-    private static String[] IDL_KEYWORDS = {
-
-        "abstract", "any", "attribute", "boolean", "case", "char",
-        "const", "context", "custom", "default", "double", "enum",
-        "exception", "factory", "FALSE", "fixed", "float", "in", "inout",
-        "interface", "long", "module", "native", "Object", "octet",
-        "oneway", "out", "private", "public", "raises", "readonly", "sequence",
-        "short", "string", "struct", "supports", "switch", "TRUE", "truncatable",
-        "typedef", "unsigned", "union", "ValueBase", "valuetype", "void",
-	"wchar", "wstring"
-
-    };
-
-    private static char[] HEX_DIGITS = {
-        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
-        'A', 'B', 'C', 'D', 'E', 'F' 
-    };
-    
-    private static final String UNDERSCORE = "_";
-
-    // used to mangle java inner class names
-    private static final String INNER_CLASS_SEPARATOR =
-        UNDERSCORE + UNDERSCORE;
-
-    // used to form IDL array type names
-    private static final String[] BASE_IDL_ARRAY_MODULE_TYPE=
-	new String[] { "org", "omg", "boxedRMI" } ;
-
-    private static final String BASE_IDL_ARRAY_ELEMENT_TYPE = "seq";
-
-    // used to mangling java identifiers that have a leading underscore
-    private static final String LEADING_UNDERSCORE_CHAR = "J";
-    private static final String ID_CONTAINER_CLASH_CHAR = UNDERSCORE;
-
-    // separator used between types in a mangled overloaded method name
-    private static final String OVERLOADED_TYPE_SEPARATOR = 
-        UNDERSCORE + UNDERSCORE;
-
-    // string appended to attribute if it clashes with a method name
-    private static final String ATTRIBUTE_METHOD_CLASH_MANGLE_CHARS =
-        UNDERSCORE + UNDERSCORE;
-
-    private static Set idlKeywords_;
-
-    static {
-        
-        idlKeywords_ = new HashSet();
-        for(int i = 0; i < IDL_KEYWORDS.length; i++) {
-            String next = (String) IDL_KEYWORDS[i];
-            // Convert keyword to all caps to ease equality
-            // check.
-            String keywordAllCaps = next.toUpperCase();
-            idlKeywords_.add(keywordAllCaps);
-        }
-
-    }
-
-    //
-    // Instance state
-    //
-    
-    // Remote interface for name translation.  
-    private Class[] interf_;
-
-    // Maps used to hold name translations.  These do not need to be
-    // synchronized since the translation is never modified after
-    // initialization.
-    private Map methodToIDLNameMap_;
-    private Map IDLNameToMethodMap_;
-    private Method[] methods_;
-    
-    /**
-     * Return an IDLNameTranslator for the given interface.  
-     *
-     * @throws IllegalStateException if given class is not a valid 
-     *         RMI/IIOP Remote Interface
-     */
-    public static IDLNameTranslator get( Class interf )
-    {
-        
-        return new IDLNameTranslatorImpl(new Class[] { interf } );
-
-    }
-
-    /**
-     * Return an IDLNameTranslator for the given interfacex.  
-     *
-     * @throws IllegalStateException if given classes are not  valid 
-     *         RMI/IIOP Remote Interfaces
-     */
-    public static IDLNameTranslator get( Class[] interfaces )
-    {
-        
-        return new IDLNameTranslatorImpl(interfaces );
-
-    }
-
-    public static String getExceptionId( Class cls ) 
-    {
-	// Requirements for this method:
-	// 1. cls must be an exception but not a RemoteException.
-	// 2. If cls has an IDL keyword name, an underscore is prepended (1.3.2.2).
-	// 3. If cls jas a leading underscore, J is prepended (1.3.2.3).
-	// 4. If cls has an illegal IDL ident char, it is mapped to UXXXX where
-	//    XXXX is the unicode value in hex of the char (1.3.2.4).
-	// 5. double underscore for inner class (1.3.2.5).
-	// 6. The ID is "IDL:" + name with / separators + ":1.0".
-	IDLType itype = classToIDLType( cls ) ;
-	return itype.getExceptionName() ;
-    }
-
-    public Class[] getInterfaces()
-    {
-        return interf_;
-    }
-
-    public Method[] getMethods()
-    {
-	return methods_ ;
-    }
-
-    public Method getMethod( String idlName ) 
-    {
-        return (Method) IDLNameToMethodMap_.get(idlName);
-    }
-
-    public String getIDLName( Method method ) 
-    {
-        return (String) methodToIDLNameMap_.get(method);
-    }
-
-    /**
-     * Initialize an IDLNameTranslator for the given interface.  
-     *
-     * @throws IllegalStateException if given class is not a valid 
-     *         RMI/IIOP Remote Interface
-     */
-    private IDLNameTranslatorImpl(Class[] interfaces) 
-    {
-
-        try {
-            IDLTypesUtil idlTypesUtil = new IDLTypesUtil();
-	    for (int ctr=0; ctr<interfaces.length; ctr++)
-		idlTypesUtil.validateRemoteInterface(interfaces[ctr]);
-            interf_ = interfaces;
-            buildNameTranslation();
-        } catch( IDLTypeException ite) {
-            String msg = ite.getMessage();
-            IllegalStateException ise = new IllegalStateException(msg);
-            ise.initCause(ite);
-            throw ise;
-        }
-    }
-
-    private void buildNameTranslation() 
-    {
-	// holds method info, keyed by method
-	Map allMethodInfo = new HashMap() ;
-
-	for (int ctr=0; ctr<interf_.length; ctr++) {
-	    Class interf = interf_[ctr] ;
-
-	    IDLTypesUtil idlTypesUtil = new IDLTypesUtil();
-	    Method[] methods = interf.getMethods();
-
-	    // Take an initial pass through all the methods and create some
-	    // information that will be used to track the IDL name 
-	    // transformation.
-	    for(int i = 0; i < methods.length; i++) {
-		
-		Method nextMethod = methods[i];
-
-		IDLMethodInfo methodInfo = new IDLMethodInfo();
-
-		methodInfo.method = nextMethod;           
-
-		methodInfo.propertyType = 
-		    idlTypesUtil.propertyAccessorMethodType(
-			nextMethod, interf ) ;
-
-		if (methodInfo.propertyType != null) {
-		    String attributeName = idlTypesUtil.
-			getAttributeNameForProperty(nextMethod.getName());
-		    methodInfo.originalName = attributeName;
-		    methodInfo.mangledName  = attributeName;               
-		} else {
-		    methodInfo.originalName = nextMethod.getName();
-		    methodInfo.mangledName  = nextMethod.getName();
-		}
-		
-		allMethodInfo.put(nextMethod, methodInfo);
-	    }
-	}
-
-	// Check for having both is<NAME> and get<NAME> methods.
-
-	
-        //
-        // Perform case sensitivity test first.  This applies to all
-        // method names AND attributes.  Compare each method name and 
-        // attribute to all other method names and attributes.  If names 
-        // differ only in case, apply mangling as defined in section 1.3.2.7
-        // of Java2IDL spec.  Note that we compare using the original names.
-        //
-        for(Iterator outerIter=allMethodInfo.values().iterator();
-            outerIter.hasNext();) {
-            IDLMethodInfo outer = (IDLMethodInfo) outerIter.next();           
-            for(Iterator innerIter = allMethodInfo.values().iterator(); 
-                innerIter.hasNext();) {
-                IDLMethodInfo inner = (IDLMethodInfo) innerIter.next();
-
-                if( (outer != inner) &&
-                    (!outer.originalName.equals(inner.originalName)) &&
-                    outer.originalName.equalsIgnoreCase(inner.originalName) ) {
-                    outer.mangledName = 
-                        mangleCaseSensitiveCollision(outer.originalName);
-                    break;
-                }
-
-            }
-        }
-                   
-        for(Iterator iter = allMethodInfo.values().iterator(); 
-            iter.hasNext();) {
-            IDLMethodInfo next = (IDLMethodcurrentInfo) iter.next();           
-            next.mangledName = 
-                mangleIdentifier(next.mangledName, 
-		    next.propertyType != null);
-        }         
-
-        //
-        // Now check for overloaded method names and apply 1.3.2.6.
-        //
-        for(Iterator outerIter=allMethodInfo.values().iterator();
-            outerIter.hasNext();) {
-            IDLMethodInfo outer = (IDLMethodInfo) outerIter.next();
-            if (outer.propertyType != null) {
-                continue;
-            }
-            for(Iterator innerIter = allMethodInfo.values().iterator(); 
-                innerIter.hasNext();) {
-                IDLMethodInfo inner = (IDLMethodInfo) innerIter.next();
-
-                if( (outer != inner) &&
-                    (inner.propertyType == null) &&
-                    outer.originalName.equals(inner.originalName) ) {
-                    outer.mangledName = mangleOverloadedMethod
-                        (outer.mangledName, outer.method);
-                    break;
-                }
-            }
-        }
-       
-        //
-        // Now mangle any properties that clash with method names.
-        //
-        for(Iterator outerIter=allMethodInfo.values().iterator();
-            outerIter.hasNext();) {
-            IDLMethodInfo outer = (IDLMethodInfo) outerIter.next();
-            if(outer.propertyType == null) {
-                continue;
-            }
-            for(Iterator innerIter = allMethodInfo.values().iterator(); 
-                innerIter.hasNext();) {
-                IDLMethodInfo inner = (IDLMethodInfo) innerIter.next();
-                if( (outer != inner) &&
-                    (inner.propertyType == null) &&
-                    outer.mangledName.equals(inner.mangledName) ) {
-                    outer.mangledName = outer.mangledName + 
-                        ATTRIBUTE_METHOD_CLASH_MANGLE_CHARS;
-                    break;
-                }
-            }
-        }
-
-        //
-        // Ensure that no mapped method names clash with mapped name
-        // of container(1.3.2.9).  This is a case insensitive comparison.
-        //
-	for (int ctr=0; ctr<interf_.length; ctr++ ) {
-	    Class interf = interf_[ctr] ;
-	    String mappedContainerName = getMappedContainerName(interf);
-	    for(Iterator iter = allMethodInfo.values().iterator(); 
-		iter.hasNext();) {
-		IDLMethodInfo next = (IDLMethodInfo) iter.next();           
-		if( (next.propertyType == null) &&
-		    identifierClashesWithContainer(mappedContainerName, 
-						   next.mangledName)) {
-		    next.mangledName = mangleContainerClash(next.mangledName);
-		}
-	    }         
-	}
-
-        //
-        // Populate name translation maps.
-        //
-        methodToIDLNameMap_ = new HashMap();
-        IDLNameToMethodMap_ = new HashMap();
-	methods_ = (Method[])allMethodInfo.keySet().toArray( 
-	    new Method[0] ) ;
-
-        for(Iterator iter = allMethodInfo.values().iterator(); 
-            iter.hasNext();) {
-            IDLMethodInfo next = (IDLMethodInfo) iter.next();           
-            String idlName = next.mangledName;
-            if (next.propertyType != null) {                
-		idlName = javaPropertyPrefixToIDL( next.propertyType ) +
-		    next.mangledName ;
-            }
-            
-            methodToIDLNameMap_.put(next.method, idlName);
-
-            // Final check to see if there are any clashes after all the
-            // manglings have been applied.  If so, this is treated as an
-            // invalid interface.  Currently, we do a CASE-SENSITIVE 
-            // comparison since that matches the rmic behavior.  
-            // @@@ Shouldn't this be a case-insensitive check?
-	    // If there is a collision between is<TYPE> and get<TYPE>,
-	    // map only is<TYPE> to an attribute, and leave the
-	    // get<TYPE> method alone.
-            if( IDLNameToMethodMap_.containsKey(idlName) ) {
-                // @@@ I18N
-                Method clash = (Method) IDLNameToMethodMap_.get(idlName);
-		MethodInfo clashMethodInfo = 
-		    (MethodInfo)allMethodInfo.get( clash ) ;
-		if (clashMethodInfo.isBooleanProperty() &&
-		    next.isReadProperty()) {
-		    // fix idlName
-		} else if (clashMethodInfo.isReadProperty() &&
-		    next.isBooleanProperty()) {
-		    // Remove entry under idlName
-		    // put entry into table under correct name
-		} else {
-		    throw new IllegalStateException("Error : methods " + 
-			clash + " and " + next.method + 
-			" both result in IDL name '" + idlName + "'");
-		}
-            } 
-
-	    IDLNameToMethodMap_.put(idlName, next.method);
-        }
-
-        return;
-
-    }
-
-    
-    /**
-     * Perform all necessary stand-alone identifier mangling operations
-     * on a java identifier that is being transformed into an IDL name.
-     * That is, mangling operations that don't require looking at anything
-     * else but the identifier itself.  This covers sections 1.3.2.2, 1.3.2.3, 
-     * and 1.3.2.4 of the Java2IDL spec.  Method overloading and 
-     * case-sensitivity checks are handled elsewhere.
-     */
-
-    private static String mangleIdentifier(String identifier) {
-        return mangleIdentifier(identifier, false);
-    }
-
-    private static String mangleIdentifier(String identifier, boolean attribute) {
-
-        String mangledName = identifier;
-
-        //
-        // Apply leading underscore test (1.3.2.3) 
-        // This should be done before IDL Keyword clash test, since clashing 
-        // IDL keywords are mangled by adding a leading underscore.
-        //
-        if( hasLeadingUnderscore(mangledName) ) {
-            mangledName = mangleLeadingUnderscore(mangledName);            
-        }         
-        
-        //
-        // Apply IDL keyword clash test (1.3.2.2).
-        // This is not needed for attributes since when the full property 
-        // name is composed it cannot clash with an IDL keyword.
-        // (Also, rmic doesn't do it.)
-        //
-        
-        if( !attribute && isIDLKeyword(mangledName) ) {
-            mangledName = mangleIDLKeywordClash(mangledName);           
-        } 
-
-        //
-        // Replace illegal IDL identifier characters (1.3.2.4) 
-        // for all method names and attributes.
-        //
-        if( !isIDLIdentifier(mangledName) ) {
-            mangledName = mangleUnicodeChars(mangledName);
-        }       
-        
-        return mangledName;
-    }
-
-    /**
-     * Checks whether a java identifier clashes with an
-     * IDL keyword.  Note that this is a case-insensitive
-     * comparison.
-     *
-     * Used to implement section 1.3.2.2 of Java2IDL spec.
-     */ 
-    private static boolean isIDLKeyword(String identifier) {
-        
-        String identifierAllCaps = identifier.toUpperCase();
-
-        return idlKeywords_.contains(identifierAllCaps);
-    }
-
-    private static String mangleIDLKeywordClash(String identifier) {
-        return UNDERSCORE + identifier;
-    }
-
-    private static String mangleLeadingUnderscore(String identifier) {
-        return LEADING_UNDERSCORE_CHAR + identifier;
-    }
-
-    /**
-     * Checks whether a java identifier starts with an underscore.
-     * Used to implement section 1.3.2.3 of Java2IDL spec.
-     */
-    private static boolean hasLeadingUnderscore(String identifier) {
-        return identifier.startsWith(UNDERSCORE);
-    }
-
-    /**
-     * Implements Section 1.3.2.4 of Java2IDL Mapping.
-     * All non-IDL identifier characters must be replaced
-     * with their Unicode representation.
-     */
-    static String mangleUnicodeChars(String identifier) {
-        StringBuffer mangledIdentifier = new StringBuffer();
-
-        for(int i = 0; i < identifier.length(); i++) {
-            char nextChar = identifier.charAt(i);
-            if( isIDLIdentifierChar(nextChar) ) {
-                mangledIdentifier.append(nextChar);
-            } else {
-                String unicode = charToUnicodeRepresentation(nextChar);
-                mangledIdentifier.append(unicode);
-            }
-        }
-        
-        return mangledIdentifier.toString();
-    }
-
-    /**
-     * Implements mangling portion of Section 1.3.2.7 of Java2IDL spec.
-     * This method only deals with the actual mangling.  Decision about 
-     * whether case-sensitive collision mangling is required is made 
-     * elsewhere.
-     * 
-     * 
-     * "...a mangled name is generated consisting of the original name 
-     * followed by an underscore separated list of decimal indices 
-     * into the string, where the indices identify all the upper case 
-     * characters in the original string. Indices are zero based."
-     *
-     */ 
-    String mangleCaseSensitiveCollision(String identifier) {
-
-        StringBuffer mangledIdentifier = new StringBuffer(identifier);
-
-        // There is always at least one trailing underscore, whether or 
-        // not the identifier has uppercase letters.
-        mangledIdentifier.append(UNDERSCORE);
-
-        boolean needUnderscore = false;
-        for(int i = 0; i < identifier.length(); i++) {
-            char next = identifier.charAt(i);
-            if( Character.isUpperCase(next) ) {
-                // This bit of logic is needed to ensure that we have
-                // an underscore separated list of indices but no 
-                // trailing underscores.  Basically, after we have at least
-                // one uppercase letter, we always put an undercore before
-                // printing the next one.
-                if( needUnderscore ) {
-                    mangledIdentifier.append(UNDERSCORE);
-                }
-                mangledIdentifier.append(i);
-                needUnderscore = true;
-            }
-        }
-
-        return mangledIdentifier.toString();
-    }
-
-    private static String mangleContainerClash(String identifier) {
-        return identifier + ID_CONTAINER_CLASH_CHAR;
-    }
-
-    /**
-     * Implements Section 1.3.2.9 of Java2IDL Mapping. Container in this
-     * context means the name of the java Class(excluding package) in which 
-     * the identifier is defined.  Comparison is case-insensitive.
-     */
-    private static boolean identifierClashesWithContainer
-        (String mappedContainerName, String identifier) {
-
-        return identifier.equalsIgnoreCase(mappedContainerName);
-    }
-
-    /**
-     * Returns Unicode mangling as defined in Section 1.3.2.4 of
-     * Java2IDL spec.
-     *
-     * "For Java identifiers that contain illegal OMG IDL identifier 
-     * characters such as '$' or Unicode characters outside of ISO Latin 1,
-     * any such illegal characters are replaced by "U" followed by the
-     * 4 hexadecimal characters(in upper case) representing the Unicode
-     * value.  So, the Java name a$b is mapped to aU0024b and 
-     * x\u03bCy is mapped to xU03BCy."
-     */
-    public static String charToUnicodeRepresentation(char c) {
-        
-        int orig = (int) c;
-        StringBuffer hexString = new StringBuffer();
-        
-        int value = orig;
-
-        while( value > 0 ) {
-            int div = value / 16;
-            int mod = value % 16;
-            hexString.insert(0, HEX_DIGITS[mod]);
-            value = div;
-        }
-
-        int numZerosToAdd = 4 - hexString.length();
-        for(int i = 0; i < numZerosToAdd; i++) {
-            hexString.insert(0, "0");
-        }
-
-        hexString.insert(0, "U");
-        return hexString.toString();
-    }
-
-    private static boolean isIDLIdentifier(String identifier) {
-
-        boolean isIdentifier = true;
-
-        for(int i = 0; i < identifier.length(); i++) {
-            char nextChar = identifier.charAt(i);
-            // 1st char must be alphbetic.
-            isIdentifier  = (i == 0) ?
-                isIDLAlphabeticChar(nextChar) : 
-                isIDLIdentifierChar(nextChar);
-            if( !isIdentifier ) {
-                break;
-            }
-        }
-
-        return isIdentifier;
-        
-    }
-
-    private static boolean isIDLIdentifierChar(char c) {
-        return (isIDLAlphabeticChar(c) || 
-                isIDLDecimalDigit(c)   ||
-                isUnderscore(c));
-    }
-
-    /**
-     * True if character is one of 114 Alphabetic characters as
-     * specified in Table 2 of Chapter 3 in CORBA spec.
-     */ 
-    private static boolean isIDLAlphabeticChar(char c) {
-
-        // NOTE that we can't use the java.lang.Character
-        // isUpperCase, isLowerCase, etc. methods since they
-        // include many characters other than the Alphabetic list in
-        // the CORBA spec.  Instead, we test for inclusion in the
-        // Unicode value ranges for the corresponding legal characters.
-
-        boolean alphaChar = 
-            (
-             // A - Z
-             ((c >= 0x0041) && (c <= 0x005A)) 
-
-             ||
-             
-             // a - z
-             ((c >= 0x0061) && (c <= 0x007A)) 
-             
-             ||
-             
-             // other letter uppercase, other letter lowercase, which is
-             // the entire upper half of C1 Controls except X and /
-             ((c >= 0x00C0) && (c <= 0x00FF)
-              && (c != 0x00D7) && (c != 0x00F7)));
-        
-        return alphaChar;
-    }
-
-    /**
-     * True if character is one of 10 Decimal Digits 
-     * specified in Table 3 of Chapter 3 in CORBA spec.
-     */ 
-    private static boolean isIDLDecimalDigit(char c) {
-        return ( (c >= 0x0030) && (c <= 0x0039) );
-    }
-
-    private static boolean isUnderscore(char c) {
-        return ( c == 0x005F );
-    }
-    
-    /**
-     * Mangle an overloaded method name as defined in Section 1.3.2.6 of
-     * Java2IDL spec.  Current value of method name is passed in as argument.
-     * We can't start from original method name since the name might have
-     * been partially mangled as a result of the other rules.  
-     */
-    private static String mangleOverloadedMethod(String mangledName, Method m) {
-
-        IDLTypesUtil idlTypesUtil = new IDLTypesUtil();
-
-        // Start by appending the separator string
-        String newMangledName = mangledName + OVERLOADED_TYPE_SEPARATOR;
-        
-        Class[] parameterTypes = m.getParameterTypes();
-        
-        for(int i = 0; i < parameterTypes.length; i++) {
-            Class nextParamType = parameterTypes[i];
-            
-            if( i > 0 ) {
-                newMangledName = newMangledName + OVERLOADED_TYPE_SEPARATOR;
-            }            
-            IDLType idlType = classToIDLType(nextParamType);
-
-            String moduleName = idlType.getModuleName();
-            String memberName = idlType.getMemberName();
-
-            String typeName = (moduleName.length() > 0) ?
-                moduleName + UNDERSCORE + memberName : memberName;
-                                   
-            if( !idlTypesUtil.isPrimitive(nextParamType) && 
-                (idlTypesUtil.getSpecialCaseIDLTypeMapping(nextParamType) 
-                 == null) &&               
-                isIDLKeyword(typeName) ) {
-                typeName = mangleIDLKeywordClash(typeName);
-            }
-
-            typeName = mangleUnicodeChars(typeName);
-
-            newMangledName = newMangledName + typeName;
-        }        
-
-        return newMangledName;        
-    }
-
-
-    private static IDLType classToIDLType(Class c) {
-               
-        IDLType idlType = null;
-        IDLTypesUtil idlTypesUtil = new IDLTypesUtil();
-
-        if( idlTypesUtil.isPrimitive(c) ) {
-
-            idlType = idlTypesUtil.getPrimitiveIDLTypeMapping(c);
-
-        } else if( c.isArray() ) {
-            
-            // Calculate array depth, as well as base element type.
-            Class componentType = c.getComponentType();
-            int numArrayDimensions = 1;
-            while(componentType.isArray()) {
-                componentType = componentType.getComponentType();
-                numArrayDimensions++;
-            }
-            IDLType componentIdlType = classToIDLType(componentType);
-            
-            String[] modules = BASE_IDL_ARRAY_MODULE_TYPE;
-            if( componentIdlType.hasModule() ) {
-                modules = (String[])ObjectUtility.concatenateArrays( modules, 
-                    componentIdlType.getModules() ) ;
-            }
-
-            String memberName = BASE_IDL_ARRAY_ELEMENT_TYPE + 
-                numArrayDimensions + UNDERSCORE + 
-                componentIdlType.getMemberName();                
-            
-            idlType = new IDLType(c, modules, memberName);
-               
-        } else {
-            idlType = idlTypesUtil.getSpecialCaseIDLTypeMapping(c);
-
-            if (idlType == null) {
-                // Section 1.3.2.5 of Java2IDL spec defines mangling rules for
-                // inner classes.
-                String memberName = getUnmappedContainerName(c);
-
-                // replace inner class separator with double underscore
-                memberName = memberName.replaceAll("\\$", 
-                                                   INNER_CLASS_SEPARATOR);
-                                
-                if( hasLeadingUnderscore(memberName) ) {
-                    memberName = mangleLeadingUnderscore(memberName);
-                }                    
-
-                // Get raw package name.  If there is a package, it
-                // will still have the "." separators and none of the
-                // mangling rules will have been applied.
-                String packageName = getPackageName(c);                 
-                
-                if (packageName == null) {
-		    idlType = new IDLType( c, memberName ) ;
-		} else {
-		    // If this is a generated IDL Entity Type we need to
-		    // prepend org_omg_boxedIDL per sections 1.3.5 and 1.3.9
-		    if (idlTypesUtil.isEntity(c)) {
-			packageName = "org.omg.boxedIDL." + packageName ;
-		    }
-		    
-		    // Section 1.3.2.1 and 1.3.2.6 of Java2IDL spec defines 
-		    // rules for mapping java packages to IDL modules and for 
-		    // mangling module name portion of type name.  NOTE that
-		    // of the individual identifier mangling rules, 
-		    // only the leading underscore test is done here.  
-		    // The other two(IDL Keyword, Illegal Unicode chars) are
-		    // done in mangleOverloadedMethodName.  
-                    StringTokenizer tokenizer = 
-                        new StringTokenizer(packageName, ".");
-		    
-		    String[] modules = new String[ tokenizer.countTokens() ] ;
-		    int index = 0 ;
-                    while (tokenizer.hasMoreElements()) {
-                        String next = tokenizer.nextToken();
-                        String nextMangled = hasLeadingUnderscore(next) ?
-                            mangleLeadingUnderscore(next) : next;
-
-			modules[index++] = nextMangled ;
-                    }                                                          
-
-		    idlType = new IDLType(c, modules, memberName);
-                }
-            }
-        }
-
-        return idlType;
-    }
-
-    /**
-     * Return Class' package name or null if there is no package.
-     */
-    private static String getPackageName(Class c) {
-        Package thePackage = c.getPackage();
-        String packageName = null;
-
-        // Try to get package name by introspection.  Some classloaders might
-        // not provide this information, so check for null.
-        if( thePackage != null ) {
-            packageName = thePackage.getName();
-        } else {
-            // brute force method
-            String fullyQualifiedClassName = c.getName();
-            int lastDot = fullyQualifiedClassName.indexOf('.');
-            packageName = (lastDot == -1) ? null :
-                fullyQualifiedClassName.substring(0, lastDot);
-        }
-        return packageName;
-    }
-    
-    private static String getMappedContainerName(Class c) {
-        String unmappedName = getUnmappedContainerName(c);
-
-        return mangleIdentifier(unmappedName);
-    }
-
-    /**
-     * Return portion of class name excluding package name.
-     */
-    private static String getUnmappedContainerName(Class c) {
-
-        String memberName  = null;
-        String packageName = getPackageName(c);
-
-        String fullyQualifiedClassName = c.getName();
-               
-        if( packageName != null ) {
-            int packageLength = packageName.length();
-            memberName = fullyQualifiedClassName.substring(packageLength + 1);
-        } else {
-            memberName = fullyQualifiedClassName;
-
-        }
-
-        return memberName;
-    }
-
-    /**
-     * Internal helper class for tracking information related to each
-     * interface method while we're building the name translation table.
-     */
-    private static class IDLMethodInfo 
-    {
-        public Method method;
-        public String propertyType;
-        
-        // If this is a property, originalName holds the original 
-        // attribute name. Otherwise, it holds the original method name.
-        public String originalName;
-
-        // If this is a property, mangledName holds the mangled attribute 
-        // name. Otherwise, it holds the mangled method name. 
-        public String mangledName;        
-
-    }
-
-    public String toString() {
-
-        StringBuffer contents = new StringBuffer();
-        contents.append("IDLNameTranslator[" );
-	for( int ctr=0; ctr<interf_.length; ctr++) {
-	    if (ctr != 0)
-		contents.append( " " ) ;
-	    contents.append( interf_[ctr].getName() ) ;
-	}
-        contents.append("]\n");
-        for(Iterator iter = methodToIDLNameMap_.keySet().iterator();
-            iter.hasNext();) {
-
-            Method method  = (Method) iter.next();
-            String idlName = (String) methodToIDLNameMap_.get(method);
-
-            contents.append(idlName + ":" + method + "\n");
-
-        }
-
-        return contents.toString();
-    }
-
-    public static void main(String[] args) {
-        
-        Class remoteInterface = java.rmi.Remote.class;
-        
-        if( args.length > 0 ) {
-            String className = args[0];
-            try {
-                remoteInterface = Class.forName(className);
-            } catch(Exception e) {
-                e.printStackTrace();
-                System.exit(-1);
-            }            
-        }
-        
-        System.out.println("Building name translation for " + remoteInterface);
-        try {
-            IDLNameTranslator nameTranslator = 
-                IDLNameTranslatorImpl.get(remoteInterface);
-            System.out.println(nameTranslator);
-        } catch(IllegalStateException ise) {
-            ise.printStackTrace();
-        }
-    }
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLTypesUtil_save.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,544 +0,0 @@
-/*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.presentation.rmi ;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Field;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.Iterator;
-
-/**
- * Utility class for testing RMI/IDL Types as defined in
- * Section 1.2 of The Java Language to IDL Mapping.  Note that
- * these are static checks only.  Runtime checks, such as those
- * described in Section 1.2.3, #3, are not covered.
- */
-public class IDLTypesUtil {
-
-    public static final String JAVA_GET_PROPERTY_PREFIX = "get";
-    public static final String JAVA_SET_PROPERTY_PREFIX = "set";
-    public static final String JAVA_IS_PROPERTY_PREFIX  = "is";
-
-    public static final int VALID_TYPE   = 0;
-    public static final int INVALID_TYPE = 1;
-
-    /**
-     * Validate a class to ensure it conforms to the rules for a
-     * Java RMI/IIOP interface.
-     *
-     * @throws IDLTypeException if not a valid RMI/IIOP interface.
-     */
-    public void validateRemoteInterface(Class c) throws IDLTypeException
-    {
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        if( !c.isInterface() ) {
-            String msg = "Class " + c + " must be a java interface.";
-            throw new IDLTypeException(msg);
-        }
-
-        if( !java.rmi.Remote.class.isAssignableFrom(c) ) {
-            String msg = "Class " + c + " must extend java.rmi.Remote, " +
-                "either directly or indirectly.";
-            throw new IDLTypeException(msg);
-        }
-
-        // Get all methods, including super-interface methods.
-        Method[] methods = c.getMethods();
-        
-        for(int i = 0; i < methods.length; i++) {
-            Method next = methods[i];
-            validateExceptions(next);
-        }
-        
-	// Removed because of bug 4989053
-        // validateDirectInterfaces(c);
-        validateConstants(c);
-
-        return;
-    }
-
-    public boolean isRemoteInterface(Class c)     
-    {
-        boolean remoteInterface = true;
-        try {
-            validateRemoteInterface(c);
-        } catch(IDLTypeException ite) {
-            remoteInterface = false;
-        }
-
-        return remoteInterface;
-    }
-
-    /**
-     * Section 1.2.2 Primitive Types
-     */ 
-    public boolean isPrimitive(Class c) 
-    {
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        return c.isPrimitive();
-    }
-
-    /**
-     * Section 1.2.4
-     */
-    public boolean isValue(Class c) 
-    {
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        return 
-            (!c.isInterface() &&
-             java.io.Serializable.class.isAssignableFrom(c) &&
-             !java.rmi.Remote.class.isAssignableFrom(c));
-    }
-
-    /**
-     * Section 1.2.5
-     */
-    public boolean isArray(Class c) 
-    {
-        boolean arrayType = false;
-
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        if( c.isArray() ) {
-            Class componentType = c.getComponentType();
-            arrayType =
-                (isPrimitive(componentType) || isRemoteInterface(componentType) ||
-                 isEntity(componentType) || isException(componentType) || 
-		 isValue(componentType) || isObjectReference(componentType) );
-        }
-
-        return arrayType;
-    }
-
-    /**
-     * Section 1.2.6
-     */
-    public boolean isException(Class c) 
-    {
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        // Must be a checked exception, not including RemoteException or
-        // its subclasses.
-        return isCheckedException(c) && !isRemoteException(c) && isValue(c);
-    }
-
-    public boolean isRemoteException(Class c)
-    {
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-	return java.rmi.RemoteException.class.isAssignableFrom(c) ;
-    }
-
-    public boolean isCheckedException(Class c) 
-    {
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        return Throwable.class.isAssignableFrom(c) &&
-            !RuntimeException.class.isAssignableFrom(c) &&
-            !Error.class.isAssignableFrom(c) ;
-    }
-
-    /**
-     * Section 1.2.7
-     */ 
-    public boolean isObjectReference(Class c) 
-    {
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        return (c.isInterface() && 
-                org.omg.CORBA.Object.class.isAssignableFrom(c));
-    }
-
-    /**
-     * Section 1.2.8
-     */ 
-    public boolean isEntity(Class c)
-    {
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        Class superClass = c.getSuperclass();
-        return (!c.isInterface() &&
-                (superClass != null) && 
-                (org.omg.CORBA.portable.IDLEntity.class.isAssignableFrom(c)));
-    }
-
-    public String javaPropertyPrefixToIDL( String javaPrefix )
-    {
-	return "_" + javaPrefix + "_" ;
-    }
-
-    /**
-     * Return the property type if given method is legal property accessor as defined in 
-     * Section 1.3.4.3 of Java2IDL spec.  Result is one of: JAVA_GET_PROPERTY_PREFIX,
-     * JAVA_SET_PROPERTY_PREFIX, JAVA_IS_PROPERTY_PREFIX.
-     */
-    public String propertyAccessorMethodType(Method m, Class c) {
-        
-        String methodName = m.getName();
-        Class returnType  = m.getReturnType();
-        Class[] parameters = m.getParameterTypes();
-        Class[] exceptionTypes = m.getExceptionTypes();
-        String propertyType = null;
-
-        if( methodName.startsWith(JAVA_GET_PROPERTY_PREFIX) ) {
-
-            if((parameters.length == 0) && (returnType != Void.TYPE) &&
-		!hasCorrespondingReadProperty(m, c, JAVA_IS_PROPERTY_PREFIX) {
-                propertyType = JAVA_GET_PROPERTY_PREFIX;
-            }
-           
-        } else if( methodName.startsWith(JAVA_SET_PROPERTY_PREFIX) ) {
-            
-            if((returnType == Void.TYPE) && (parameters.length == 1)) {
-                if (hasCorrespondingReadProperty(m, c, JAVA_GET_PROPERTY_PREFIX) ||
-                    hasCorrespondingReadProperty(m, c, JAVA_IS_PROPERTY_PREFIX)) {
-                    propertyType = JAVA_SET_PROPERTY_PREFIX;
-                }
-            }
-
-        } else if( methodName.startsWith(JAVA_IS_PROPERTY_PREFIX) ) {
-            if((parameters.length == 0) && (returnType == Boolean.TYPE)) {
-                propertyType = JAVA_IS_PROPERTY_PREFIX;             
-            }
-        }
-
-        // Some final checks that apply to all properties.  
-        if( propertyType != null ) {
-            if(!validPropertyExceptions(m) || 
-               (methodName.length() <= propertyType.length())) {
-                propertyType = null;
-            }                                       
-        }
-
-        return propertyType ;
-    }
-
-    private boolean hasCorrespondingReadProperty
-        (Method writeProperty, Class c, String readPropertyPrefix) {
-
-        String writePropertyMethodName = writeProperty.getName();
-        Class[] writePropertyParameters = writeProperty.getParameterTypes();
-        boolean foundReadProperty = false;
-
-        try {            
-            // Look for a valid corresponding Read property
-            String readPropertyMethodName = 
-                writePropertyMethodName.replaceFirst
-                    (JAVA_SET_PROPERTY_PREFIX, readPropertyPrefix);
-            Method readPropertyMethod = c.getMethod(readPropertyMethodName, 
-                                                    new Class[] {});
-            foundReadProperty = 
-                ((propertyAccessorMethodType(readPropertyMethod, c) != null) &&
-                 (readPropertyMethod.getReturnType() == 
-                   writePropertyParameters[0]));
-        } catch(Exception e) {
-            // ignore. this means we didn't find a corresponding get property.
-        }
-
-        return foundReadProperty;
-    }
-
-    public String getAttributeNameForProperty(String propertyName) {
-        String attributeName = null;
-        String prefix = null;
-
-        if( propertyName.startsWith(JAVA_GET_PROPERTY_PREFIX) ) {
-            prefix = JAVA_GET_PROPERTY_PREFIX;           
-        } else if( propertyName.startsWith(JAVA_SET_PROPERTY_PREFIX) ) {
-            prefix = JAVA_SET_PROPERTY_PREFIX;
-        } else if( propertyName.startsWith(JAVA_IS_PROPERTY_PREFIX) ) {
-            prefix = JAVA_IS_PROPERTY_PREFIX;
-        }
-
-        if( (prefix != null) && (prefix.length() < propertyName.length()) ) {
-            String remainder = propertyName.substring(prefix.length());
-            if( (remainder.length() >= 2) && 
-                Character.isUpperCase(remainder.charAt(0)) &&
-                Character.isUpperCase(remainder.charAt(1)) ) {
-                // don't set the first letter to lower-case if the 
-                // first two are upper-case
-                attributeName = remainder;
-            } else {
-                attributeName = Character.toLowerCase(remainder.charAt(0)) +
-                    remainder.substring(1);
-            }
-        }
-
-        return attributeName;
-    }
-
-    /**
-     * Return IDL Type name for primitive types as defined in 
-     * Section 1.3.3 of Java2IDL spec or null if not a primitive type.
-     */ 
-    public IDLType getPrimitiveIDLTypeMapping(Class c) {
-               
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        if( c.isPrimitive() ) {            
-            if( c == Void.TYPE ) {
-		return new IDLType( c, "void" ) ;
-            } else if( c == Boolean.TYPE ) {
-		return new IDLType( c, "boolean" ) ;
-            } else if( c == Character.TYPE ) {
-		return new IDLType( c, "wchar" ) ;
-            } else if( c == Byte.TYPE ) {
-		return new IDLType( c, "octet" ) ;
-            } else if( c == Short.TYPE ) {
-		return new IDLType( c, "short" ) ;
-            } else if( c == Integer.TYPE ) {
-		return new IDLType( c, "long" ) ;
-            } else if( c == Long.TYPE ) {
-		return new IDLType( c, "long_long" ) ;
-            } else if( c == Float.TYPE ) {
-		return new IDLType( c, "float" ) ;
-            } else if( c == Double.TYPE ) {
-		return new IDLType( c, "double" ) ;
-            }
-        }
-        
-        return null;
-    }
-
-    /**
-     * Return IDL Type name for special case type mappings as defined in
-     * Table 1-1 of Java2IDL spec or null if given class is not a special
-     * type.
-     */
-    public IDLType getSpecialCaseIDLTypeMapping(Class c) {
-
-        if( c == null ) {
-            throw new IllegalArgumentException();
-        } 
-
-        if( c == java.lang.Object.class ) {
-	    return new IDLType( c, new String[] { "java", "lang" },
-		"Object" ) ;
-        } else if( c == java.lang.String.class ) {
-	    return new IDLType( c, new String[] { "CORBA" },
-		"WStringValue" ) ;
-        } else if( c == java.lang.Class.class ) {
-	    return new IDLType( c, new String[] { "javax", "rmi", "CORBA" },
-		"ClassDesc" ) ;
-        } else if( c == java.io.Serializable.class ) {
-	    return new IDLType( c, new String[] { "java", "io" },
-		"Serializable" ) ;
-        } else if( c == java.io.Externalizable.class ) {
-	    return new IDLType( c, new String[] { "java", "io" },
-		"Externalizable" ) ;
-        } else if( c == java.rmi.Remote.class ) {
-	    return new IDLType( c, new String[] { "java", "rmi" },
-		"Remote" ) ;
-        } else if( c == org.omg.CORBA.Object.class ) {
-	    return new IDLType( c, "Object" ) ;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Implements 1.2.3 #2 and #4
-     */
-    private void validateExceptions(Method method) throws IDLTypeException {
-        
-        Class[] exceptions = method.getExceptionTypes();
-
-        boolean declaresRemoteExceptionOrSuperClass = false;
-
-        // Section 1.2.3, #2
-        for(int eIndex = 0; eIndex < exceptions.length; eIndex++) {
-            Class exception = exceptions[eIndex];
-            if( isRemoteExceptionOrSuperClass(exception) ) {
-                declaresRemoteExceptionOrSuperClass = true;
-                break;
-            }
-        }
-
-        if( !declaresRemoteExceptionOrSuperClass ) {
-            String msg = "Method '" + method + "' must throw at least one " +
-                "exception of type java.rmi.RemoteException or one of its " +
-                "super-classes";
-            throw new IDLTypeException(msg);
-        } 
-
-        // Section 1.2.3, #4
-	// See also bug 4972402
-	// For all exceptions E in exceptions, 
-	// (isCheckedException(E) => (isValue(E) || RemoteException.isAssignableFrom( E ) )
-        for(int eIndex = 0; eIndex < exceptions.length; eIndex++) {
-            Class exception = exceptions[eIndex];
-
-	    if (isCheckedException(exception) && !isValue(exception) && 
-		!isRemoteException(exception)) 
-	    {
-		String msg = "Exception '" + exception + "' on method '" +
-		    method + "' is not a allowed RMI/IIOP exception type";
-		throw new IDLTypeException(msg);
-            }
-        }
-
-        return;
-    }
-
-    /**
-     * Returns true if the method's throw clause conforms to the exception 
-     * restrictions for properties as defined in Section 1.3.4.3 of 
-     * Java2IDL spec.  This means that for all exceptions E declared on the
-     * method, E isChecked => RemoteException.isAssignableFrom( E ). 
-     */
-    private boolean validPropertyExceptions(Method method) 
-    {
-        Class[] exceptions = method.getExceptionTypes();
-         
-        for(int eIndex = 0; eIndex < exceptions.length; eIndex++) {
-            Class exception = exceptions[eIndex];
-
-	    if (isCheckedException(exception) && !isRemoteException(exception)) 
-		return false ;
-        }
-
-        return true;
-    }
-
-    /**
-     * Implements Section 1.2.3, #2.  
-     */
-    private boolean isRemoteExceptionOrSuperClass(Class c) {
-        return 
-            ((c == java.rmi.RemoteException.class) ||
-             (c == java.io.IOException.class) ||
-             (c == java.lang.Exception.class) ||
-             (c == java.lang.Throwable.class));
-    }
-
-    /**
-     * Implements Section 1.2.3, #5.
-     */ 
-    private void validateDirectInterfaces(Class c) throws IDLTypeException {
-
-        Class[] directInterfaces = c.getInterfaces();
-
-        if( directInterfaces.length < 2 ) {
-            return;
-        }
-
-        Set allMethodNames = new HashSet();
-        Set currentMethodNames = new HashSet();
-
-        for(int i = 0; i < directInterfaces.length; i++) {
-            Class next = directInterfaces[i];
-            Method[] methods = next.getMethods();
-
-            // Comparison is based on method names only.  First collect
-            // all methods from current interface, eliminating duplicate
-            // names.
-            currentMethodNames.clear();
-            for(int m = 0; m < methods.length; m++) {
-                currentMethodNames.add(methods[m].getName());
-            }
-
-            // Now check each method against list of all unique method
-            // names processed so far.
-            for(Iterator iter=currentMethodNames.iterator(); iter.hasNext();) {
-                String methodName = (String) iter.next();
-                if( allMethodNames.contains(methodName) ) {
-                    String msg = "Class " + c + " inherits method " + 
-                        methodName + " from multiple direct interfaces.";
-                    throw new IDLTypeException(msg);
-                } else {
-                    allMethodNames.add(methodName);
-                }
-            }
-        }
-
-        return;
-    }
-
-    /**
-     * Implements 1.2.3 #6
-     */
-    private void validateConstants(final Class c) 
-        throws IDLTypeException {
-
-        Field[] fields = null;
-
-        try {
-            fields = (Field[])
-                java.security.AccessController.doPrivileged
-                (new java.security.PrivilegedExceptionAction() {
-                        public java.lang.Object run() throws Exception {
-                            return c.getFields();
-                        }
-                    });
-        } catch(java.security.PrivilegedActionException pae) {
-            IDLTypeException ite = new IDLTypeException();
-            ite.initCause(pae);
-            throw ite;
-        }
-   
-        for(int i = 0; i < fields.length; i++) {
-            Field next = fields[i];
-            Class fieldType = next.getType();
-            if( (fieldType != java.lang.String.class) &&
-                !isPrimitive(fieldType) ) {
-                String msg = "Constant field '" + next.getName() + 
-                    "' in class '" + next.getDeclaringClass().getName() + 
-                    "' has invalid type' " + next.getType() + "'. Constants" +
-                    " in RMI/IIOP interfaces can only have primitive" + 
-                    " types and java.lang.String types.";
-                throw new IDLTypeException(msg);
-            }
-        }
-
-
-        return;
-    }
-
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalClientRequestImpl.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.iiop;
-
-import com.sun.corba.se.impl.protocol.Request;
-import com.sun.corba.se.impl.core.ClientRequest;
-import com.sun.corba.se.impl.core.ServiceContext;
-import com.sun.corba.se.impl.core.ServiceContexts;
-import com.sun.corba.se.impl.core.ClientResponse;
-import com.sun.corba.se.impl.core.ServerRequest;
-import com.sun.corba.se.impl.core.ServerResponse;
-import com.sun.corba.se.impl.corba.IOR;
-import com.sun.corba.se.impl.corba.GIOPVersion;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage;
-import com.sun.corba.se.impl.orbutil.ORBConstants;
-import com.sun.corba.se.impl.core.ORBVersion;
-import com.sun.corba.se.impl.core.ORB;
-import com.sun.corba.se.impl.orbutil.ORBUtility;
-import com.sun.corba.se.impl.ior.ObjectKeyFactory ;
-import com.sun.corba.se.impl.ior.ObjectKey ;
-import com.sun.corba.se.impl.ior.ObjectKeyTemplate ;
-import com.sun.corba.se.impl.ior.IIOPProfile;
-
-public class LocalClientRequestImpl extends IIOPOutputStream 
-    implements ClientRequest 
-{
-    public LocalClientRequestImpl( GIOPVersion gv, 
-	ORB orb, IOR ior, short addrDisposition, 
-        String operationName, boolean oneway, ServiceContexts svc, 
-	int requestId, byte streamFormatVersion)
-    {
-	super(gv, 
-              orb, 
-              null, 
-              BufferManagerFactory.newBufferManagerWrite(BufferManagerFactory.GROW),
-              streamFormatVersion);
-
-	this.isOneway = oneway;
-	boolean responseExpected = !isOneway;
-
-        IIOPProfile iop = ior.getProfile();
-	ObjectKey okey = iop.getObjectKey();
-	ObjectKeyTemplate oktemp = okey.getTemplate() ;
-	ORBVersion version = oktemp.getORBVersion() ;
-	orb.setORBVersion( version ) ;
-
-        this.request = MessageBase.createRequest(orb, gv, requestId,
-	    responseExpected, ior, addrDisposition, operationName, svc, null);
-	setMessage(request);
-	request.write(this);
-
-	// mark beginning of msg body for possible later use
-	bodyBegin = getSize();
-    }
-
-    public int getRequestId() {
-	return request.getRequestId();
-    }
-    
-    public boolean isOneWay() {
-	return isOneway;
-    }
-
-    public ServiceContexts getServiceContexts() {
-	return request.getServiceContexts();
-    }
-
-    public String getOperationName() {
-	return request.getOperation();
-    }
-
-    public ObjectKey getObjectKey() {
-	return request.getObjectKey();
-    }
-
-    public ServerRequest getServerRequest()
-    {
-	// Set the size of the marshalled data in the message header.
-	getMessage().setSize( getByteBuffer(), getSize() ) ;
-
-	// Construct a new ServerRequest out of the buffer in this ClientRequest
-	LocalServerRequestImpl serverRequest = new LocalServerRequestImpl(
-	    (ORB)orb(), toByteArray(), request ) ;
-
-	// Skip over all of the GIOP header information.  This positions
-	// the offset in the buffer so that the skeleton can correctly read
-	// the marshalled arguments.
-	serverRequest.setIndex( bodyBegin ) ;
-
-	return serverRequest ;
-    }
-    
-    public ClientResponse invoke() 
-    {	
-	ORB myORB = (ORB)orb() ;
-
-	ServerResponse serverResponse = myORB.process( getServerRequest() ) ;
-
-	LocalServerResponseImpl lsr = (LocalServerResponseImpl)serverResponse ;
-
-	return lsr.getClientResponse() ;
-    }
-
-    /**
-     * Check to see if the request is local.
-     */
-    public boolean isLocal(){
-        return true;
-    }
-
-    private RequestMessage request;
-    private int bodyBegin;
-    private boolean isOneway;
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalClientResponseImpl.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.iiop;
-
-import java.io.IOException;
-
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.CompletionStatus;
-
-import com.sun.corba.se.impl.core.Response;
-import com.sun.corba.se.impl.core.ClientResponse;
-import com.sun.corba.se.impl.corba.IOR;
-import com.sun.corba.se.impl.core.ORB;
-import com.sun.corba.se.impl.core.ServiceContext;
-import com.sun.corba.se.impl.core.ServiceContexts;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage;
-import com.sun.corba.se.impl.orbutil.MinorCodes;
-
-class LocalClientResponseImpl extends IIOPInputStream implements ClientResponse
-{
-    LocalClientResponseImpl(ORB orb, byte[] buf, ReplyMessage header)
-    {
-	super(orb, buf, header.getSize(), header.isLittleEndian(), header, null);
-
-        this.reply = header;
-
-        // NOTE (Ram J) (06/02/2000) if we set result.setIndex(bodyBegin)
-        // in LocalServerResponse.getClientResponse(), then we do not need
-        // to read the headers (done below) anymore.
-        // This will be an optimisation which is can be done to speed up the
-        // local invocation by avoiding reading the headers in the local cases.
-
-        // BUGFIX(Ram Jeyaraman) This has been moved from
-        // LocalServerResponse.getClientResponse()
-        // Skip over all of the GIOP header information.  This positions
-        // the offset in the buffer so that the skeleton can correctly read
-        // the marshalled arguments.
-        this.setIndex(Message.GIOPMessageHeaderLength);
-
-        // BUGFIX(Ram Jeyaraman) For local invocations, the reply mesg fields
-        // needs to be set, by reading the response buffer contents
-        // to correctly set the exception type and other info.
-        this.reply.read(this);
-    }
-
-    LocalClientResponseImpl(SystemException ex)
-    {
-	this.systemException = ex;
-    }
-
-    public boolean isSystemException() {
-	if ( reply != null )
-	    return reply.getReplyStatus() == ReplyMessage.SYSTEM_EXCEPTION;
-	else
-	    return (systemException != null);	
-    }
-
-    public boolean isUserException() {
-	if ( reply != null )
-	    return reply.getReplyStatus() == ReplyMessage.USER_EXCEPTION;
-	else
-	    return false;
-    }
-
-    public boolean isLocationForward() {
-        if ( reply != null ) {
-            return ( (reply.getReplyStatus() == ReplyMessage.LOCATION_FORWARD) ||
-                     (reply.getReplyStatus() == ReplyMessage.LOCATION_FORWARD_PERM) );
-            //return reply.getReplyStatus() == ReplyMessage.LOCATION_FORWARD;
-        } else {
-            return false;
-        }
-    }
-    
-    public boolean isDifferentAddrDispositionRequested() {
-        if (reply != null) {
-            return reply.getReplyStatus() == ReplyMessage.NEEDS_ADDRESSING_MODE;
-        }
-    
-        return false;
-    }
-        
-    public short getAddrDisposition() {
-        if (reply != null) {
-            return reply.getAddrDisposition();
-        }
-        
-        throw new org.omg.CORBA.INTERNAL(
-            "Null reply in getAddrDisposition",
-            MinorCodes.NULL_REPLY_IN_GET_ADDR_DISPOSITION,        
-            CompletionStatus.COMPLETED_MAYBE);
-    }
-        
-    public IOR getForwardedIOR() {
-	if ( reply != null )
-	    return reply.getIOR();
-	else
-	    return null;
-    }
-
-    public int getRequestId() {
-	if ( reply != null )
-	    return reply.getRequestId();
-	else
-	    throw new org.omg.CORBA.INTERNAL("Error in getRequestId");
-    }
-
-    public ServiceContexts getServiceContexts() {
-	if ( reply != null )
-	    return reply.getServiceContexts();
-	else
-	    return null;
-    }
-
-    public SystemException getSystemException() {
-	if ( reply != null )
-	    return reply.getSystemException();
-	else
-	    return systemException;
-    }
-
-    public java.lang.String peekUserExceptionId() {
-        mark(Integer.MAX_VALUE);
-        String result = read_string();
-        reset();
-        return result;
-    }
-
-    /**
-     * Check to see if the response is local.
-     */
-    public boolean isLocal(){
-        return true;
-    }
-
-    private ReplyMessage reply;
-    private SystemException systemException;
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalServerRequestImpl.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.iiop;
-
-import org.omg.CORBA.SystemException;
-
-import com.sun.corba.se.impl.core.ServerRequest;
-import com.sun.corba.se.impl.core.ServiceContext;
-import com.sun.corba.se.impl.core.DuplicateServiceContext;
-import com.sun.corba.se.impl.core.UEInfoServiceContext;
-import com.sun.corba.se.impl.core.ServiceContexts;
-import com.sun.corba.se.impl.core.ServerResponse;
-import com.sun.corba.se.impl.corba.IOR;
-import com.sun.corba.se.impl.core.ORB;
-import com.sun.corba.se.impl.orbutil.ORBUtility;  //d11638
-import org.omg.CORBA.portable.UnknownException;
-import org.omg.CORBA.UNKNOWN;
-import org.omg.CORBA.CompletionStatus;
-import com.sun.corba.se.impl.ior.ObjectKey;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage;
-
-class LocalServerRequestImpl extends IIOPInputStream implements ServerRequest {
-    org.omg.CORBA.portable.OutputStream replyStream;
-    org.omg.CORBA.portable.OutputStream exceptionReplyStream;
-
-    LocalServerRequestImpl(ORB orb, byte[] buf, RequestMessage header)
-    {
-        super(orb, buf, header.getSize(), header.isLittleEndian(), header, null );
-
-        this.request = header;
-    }
-
-    public int getRequestId() {
-    	return request.getRequestId();
-    }
-
-    public boolean isOneWay() {
-    	return !request.isResponseExpected();
-    }
-
-    public ServiceContexts getServiceContexts() {
-    	return request.getServiceContexts();
-    }
-
-    public String getOperationName() {
-    	return request.getOperation();
-    }
-
-    public ObjectKey getObjectKey() {
-    	return request.getObjectKey();
-    }
-
-    public ServerResponse createResponse(ServiceContexts svc)
-    {
-    	return new LocalServerResponseImpl(this, svc);
-    }
-
-    public org.omg.CORBA.portable.OutputStream createReply() {
-        if (replyStream == null) {
-            replyStream = (org.omg.CORBA.portable.OutputStream)
-                                createResponse(null);
-        }
-        return replyStream;
-    }
-
-    public org.omg.CORBA.portable.OutputStream createExceptionReply() {
-        if (exceptionReplyStream == null) {
-            exceptionReplyStream = (org.omg.CORBA.portable.OutputStream)
-                                        createUserExceptionResponse(null);
-        }
-        return exceptionReplyStream;
-    }
-
-    public ServerResponse createUserExceptionResponse(
-	ServiceContexts svc)
-    {
-    	return new LocalServerResponseImpl(this, svc, true);
-    }
-
-    public ServerResponse createUnknownExceptionResponse(
-	        UnknownException ex) {
-        ServiceContexts contexts = null;
-        SystemException sys = new UNKNOWN( 0,
-            CompletionStatus.COMPLETED_MAYBE);
-
-            try {
-                contexts = new ServiceContexts( (ORB)orb() );
-                UEInfoServiceContext uei = new UEInfoServiceContext(sys);
-                contexts.put(uei) ;
-            } catch (DuplicateServiceContext d) {
-            // can't happen
-            }
-
-        return createSystemExceptionResponse(sys,contexts);
-    }
-
-    public ServerResponse createSystemExceptionResponse(
-    	SystemException ex, ServiceContexts svc) {
-
-	// Only do this if interceptors have been initialized on this request
-	// and have not completed their lifecycle (otherwise the info stack
-	// may be empty or have a different request's entry on top).
-	if (executePIInResponseConstructor()) {
-	    // Inform Portable Interceptors of the SystemException.  This is
-	    // required to be done here because the ending interception point
-	    // is called in the ServerResponseImpl constructor called below
-	    // but we do not currently write the SystemException into the
-	    // response until after the ending point is called.
-	    ORB orb = (ORB)orb();
-	    orb.getPIHandler().setServerPIInfo( ex );
-	}
-
-	if (orb() != null && ((ORB)orb()).subcontractDebugFlag && ex != null)
-            ORBUtility.dprint(this, "Sending SystemException:", ex);
-
-        LocalServerResponseImpl response =
-            new LocalServerResponseImpl(this, svc, false);
-        ORBUtility.writeSystemException(ex, response);
-        return response;
-    }
-
-    public ServerResponse createLocationForward(
-	        IOR ior, ServiceContexts svc) {
-        ReplyMessage reply = MessageBase.createReply( (ORB)orb(),
-	    request.getGIOPVersion(), request.getRequestId(),
-	    ReplyMessage.LOCATION_FORWARD, svc, ior);
-        LocalServerResponseImpl response =
-            new LocalServerResponseImpl(this, reply, ior);
-
-        return response;
-    }
-
-    private RequestMessage request;
-
-    /**
-     * Check to see if the request is local.
-     */
-    public boolean isLocal(){
-        return true;
-    }
-
-    private boolean _executeReturnServantInResponseConstructor = false;
-
-    public boolean executeReturnServantInResponseConstructor()
-    {
-	return _executeReturnServantInResponseConstructor;
-    }
-
-    public void setExecuteReturnServantInResponseConstructor(boolean b)
-    {
-	_executeReturnServantInResponseConstructor = b;
-    }
-
-    
-    private boolean _executeRemoveThreadInfoInResponseConstructor = false;
-
-    public boolean executeRemoveThreadInfoInResponseConstructor()
-    {
-	return _executeRemoveThreadInfoInResponseConstructor;
-    }
-
-    public void setExecuteRemoveThreadInfoInResponseConstructor(boolean b)
-    {
-	_executeRemoveThreadInfoInResponseConstructor = b;
-    }
-
-    
-    private boolean _executePIInResponseConstructor = false;
-                                                            
-    public boolean executePIInResponseConstructor() {
-        return _executePIInResponseConstructor;
-    }
-
-    public void setExecutePIInResponseConstructor( boolean b ) {
-        _executePIInResponseConstructor = b;
-    }
-
-    // We know that we're talking to the same ValueHandler, so
-    // use the maximum version it supports.
-    public byte getStreamFormatVersionForReply() {
-        return ORBUtility.getMaxStreamFormatVersion();
-    }
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalServerResponseImpl.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.iiop;
-
-import org.omg.CORBA.SystemException;
-
-import com.sun.corba.se.impl.core.ServerResponse;
-import com.sun.corba.se.impl.core.ORB;
-import com.sun.corba.se.impl.corba.IOR;
-import com.sun.corba.se.impl.core.ServiceContext;
-import com.sun.corba.se.impl.core.ServiceContexts;
-import com.sun.corba.se.impl.core.ClientResponse;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage;
-
-class LocalServerResponseImpl
-    extends     IIOPOutputStream
-    implements  ServerResponse
-{
-    LocalServerResponseImpl(LocalServerRequestImpl request, ServiceContexts svc)
-    {
-        this(request,
-            MessageBase.createReply(
-                            (ORB)request.orb(),
-                            request.getGIOPVersion(),
-                            request.getRequestId(), ReplyMessage.NO_EXCEPTION,
-                            svc, null),
-            null);
-    }
-
-    LocalServerResponseImpl(LocalServerRequestImpl request, ServiceContexts svc,
-            boolean user)
-    {
-        this(request,
-            MessageBase.createReply(
-                            (ORB)request.orb(),
-                            request.getGIOPVersion(), request.getRequestId(),
-                            user ? ReplyMessage.USER_EXCEPTION :
-                                   ReplyMessage.SYSTEM_EXCEPTION,
-                            svc, null),
-            null);
-    }
-
-    LocalServerResponseImpl( LocalServerRequestImpl request, ReplyMessage reply,
-			     IOR ior)
-    {
-        super(request.getGIOPVersion(),
-              (ORB)request.orb(), 
-              null, 
-              BufferManagerFactory.newBufferManagerWrite(BufferManagerFactory.GROW),
-              request.getStreamFormatVersionForReply());
-
-        setMessage(reply);
-
-	ORB orb = (ORB)request.orb();
-
-	ServerResponseImpl.runServantPostInvoke(orb, request);
-
-	if( request.executePIInResponseConstructor() ) {
-	    // Invoke server request ending interception points (send_*):
-	    // Note: this may end up with a SystemException or an internal
-	    // Runtime ForwardRequest.
-	    orb.getPIHandler().invokeServerPIEndingPoint( reply );
-
-	    // Note this will be executed even if a ForwardRequest or
-	    // SystemException is thrown by a Portable Interceptors ending 
-	    // point since we end up in this constructor again anyway.
-	    orb.getPIHandler().cleanupServerPIRequest();
-
-	    // See (Local)ServerRequestImpl.createSystemExceptionResponse
-	    // for why this is necesary.
-	    request.setExecutePIInResponseConstructor(false);
-	}
-
-	// Once you get here then the final reply is available (i.e.,
-	// postinvoke and interceptors have completed.
-	if (request.executeRemoveThreadInfoInResponseConstructor()) {
-	    ServerResponseImpl.removeThreadInfo(orb, request);
-	}
-        
-	reply.write(this);
-	if (reply.getIOR() != null)
-	    reply.getIOR().write(this);
-
-        this.reply = reply;
-        this.ior = reply.getIOR();
-    }
-
-    public boolean isSystemException() {
-        if (reply != null)
-            return reply.getReplyStatus() == ReplyMessage.SYSTEM_EXCEPTION;
-        return false;
-    }
-
-    public boolean isUserException() {
-        if (reply != null)
-            return reply.getReplyStatus() == ReplyMessage.USER_EXCEPTION;
-        return false;
-    }
-
-    public boolean isLocationForward() {
-        if (ior != null)
-            return true;
-        return false;
-    }
-
-    public IOR getForwardedIOR() {
-    	return ior;
-    }
-
-    public int getRequestId() {
-        if (reply != null)
-            return reply.getRequestId();
-        return -1;
-    }
-
-    public ServiceContexts getServiceContexts() {
-        if (reply != null)
-            return reply.getServiceContexts();
-        return null;
-    }
-
-    public SystemException getSystemException() {
-        if (reply != null)
-            return reply.getSystemException();
-        return null;
-    }
-
-    public ReplyMessage getReply()
-    {
-    	return reply ;
-    }
-
-    public ClientResponse getClientResponse()
-    {
-        // set the size of the marshalled data in the message header
-        getMessage().setSize(getByteBuffer(), getSize());
-
-        // Construct a new ClientResponse out of the buffer in this ClientRequest
-        LocalClientResponseImpl result =
-            new LocalClientResponseImpl( (ORB)orb(), toByteArray(), reply);
-
-        // NOTE (Ram J) (06/02/2000) if we set result.setIndex(bodyBegin) here
-        // then the LocalClientResponse does not need to read the headers anymore.
-        // This will be an optimisation which is can be done to speed up the
-        // local invocation by avoiding reading the headers in the local cases.
-
-        // BUGFIX(Ram Jeyaraman) result.setOffset is now done in
-        // LocalClientResponseImpl constructor.
-        /*
-          // Skip over all of the GIOP header information.  This positions
-          // the offset in the buffer so that the skeleton can correctly read
-          // the marshalled arguments.
-          result.setOffset( bodyBegin ) ;
-        */
-
-        return result ;
-    }
-
-    /**
-     * Check to see if the response is local.
-     */
-    public boolean isLocal(){
-        return true;
-    }
-
-    private ReplyMessage reply;
-    private IOR ior; // forwarded IOR
-}
--- a/corba/src/share/classes/com/sun/corba/se/impl/transport/BufferConnectionImpl.sjava	Wed Jul 05 19:05:35 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,710 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.transport;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.nio.ByteBuffer;
-import java.nio.channels.SelectableChannel;
-import java.nio.channels.SelectionKey;
-import java.nio.channels.SocketChannel;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.Collections;
-import java.util.Hashtable;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.omg.CORBA.COMM_FAILURE;
-import org.omg.CORBA.CompletionStatus;
-import org.omg.CORBA.DATA_CONVERSION;
-import org.omg.CORBA.INTERNAL;
-import org.omg.CORBA.MARSHAL;
-import org.omg.CORBA.OBJECT_NOT_EXIST;
-import org.omg.CORBA.SystemException;
-
-import com.sun.org.omg.SendingContext.CodeBase;
-
-import com.sun.corba.se.pept.broker.Broker;
-import com.sun.corba.se.pept.encoding.InputObject;
-import com.sun.corba.se.pept.encoding.OutputObject;
-import com.sun.corba.se.pept.protocol.MessageMediator;
-import com.sun.corba.se.pept.transport.Acceptor;
-import com.sun.corba.se.pept.transport.Connection;
-import com.sun.corba.se.pept.transport.ConnectionCache;
-import com.sun.corba.se.pept.transport.ContactInfo;
-import com.sun.corba.se.pept.transport.EventHandler;
-import com.sun.corba.se.pept.transport.InboundConnectionCache;
-import com.sun.corba.se.pept.transport.OutboundConnectionCache;
-import com.sun.corba.se.pept.transport.ResponseWaitingRoom;
-import com.sun.corba.se.pept.transport.Selector;
-
-import com.sun.corba.se.spi.ior.IOR;
-import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
-import com.sun.corba.se.spi.logging.CORBALogDomains;
-import com.sun.corba.se.spi.orb.ORB ;
-import com.sun.corba.se.spi.orbutil.threadpool.Work;
-import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
-import com.sun.corba.se.spi.transport.CorbaContactInfo;
-import com.sun.corba.se.spi.transport.CorbaConnection;
-import com.sun.corba.se.spi.transport.CorbaResponseWaitingRoom;
-
-import com.sun.corba.se.impl.encoding.CachedCodeBase;
-import com.sun.corba.se.impl.encoding.CDRInputStream_1_0;
-import com.sun.corba.se.impl.encoding.CDROutputObject;
-import com.sun.corba.se.impl.encoding.CDROutputStream_1_0;
-import com.sun.corba.se.impl.encoding.CodeSetComponentInfo;
-import com.sun.corba.se.impl.encoding.OSFCodeSetRegistry;
-import com.sun.corba.se.impl.logging.ORBUtilSystemException;
-import com.sun.corba.se.impl.orbutil.ORBConstants;
-import com.sun.corba.se.impl.orbutil.ORBUtility;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;
-import com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase;
-import com.sun.corba.se.impl.transport.CorbaResponseWaitingRoomImpl;
-
-/**
- * @author Ken Cavanaugh
- */
-public class BufferConnectionImpl
-    extends
-	EventHandlerBase
-    implements
-        CorbaConnection,
-	Work
-{
-    //
-    // New transport.
-    //
-
-    protected long enqueueTime;
-
-    public SocketChannel getSocketChannel()
-    {
-	return null;
-    }
-
-    // REVISIT:
-    // protected for test: genericRPCMSGFramework.IIOPConnection constructor.
-
-    //
-    // From iiop.Connection.java
-    //
-
-    protected long timeStamp = 0;
-    protected boolean isServer = false;
-
-    // Start at some value other than zero since this is a magic
-    // value in some protocols.
-    protected int requestId = 5;
-    protected CorbaResponseWaitingRoom responseWaitingRoom;
-    protected int state;
-    protected java.lang.Object stateEvent = new java.lang.Object();
-    protected java.lang.Object writeEvent = new java.lang.Object();
-    protected boolean writeLocked;
-    protected int serverRequestCount = 0;
-    
-    // Server request map: used on the server side of Connection
-    // Maps request ID to IIOPInputStream.
-    Map serverRequestMap = new HashMap() ;
-
-    // This is a flag associated per connection telling us if the
-    // initial set of sending contexts were sent to the receiver
-    // already...
-    protected boolean postInitialContexts = false;
- 
-    // Remote reference to CodeBase server (supplies
-    // FullValueDescription, among other things)
-    protected IOR codeBaseServerIOR;
-
-    // CodeBase cache for this connection.  This will cache remote operations,
-    // handle connecting, and ensure we don't do any remote operations until
-    // necessary.
-    protected CachedCodeBase cachedCodeBase = new CachedCodeBase(this);
-
-    protected ORBUtilSystemException wrapper ;
-
-    List buffers ;
-
-    public BufferConnectionImpl(ORB orb, byte[][] data )
-    {
-	this.orb = orb;
-	wrapper = ORBUtilSystemException.get( orb,
-	    CORBALogDomains.RPC_TRANSPORT ) ;
-	buffers = new ArrayList() ;
-    }
-
-    ////////////////////////////////////////////////////
-    //
-    // framework.transport.Connection
-    //
-
-    public boolean shouldRegisterReadEvent()
-    {
-	return false;
-    }
-
-    public boolean shouldRegisterServerReadEvent()
-    {
-	return false;
-    }
-
-    public boolean read()
-    {
-	return true ;
-    }
-
-    protected CorbaMessageMediator readBits()
-    {
-	return null ;
-    }
-
-    protected boolean dispatch(CorbaMessageMediator messageMediator)
-    {
-    }
-
-    public boolean shouldUseDirectByteBuffers()
-    {
-	return false ;
-    }
-
-    // Only called from readGIOPMessage with (12, 0, 12) as arguments
-    // size is size of buffer to create
-    // offset is offset from start of message in buffer
-    // length is length to read
-    public ByteBuffer read(int size, int offset, int length)
-	throws IOException
-    {
-	byte[] buf = new byte[size];
-	readFully( buf, offset, length);
-	ByteBuffer byteBuffer = ByteBuffer.wrap(buf);
-	byteBuffer.limit(size);
-	return byteBuffer;
-    }
-
-    // Only called as read( buf, 12, msgsize-12 ) in readGIOPMessage
-    // We can ignore the byteBuffer parameter
-    // offset is the starting position to place data in the result
-    // length is the length of the data to read
-    public ByteBuffer read(ByteBuffer byteBuffer, int offset, int length)
-	throws IOException
-    {
-	int size = offset + length;
-	byte[] buf = new byte[size];
-	readFully(buf, offset, length);
-	return ByteBuffer.wrap(buf);
-    }
-
-    // Read size bytes from buffer list and place the data
-    // starting at offset in buf.
-    public void readFully(byte[] buf, int offset, int size) 
-	throws IOException
-    {
-	int remaining = size ;
-	int position = offset ;
-	while (remaining > 0) {
-	    ByteBuffer buff = (ByteBuffer)buffers.get(0) ; 
-	    int dataSize = buff.remaining() ;
-	    int xferSize = dataSize ;
-	    if (dataSize >= remaining) :
-		xferSize = remaining ;
-		buffers.remove(0) ;
-	    }
-	    
-	    buff.get( buf, offset, xferSize ) ;
-
-	    offset += xferSize ;
-	    remaining -= xferSize ;
-	}
-    }    
-
-    public void write(ByteBuffer byteBuffer)
-	throws IOException
-    {
-	buffers.add( byteBuffer ) ;
-    }
-
-    /**
-     * Note:it is possible for this to be called more than once
-     */
-    public synchronized void close() 
-    {
-    }
-
-    public Acceptor getAcceptor()
-    {
-	return null;
-    }
-
-    public ContactInfo getContactInfo()
-    {
-	return null;
-    }
-
-    public EventHandler getEventHandler()
-    {
-	return this;
-    }
-
-    public OutputObject createOutputObject(MessageMediator messageMediator)
-    {
-	// REVISIT - remove this method from Connection and all it subclasses.
-	throw new RuntimeException("*****SocketOrChannelConnectionImpl.createOutputObject - should not be called.");
-    }
-
-    // This is used by the GIOPOutputObject in order to
-    // throw the correct error when handling code sets.
-    // Can we determine if we are on the server side by
-    // other means?  XREVISIT
-    public boolean isServer()
-    {
-        return isServer;
-    }
-
-    public boolean isBusy()
-    {
-	return false ;
-    }
-
-    public long getTimeStamp()
-    {
-	return timeStamp;
-    }
-
-    public void setTimeStamp(long time)
-    {
-	timeStamp = time;
-    }
-
-    public void setState(String stateString)
-    {
-	synchronized (stateEvent) {
-	    if (stateString.equals("ESTABLISHED")) {
-		state =  ESTABLISHED;
-		stateEvent.notifyAll();
-	    } else {
-		// REVISIT: ASSERT
-	    }
-	}
-    }
-
-    public void writeLock()
-    {
-    }
-
-    public void writeUnlock()
-    {
-    }
-
-    public void sendWithoutLock(OutputObject outputObject)
-    {
-    }
-
-    public void registerWaiter(MessageMediator messageMediator)
-    {
-    }
-
-    public void unregisterWaiter(MessageMediator messageMediator)
-    {
-    }
-
-    public InputObject waitForResponse(MessageMediator messageMediator)
-    {
-	return null ;
-    }
-
-    public void setConnectionCache(ConnectionCache connectionCache)
-    {
-    }
-
-    public ConnectionCache getConnectionCache()
-    {
-	return null;	
-    }
-
-    ////////////////////////////////////////////////////
-    //
-    // EventHandler methods
-    //
-
-    public SelectableChannel getChannel()
-    {
-	return null;
-    }
-
-    public int getInterestOps()
-    {
-	return null;
-    }
-
-    //    public Acceptor getAcceptor() - already defined above.
-
-    public Connection getConnection()
-    {
-	return this;
-    }
-
-    ////////////////////////////////////////////////////
-    //
-    // Work methods.
-    //
-
-    public String getName()
-    {
-	return this.toString();
-    }
-
-    public void doWork()
-    {
-    }
-
-    public void setEnqueueTime(long timeInMillis)
-    {
-	enqueueTime = timeInMillis;
-    }
-
-    public long getEnqueueTime()
-    {
-	return enqueueTime;
-    }
-
-    ////////////////////////////////////////////////////
-    //
-    // spi.transport.CorbaConnection.
-    //
-
-    public ResponseWaitingRoom getResponseWaitingRoom()
-    {
-	return null ;
-    }
-
-    // REVISIT - inteface defines isServer but already defined in 
-    // higher interface.
-
-
-    public void serverRequestMapPut(int requestId, 
-				    CorbaMessageMediator messageMediator)
-    {
-	serverRequestMap.put(new Integer(requestId), messageMediator);
-    }
-
-    public CorbaMessageMediator serverRequestMapGet(int requestId)
-    {
-	return (CorbaMessageMediator)
-	    serverRequestMap.get(new Integer(requestId));
-    }
-
-    public void serverRequestMapRemove(int requestId)
-    {
-	serverRequestMap.remove(new Integer(requestId));
-    }
-
-
-    // REVISIT: this is also defined in:
-    // com.sun.corba.se.spi.legacy.connection.Connection
-    public java.net.Socket getSocket()
-    {
-	return null;
-    }
-
-    /** It is possible for a Close Connection to have been
-     ** sent here, but we will not check for this. A "lazy"
-     ** Exception will be thrown in the Worker thread after the
-     ** incoming request has been processed even though the connection
-     ** is closed before the request is processed. This is o.k because
-     ** it is a boundary condition. To prevent it we would have to add
-     ** more locks which would reduce performance in the normal case.
-     **/
-    public synchronized void serverRequestProcessingBegins()
-    {
-        serverRequestCount++;
-    }
-
-    public synchronized void serverRequestProcessingEnds()
-    {
-        serverRequestCount--;
-    }
-
-    //
-    //
-    //
-
-    public synchronized int getNextRequestId() 
-    {
-	return requestId++;
-    }
-
-    // Negotiated code sets for char and wchar data
-    protected CodeSetComponentInfo.CodeSetContext codeSetContext = null;
-
-    public ORB getBroker() 
-    {
-        return orb;
-    }
-
-    public CodeSetComponentInfo.CodeSetContext getCodeSetContext() 
-    {
-        // Needs to be synchronized for the following case when the client
-        // doesn't send the code set context twice, and we have two threads
-        // in ServerRequestDispatcher processCodeSetContext.
-        //
-        // Thread A checks to see if there is a context, there is none, so
-        //     it calls setCodeSetContext, getting the synch lock.
-        // Thread B checks to see if there is a context.  If we didn't synch,
-        //     it might decide to outlaw wchar/wstring.
-        if (codeSetContext == null) {
-            synchronized(this) {
-                return codeSetContext;
-            }
-        }
-
-        return codeSetContext;
-    }
-
-    public synchronized void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc) {
-        // Double check whether or not we need to do this
-        if (codeSetContext == null) {
-            
-            if (OSFCodeSetRegistry.lookupEntry(csc.getCharCodeSet()) == null ||
-                OSFCodeSetRegistry.lookupEntry(csc.getWCharCodeSet()) == null) {
-                // If the client says it's negotiated a code set that
-                // isn't a fallback and we never said we support, then
-                // it has a bug.
-		throw wrapper.badCodesetsFromClient() ;
-            }
-
-            codeSetContext = csc;
-        }
-    }
-
-    //
-    // from iiop.IIOPConnection.java
-    //
-
-    // Map request ID to an InputObject.
-    // This is so the client thread can start unmarshaling
-    // the reply and remove it from the out_calls map while the
-    // ReaderThread can still obtain the input stream to give
-    // new fragments.  Only the ReaderThread touches the clientReplyMap,
-    // so it doesn't incur synchronization overhead.
-
-    public MessageMediator clientRequestMapGet(int requestId)
-    {
-	return null ;
-    }
-
-    protected MessageMediator clientReply_1_1;
-
-    public void clientReply_1_1_Put(MessageMediator x)
-    {
-	clientReply_1_1 = x;
-    }
-
-    public MessageMediator clientReply_1_1_Get()
-    {
-	return 	clientReply_1_1;
-    }
-
-    public void clientReply_1_1_Remove()
-    {
-	clientReply_1_1 = null;
-    }
-
-    protected MessageMediator serverRequest_1_1;
-
-    public void serverRequest_1_1_Put(MessageMediator x)
-    {
-	serverRequest_1_1 = x;
-    }
-
-    public MessageMediator serverRequest_1_1_Get()
-    {
-	return 	serverRequest_1_1;
-    }
-
-    public void serverRequest_1_1_Remove()
-    {
-	serverRequest_1_1 = null;
-    }
-
-    protected String getStateString( int state ) 
-    {
-        synchronized ( stateEvent ){
-            switch (state) {
-            case OPENING : return "OPENING" ;
-            case ESTABLISHED : return "ESTABLISHED" ;
-            case CLOSE_SENT : return "CLOSE_SENT" ;
-            case CLOSE_RECVD : return "CLOSE_RECVD" ;
-            case ABORT : return "ABORT" ;
-            default : return "???" ;
-            }
-        }
-    }
-    
-    public synchronized boolean isPostInitialContexts() {
-        return postInitialContexts;
-    }
-
-    // Can never be unset...
-    public synchronized void setPostInitialContexts(){
-        postInitialContexts = true;
-    }
-    
-    /**
-     * Wake up the outstanding requests on the connection, and hand them
-     * COMM_FAILURE exception with a given minor code.
-     *
-     * Also, delete connection from connection table and
-     * stop the reader thread.
-
-     * Note that this should only ever be called by the Reader thread for
-     * this connection.
-     * 
-     * @param minor_code The minor code for the COMM_FAILURE major code.
-     * @param die Kill the reader thread (this thread) before exiting.
-     */
-    public void purgeCalls(SystemException systemException,
-			   boolean die, boolean lockHeld)
-    {
-    }
-
-    /*************************************************************************
-    * The following methods are for dealing with Connection cleaning for
-    * better scalability of servers in high network load conditions.
-    **************************************************************************/
-
-    public void sendCloseConnection(GIOPVersion giopVersion)
-	throws IOException 
-    {
-        Message msg = MessageBase.createCloseConnection(giopVersion);
-	sendHelper(giopVersion, msg);
-    }
-
-    public void sendMessageError(GIOPVersion giopVersion)
-	throws IOException 
-    {
-        Message msg = MessageBase.createMessageError(giopVersion);
-	sendHelper(giopVersion, msg);
-    }
-
-    /**
-     * Send a CancelRequest message. This does not lock the connection, so the
-     * caller needs to ensure this method is called appropriately.
-     * @exception IOException - could be due to abortive connection closure.
-     */
-    public void sendCancelRequest(GIOPVersion giopVersion, int requestId)
-	throws IOException 
-    {
-
-        Message msg = MessageBase.createCancelRequest(giopVersion, requestId);
-	sendHelper(giopVersion, msg);
-    }
-
-    protected void sendHelper(GIOPVersion giopVersion, Message msg)
-	throws IOException
-    {
-	// REVISIT: See comments in CDROutputObject constructor.
-        CDROutputObject outputObject = 
-	    new CDROutputObject((ORB)orb, null, giopVersion, this, msg,
-				ORBConstants.STREAM_FORMAT_VERSION_1);
-        msg.write(outputObject);
-
-	outputObject.writeTo(this);
-    }
-
-    public void sendCancelRequestWithLock(GIOPVersion giopVersion,
-					  int requestId)
-	throws IOException 
-    {
-	writeLock();
-	try {
-	    sendCancelRequest(giopVersion, requestId);
-	} finally {
-	    writeUnlock();
-	}
-    }
-
-    // Begin Code Base methods ---------------------------------------
-    //
-    // Set this connection's code base IOR.  The IOR comes from the
-    // SendingContext.  This is an optional service context, but all
-    // JavaSoft ORBs send it.
-    //
-    // The set and get methods don't need to be synchronized since the
-    // first possible get would occur during reading a valuetype, and
-    // that would be after the set.
-
-    // Sets this connection's code base IOR.  This is done after
-    // getting the IOR out of the SendingContext service context.
-    // Our ORBs always send this, but it's optional in CORBA.
-
-    public final void setCodeBaseIOR(IOR ior) {
-        codeBaseServerIOR = ior;
-    }
-
-    public final IOR getCodeBaseIOR() {
-        return codeBaseServerIOR;
-    }
-
-    // Get a CodeBase stub to use in unmarshaling.  The CachedCodeBase
-    // won't connect to the remote codebase unless it's necessary.
-    public final CodeBase getCodeBase() {
-        return cachedCodeBase;
-    }
-
-    // End Code Base methods -----------------------------------------
-
-    // Can be overridden in subclass for different options.
-    protected void setSocketOptions(Socket socket)
-    {
-    }
-
-    public String toString()
-    {
-        synchronized ( stateEvent ){
-            return 
-		"BufferConnectionImpl[" + " "
-		+ getStateString( state ) + " "
-		+ shouldUseSelectThreadToWait() + " "
-		+ shouldUseWorkerThreadForEvent()
-		+ "]" ;
-        }
-    }
-    
-    // Must be public - used in encoding.
-    public void dprint(String msg) 
-    {
-	ORBUtility.dprint("SocketOrChannelConnectionImpl", msg);
-    }
-
-    protected void dprint(String msg, Throwable t)
-    {
-	dprint(msg);
-	t.printStackTrace(System.out);
-    }
-}
-
-// End of file.