summaryrefslogtreecommitdiff
path: root/libjava/classpath/gnu/CORBA
diff options
context:
space:
mode:
authorMark Wielaard <mark@gcc.gnu.org>2006-05-18 17:29:21 +0000
committerMark Wielaard <mark@gcc.gnu.org>2006-05-18 17:29:21 +0000
commit4f9533c7722fa07511a94d005227961f4a4dec23 (patch)
tree9f9c470de62ee62fba1331a396450d728d2b1fad /libjava/classpath/gnu/CORBA
parenteaec4980e139903ae9b274d1abcf3a13946603a8 (diff)
downloadgcc-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.java1
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java33
-rw-r--r--libjava/classpath/gnu/CORBA/IorDelegate.java15
-rw-r--r--libjava/classpath/gnu/CORBA/NamingService/NameParser.java5
-rw-r--r--libjava/classpath/gnu/CORBA/OrbRestricted.java55
-rw-r--r--libjava/classpath/gnu/CORBA/SocketRepository.java3
-rw-r--r--libjava/classpath/gnu/CORBA/gnuRequest.java25
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();