diff options
author | Mark Wielaard <mark@gcc.gnu.org> | 2006-05-18 17:29:21 +0000 |
---|---|---|
committer | Mark Wielaard <mark@gcc.gnu.org> | 2006-05-18 17:29:21 +0000 |
commit | 4f9533c7722fa07511a94d005227961f4a4dec23 (patch) | |
tree | 9f9c470de62ee62fba1331a396450d728d2b1fad /libjava/classpath/gnu/CORBA | |
parent | eaec4980e139903ae9b274d1abcf3a13946603a8 (diff) | |
download | gcc-4f9533c7722fa07511a94d005227961f4a4dec23.tar.gz |
Imported GNU Classpath 0.90
Imported GNU Classpath 0.90
* scripts/makemake.tcl: LocaleData.java moved to gnu/java/locale.
* sources.am: Regenerated.
* gcj/javaprims.h: Regenerated.
* Makefile.in: Regenerated.
* gcj/Makefile.in: Regenerated.
* include/Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* gnu/java/lang/VMInstrumentationImpl.java: New override.
* gnu/java/net/local/LocalSocketImpl.java: Likewise.
* gnu/classpath/jdwp/VMMethod.java: Likewise.
* gnu/classpath/jdwp/VMVirtualMachine.java: Update to latest
interface.
* java/lang/Thread.java: Add UncaughtExceptionHandler.
* java/lang/reflect/Method.java: Implements GenericDeclaration and
isSynthetic(),
* java/lang/reflect/Field.java: Likewise.
* java/lang/reflect/Constructor.java
* java/lang/Class.java: Implements Type, GenericDeclaration,
getSimpleName() and getEnclosing*() methods.
* java/lang/Class.h: Add new public methods.
* java/lang/Math.java: Add signum(), ulp() and log10().
* java/lang/natMath.cc (log10): New function.
* java/security/VMSecureRandom.java: New override.
* java/util/logging/Logger.java: Updated to latest classpath
version.
* java/util/logging/LogManager.java: New override.
From-SVN: r113887
Diffstat (limited to 'libjava/classpath/gnu/CORBA')
-rw-r--r-- | libjava/classpath/gnu/CORBA/CDR/EncapsulationStream.java | 1 | ||||
-rw-r--r-- | libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java | 33 | ||||
-rw-r--r-- | libjava/classpath/gnu/CORBA/IorDelegate.java | 15 | ||||
-rw-r--r-- | libjava/classpath/gnu/CORBA/NamingService/NameParser.java | 5 | ||||
-rw-r--r-- | libjava/classpath/gnu/CORBA/OrbRestricted.java | 55 | ||||
-rw-r--r-- | libjava/classpath/gnu/CORBA/SocketRepository.java | 3 | ||||
-rw-r--r-- | libjava/classpath/gnu/CORBA/gnuRequest.java | 25 |
7 files changed, 100 insertions, 37 deletions
diff --git a/libjava/classpath/gnu/CORBA/CDR/EncapsulationStream.java b/libjava/classpath/gnu/CORBA/CDR/EncapsulationStream.java index 4945d9c906a..e42991232a4 100644 --- a/libjava/classpath/gnu/CORBA/CDR/EncapsulationStream.java +++ b/libjava/classpath/gnu/CORBA/CDR/EncapsulationStream.java @@ -79,6 +79,7 @@ public class EncapsulationStream boolean use_big_endian) { super(); + setBigEndian(use_big_endian); buffer = new AligningOutput(); setOutputStream(buffer); parent = _parent; diff --git a/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java b/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java index e1bdb512bfb..0252838581d 100644 --- a/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java +++ b/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java @@ -51,6 +51,7 @@ import org.omg.CORBA.MARSHAL; import org.omg.CORBA.portable.IDLEntity; import java.io.ByteArrayOutputStream; +import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -273,20 +274,36 @@ public class MessageHeader * Read the header from the stream. * * @param istream a stream to read from. - * * @throws MARSHAL if this is not a GIOP 1.0 header. */ - public void read(java.io.InputStream istream) - throws MARSHAL + public void read(java.io.InputStream istream) + throws MARSHAL, EOFException { try { byte[] xMagic = new byte[MAGIC.length]; - istream.read(xMagic); - if (!Arrays.equals(xMagic, MAGIC)) + int r = istream.read(xMagic); + int minor; + if (! Arrays.equals(xMagic, MAGIC)) { - MARSHAL m = new MARSHAL("Not a GIOP message"); - m.minor = Minor.Giop; + StringBuffer b = new StringBuffer(); + if (r == - 1) + { + b.append("Immediate EOF"); + minor = Minor.EOF; + } + else + { + minor = Minor.Giop; + b.append(r + " bytes: "); + for (int i = 0; i < xMagic.length; i++) + { + b.append(Integer.toHexString(xMagic[i] & 0xFF)); + b.append(' '); + } + } + MARSHAL m = new MARSHAL("Not a GIOP message: " + b); + m.minor = minor; throw m; } @@ -354,7 +371,7 @@ public class MessageHeader } catch (IOException ex) { - MARSHAL t = new MARSHAL(); + MARSHAL t = new MARSHAL(ex.getMessage()); t.minor = Minor.Header; t.initCause(ex); throw t; diff --git a/libjava/classpath/gnu/CORBA/IorDelegate.java b/libjava/classpath/gnu/CORBA/IorDelegate.java index 27fb5de9a55..8eb43aa7d69 100644 --- a/libjava/classpath/gnu/CORBA/IorDelegate.java +++ b/libjava/classpath/gnu/CORBA/IorDelegate.java @@ -407,20 +407,7 @@ public class IorDelegate extends SimpleDelegate */ public void release(org.omg.CORBA.Object target) { - String key = ior.Internet.host + ":" + ior.Internet.port; - - Socket socket = SocketRepository.get_socket(key); - try - { - if (socket != null) - { - socket.close(); - } - } - catch (IOException ex) - { - // do nothing, then. - } + // Do nothing here. } /** diff --git a/libjava/classpath/gnu/CORBA/NamingService/NameParser.java b/libjava/classpath/gnu/CORBA/NamingService/NameParser.java index 422db1c58da..c750b2eb4c0 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/NameParser.java +++ b/libjava/classpath/gnu/CORBA/NamingService/NameParser.java @@ -1,5 +1,5 @@ /* NameParser.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -425,7 +425,8 @@ public class NameParser else { Delegate delegate = ((ObjectImpl) object)._get_delegate(); - ns = new _NamingContextStub(delegate); + ns = new _NamingContextStub(); + ((_NamingContextStub) ns)._set_delegate(delegate); } } catch (Exception ex) diff --git a/libjava/classpath/gnu/CORBA/OrbRestricted.java b/libjava/classpath/gnu/CORBA/OrbRestricted.java index c0401800a89..c34584995a6 100644 --- a/libjava/classpath/gnu/CORBA/OrbRestricted.java +++ b/libjava/classpath/gnu/CORBA/OrbRestricted.java @@ -41,11 +41,13 @@ package gnu.CORBA; import gnu.CORBA.CDR.BufferedCdrOutput; import gnu.CORBA.typecodes.AliasTypeCode; import gnu.CORBA.typecodes.ArrayTypeCode; +import gnu.CORBA.typecodes.PrimitiveTypeCode; import gnu.CORBA.typecodes.RecordTypeCode; import gnu.CORBA.typecodes.StringTypeCode; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_PARAM; +import org.omg.CORBA.Context; import org.omg.CORBA.ContextList; import org.omg.CORBA.Environment; import org.omg.CORBA.ExceptionList; @@ -526,4 +528,57 @@ public class OrbRestricted extends org.omg.CORBA_2_3.ORB super.destroy(); } + + /** + * Create a typecode, representing a tree-like structure. + * This structure contains a member that is a sequence of the same type, + * as the structure itself. You can imagine as if the folder definition + * contains a variable-length array of the enclosed (nested) folder + * definitions. In this way, it is possible to have a tree like + * structure that can be transferred via CORBA CDR stream. + * + * @deprecated It is easier and clearler to use a combination of + * create_recursive_tc and create_sequence_tc instead. + * + * @param bound the maximal expected number of the nested components + * on each node; 0 if not limited. + * + * @param offset the position of the field in the returned structure + * that contains the sequence of the structures of the same field. + * The members before this field are intialised using parameterless + * StructMember constructor. + * + * @return a typecode, defining a stucture, where a member at the + * <code>offset</code> position defines an array of the identical + * structures. + * + * @see #create_recursive_tc(String) + * @see #create_sequence_tc(int, TypeCode) + */ + public TypeCode create_recursive_sequence_tc(int bound, int offset) + { + RecordTypeCode r = new RecordTypeCode(TCKind.tk_struct); + for (int i = 0; i < offset; i++) + r.add(new StructMember()); + + TypeCode recurs = new PrimitiveTypeCode(TCKind.tk_sequence); + + r.add(new StructMember("", recurs, null)); + return r; + } + + /** + * Get the default context of this ORB. This is an initial root of all + * contexts. + * + * The default method returns a new context with the empty name and + * no parent context. + * + * @return the default context of this ORB. + */ + public Context get_default_context() + { + return new gnuContext("", null); + } + }
\ No newline at end of file diff --git a/libjava/classpath/gnu/CORBA/SocketRepository.java b/libjava/classpath/gnu/CORBA/SocketRepository.java index e48a9a5da17..5d4a5099c15 100644 --- a/libjava/classpath/gnu/CORBA/SocketRepository.java +++ b/libjava/classpath/gnu/CORBA/SocketRepository.java @@ -116,9 +116,6 @@ public class SocketRepository */ public static Socket get_socket(Object key) { - if (true) - return null; - synchronized (sockets) { Socket s = (Socket) sockets.get(key); diff --git a/libjava/classpath/gnu/CORBA/gnuRequest.java b/libjava/classpath/gnu/CORBA/gnuRequest.java index 5adf7412926..0b3338d3437 100644 --- a/libjava/classpath/gnu/CORBA/gnuRequest.java +++ b/libjava/classpath/gnu/CORBA/gnuRequest.java @@ -83,6 +83,7 @@ import org.omg.PortableInterceptor.ClientRequestInterceptorOperations; import org.omg.PortableInterceptor.ForwardRequest; import org.omg.PortableInterceptor.InvalidSlot; +import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -593,7 +594,7 @@ public class gnuRequest extends Request implements Cloneable { final gnuRequest cloned = Clone(); cloned.oneWay = true; - + new Thread() { public void run() @@ -717,12 +718,11 @@ public class gnuRequest extends Request implements Cloneable * property ({@link #setIOR(IOR)} before calling this method. * * @throws BAD_INV_ORDER, minor code 0, if the IOR has not been previously set - * or if the direct argument addition is mixed with the direct argument - * writing into the output stream. - * + * or if the direct argument addition is mixed with the direct + * argument writing into the output stream. * @return the server response in binary form. */ - public synchronized RawReply submit() +public synchronized RawReply submit() throws ForwardRequest { gnu.CORBA.GIOP.MessageHeader header = new gnu.CORBA.GIOP.MessageHeader(); @@ -788,20 +788,21 @@ public class gnuRequest extends Request implements Cloneable if (socket == null) { - // The BindException may be thrown under very heavy parallel + // The IOException may be thrown under very heavy parallel // load. For some time, just wait, exceptiong the socket to free. Open: for (int i = 0; i < PAUSE_STEPS; i++) { try { if (orb instanceof OrbFunctional) - socket = ((OrbFunctional) orb).socketFactory.createClientSocket( - ior.Internet.host, ior.Internet.port); + socket = ((OrbFunctional) orb).socketFactory. + createClientSocket( + ior.Internet.host, ior.Internet.port); else socket = new Socket(ior.Internet.host, ior.Internet.port); break Open; } - catch (BindException ex) + catch (IOException ex) { try { @@ -833,7 +834,7 @@ public class gnuRequest extends Request implements Cloneable request_part.buffer.writeTo(socketOutput); socketOutput.flush(); - if (!socket.isClosed()) + if (!socket.isClosed() && !oneWay) { MessageHeader response_header = new MessageHeader(); InputStream socketInput = socket.getInputStream(); @@ -937,6 +938,10 @@ public class gnuRequest extends Request implements Cloneable throws SystemException, ForwardRequest { RawReply response = submit(); + + // If this is a one way message, do not care about the response. + if (oneWay && response == EMPTY) + return; if (m_rph == null) m_rph = response.header.create_reply_header(); |