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
This commit is contained in:
@@ -79,6 +79,7 @@ public class EncapsulationStream
|
||||
boolean use_big_endian)
|
||||
{
|
||||
super();
|
||||
setBigEndian(use_big_endian);
|
||||
buffer = new AligningOutput();
|
||||
setOutputStream(buffer);
|
||||
parent = _parent;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user