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/gnuRequest.java | |
| parent | eaec4980e139903ae9b274d1abcf3a13946603a8 (diff) | |
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/gnuRequest.java')
| -rw-r--r-- | libjava/classpath/gnu/CORBA/gnuRequest.java | 25 |
1 files changed, 15 insertions, 10 deletions
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(); |
