Mercurial > hg > openjdk > jdk6 > corba
changeset 21:ff18939d68d6 jdk6-b12
6755917: Changes for openjdk6 build 12
6372405: Server thread hangs when fragments don't complete because of connection abort
5104239: Java: thread deadlock
6191561: JCK15: api/org_omg/PortableInterceptor/ClientRequestInfo/index.html#RIMethods sometime hang
6486322: org.omg.CORBA.ORB.init() thread safety issue
6465377: NullPointerException for RMI ORB in 1.5.0_08
6438259: Wrong repository ID generated by IDLJ
Summary: Final b12 state (as defined by the source bundle)
Reviewed-by: darcy
line wrap: on
line diff
--- a/make/com/sun/corba/minclude/com_sun_corba_se_impl_dynamicany.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_impl_dynamicany.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -41,4 +41,7 @@ com/sun/corba/se/impl/dynamicany/DynSequenceImpl.java \ com/sun/corba/se/impl/dynamicany/DynStructImpl.java \ com/sun/corba/se/impl/dynamicany/DynUnionImpl.java \ - com/sun/corba/se/impl/dynamicany/DynValueImpl.java + com/sun/corba/se/impl/dynamicany/DynValueImpl.java \ + com/sun/corba/se/impl/dynamicany/DynValueBoxImpl.java \ + com/sun/corba/se/impl/dynamicany/DynValueCommonImpl.java +
--- a/make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -52,6 +52,8 @@ com/sun/corba/se/impl/encoding/CodeSetComponentInfo.java \ com/sun/corba/se/impl/encoding/EncapsInputStream.java \ com/sun/corba/se/impl/encoding/EncapsOutputStream.java \ + com/sun/corba/se/impl/encoding/IDLJavaSerializationInputStream.java \ + com/sun/corba/se/impl/encoding/IDLJavaSerializationOutputStream.java \ com/sun/corba/se/impl/encoding/MarkAndResetHandler.java \ com/sun/corba/se/impl/encoding/MarshalInputStream.java \ com/sun/corba/se/impl/encoding/MarshalOutputStream.java \
--- a/make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -63,6 +63,7 @@ com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java \ com/sun/corba/se/impl/ior/iiop/IIOPProfileTemplateImpl.java \ com/sun/corba/se/impl/ior/iiop/JavaCodebaseComponentImpl.java \ + com/sun/corba/se/impl/ior/iiop/JavaSerializationComponent.java \ com/sun/corba/se/impl/ior/iiop/MaxStreamFormatVersionComponentImpl.java \ com/sun/corba/se/impl/ior/iiop/RequestPartitioningComponentImpl.java \ com/sun/corba/se/impl/ior/iiop/ORBTypeComponentImpl.java
--- a/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -27,6 +27,7 @@ com/sun/corba/se/impl/orbutil/CacheTable.java \ com/sun/corba/se/impl/orbutil/CorbaResourceUtil.java \ com/sun/corba/se/impl/orbutil/DenseIntMapImpl.java \ + com/sun/corba/se/impl/orbutil/GetPropertyAction.java \ com/sun/corba/se/impl/orbutil/HexOutputStream.java \ com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3.java \ com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3_1.java \ @@ -76,6 +77,7 @@ com/sun/corba/se/impl/copyobject/FallbackObjectCopierImpl.java \ com/sun/corba/se/impl/copyobject/ORBStreamObjectCopierImpl.java \ com/sun/corba/se/impl/copyobject/ReferenceObjectCopierImpl.java \ + com/sun/corba/se/impl/copyobject/JavaStreamObjectCopierImpl.java \ com/sun/corba/se/impl/orbutil/graph/Node.java \ com/sun/corba/se/impl/orbutil/graph/NodeData.java \ com/sun/corba/se/impl/orbutil/graph/Graph.java \
--- a/make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -63,6 +63,7 @@ com/sun/corba/se/impl/protocol/giopmsgheaders/LocateRequestMessage_1_0.java \ com/sun/corba/se/impl/protocol/giopmsgheaders/LocateRequestMessage_1_1.java \ com/sun/corba/se/impl/protocol/giopmsgheaders/LocateRequestMessage_1_2.java \ + com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyOrReplyMessage.java \ com/sun/corba/se/impl/protocol/giopmsgheaders/Message.java \ com/sun/corba/se/impl/protocol/giopmsgheaders/MessageBase.java \ com/sun/corba/se/impl/protocol/giopmsgheaders/MessageHandler.java \
--- a/make/com/sun/corba/minclude/com_sun_corba_se_spi_legacy_interceptor.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_spi_legacy_interceptor.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -29,6 +29,7 @@ com_sun_corba_se_spi_legacy_interceptor_java = \ com/sun/corba/se/spi/legacy/interceptor/IORInfoExt.java \ + com/sun/corba/se/spi/legacy/interceptor/ORBInitInfoExt.java \ com/sun/corba/se/spi/legacy/interceptor/RequestInfoExt.java \ com/sun/corba/se/spi/legacy/interceptor/UnknownType.java
--- a/make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -35,5 +35,6 @@ com/sun/corba/se/spi/monitoring/MonitoredObjectFactory.java \ com/sun/corba/se/spi/monitoring/MonitoredAttribute.java \ com/sun/corba/se/spi/monitoring/MonitoredAttributeInfoFactory.java \ + com/sun/corba/se/spi/monitoring/MonitoringConstants.java \ com/sun/corba/se/spi/monitoring/MonitoringManager.java \ com/sun/corba/se/spi/monitoring/MonitoringManagerFactory.java
--- a/make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -27,6 +27,7 @@ com/sun/corba/se/spi/presentation/rmi/DynamicMethodMarshaller.java \ com/sun/corba/se/spi/presentation/rmi/DynamicStub.java \ com/sun/corba/se/spi/presentation/rmi/IDLNameTranslator.java \ + com/sun/corba/se/spi/presentation/rmi/PresentationDefaults.java \ com/sun/corba/se/spi/presentation/rmi/PresentationManager.java \ com/sun/corba/se/spi/presentation/rmi/StubAdapter.java
--- a/make/com/sun/corba/minclude/com_sun_corba_se_spi_transport.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/com_sun_corba_se_spi_transport.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -26,6 +26,7 @@ com_sun_corba_se_spi_transport_java = \ com/sun/corba/se/spi/transport/CorbaAcceptor.java \ com/sun/corba/se/spi/transport/CorbaConnection.java \ + com/sun/corba/se/spi/transport/CorbaConnectionCache.java \ com/sun/corba/se/spi/transport/CorbaContactInfo.java \ com/sun/corba/se/spi/transport/CorbaContactInfoList.java \ com/sun/corba/se/spi/transport/CorbaContactInfoListFactory.java \
--- a/make/com/sun/corba/minclude/org_omg_CosNaming.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/org_omg_CosNaming.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -47,6 +47,7 @@ org/omg/CosNaming/NamingContext.java \ org/omg/CosNaming/NamingContextHelper.java \ org/omg/CosNaming/NamingContextHolder.java \ + org/omg/CosNaming/NamingContextOperations.java \ org/omg/CosNaming/_NamingContextStub.java \ org/omg/CosNaming/NamingContextPackage/AlreadyBound.java \ org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java \
--- a/make/com/sun/corba/minclude/org_omg_DynamicAny.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/org_omg_DynamicAny.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -47,6 +47,10 @@ org/omg/DynamicAny/DynUnionOperations.java \ org/omg/DynamicAny/DynValue.java \ org/omg/DynamicAny/DynValueOperations.java \ + org/omg/DynamicAny/DynValueBox.java \ + org/omg/DynamicAny/DynValueBoxOperations.java \ + org/omg/DynamicAny/DynValueCommon.java \ + org/omg/DynamicAny/DynValueCommonOperations.java \ org/omg/DynamicAny/NameDynAnyPair.java \ org/omg/DynamicAny/NameValuePair.java \ org/omg/DynamicAny/DynAnyPackage/InvalidValue.java \ @@ -70,8 +74,16 @@ org/omg/DynamicAny/DynSequenceHelper.java \ org/omg/DynamicAny/NameDynAnyPairSeqHelper.java \ org/omg/DynamicAny/NameValuePairHelper.java \ - org/omg/DynamicAny/NameValuePairSeqHelper.java - + org/omg/DynamicAny/NameValuePairSeqHelper.java \ + org/omg/DynamicAny/_DynAnyFactoryStub.java \ + org/omg/DynamicAny/_DynAnyStub.java \ + org/omg/DynamicAny/_DynArrayStub.java \ + org/omg/DynamicAny/_DynEnumStub.java \ + org/omg/DynamicAny/_DynFixedStub.java \ + org/omg/DynamicAny/_DynSequenceStub.java \ + org/omg/DynamicAny/_DynStructStub.java \ + org/omg/DynamicAny/_DynUnionStub.java \ + org/omg/DynamicAny/_DynValueStub.java DYNANY_HELP_HOLD_java = \ org/omg/DynamicAny/AnySeqHolder.java \
--- a/make/com/sun/corba/minclude/org_omg_PortableInterceptor.jmk Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/minclude/org_omg_PortableInterceptor.jmk Fri Jan 30 17:10:04 2009 -0800 @@ -106,6 +106,7 @@ org/omg/IOP/CodecPackage/TypeMismatchHelper.java \ org/omg/IOP/ENCODING_CDR_ENCAPS.java \ org/omg/IOP/Encoding.java \ + org/omg/IOP/ExceptionDetailMessage.java \ org/omg/Dynamic/Parameter.java # Helper and Holder files to be removed:
--- a/make/com/sun/corba/se/sources/Makefile Fri Jan 30 17:05:30 2009 -0800 +++ b/make/com/sun/corba/se/sources/Makefile Fri Jan 30 17:10:04 2009 -0800 @@ -46,6 +46,8 @@ include $(CORBA_JMK_DIRECTORY)com_sun_corba_se_PortableActivationIDL.jmk include $(CORBA_JMK_DIRECTORY)com_sun_corba_se_impl_logging.jmk +FILES_java += com/sun/corba/se/org/omg/CORBA/ORB.java + # # Dirs #
--- a/make/javax/xa/Makefile Fri Jan 30 17:05:30 2009 -0800 +++ b/make/javax/xa/Makefile Fri Jan 30 17:10:04 2009 -0800 @@ -35,7 +35,7 @@ # # Files to compile # -AUTO_FILES_JAVA_DIRS = javax/transaction/xa +AUTO_FILES_JAVA_DIRS = javax/transaction # # Rules
--- a/make/org/omg/CORBA/Makefile Fri Jan 30 17:05:30 2009 -0800 +++ b/make/org/omg/CORBA/Makefile Fri Jan 30 17:10:04 2009 -0800 @@ -47,8 +47,8 @@ endif FILES_java = \ - $(ORG_OMG_SENDINGCONTEXT_java) \ - $(ORG_OMG_CORBA_2_3_java) \ + $(org_omg_SendingContext_java) \ + $(org_omg_CORBA_2_3_java) \ $(ORG_OMG_CORBA_java) #
--- a/src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerReadStream.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerReadStream.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. 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 @@ -44,6 +44,7 @@ // We should convert endOfStream to a final static dummy end node private boolean endOfStream = true; private BufferQueue fragmentQueue = new BufferQueue(); + private long FRAGMENT_TIMEOUT = 60000; // REVISIT - This should go in BufferManagerRead. But, since // BufferManagerRead is an interface. BufferManagerRead @@ -111,9 +112,16 @@ throw wrapper.endOfStream() ; } + boolean interrupted = false; try { - fragmentQueue.wait(); - } catch (InterruptedException e) {} + fragmentQueue.wait(FRAGMENT_TIMEOUT); + } catch (InterruptedException e) { + interrupted = true; + } + + if (!interrupted && fragmentQueue.size() == 0) { + throw wrapper.bufferReadManagerTimeout(); + } if (receivedCancel) { throw new RequestCanceledException(cancelReqId);
--- a/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. 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 @@ -153,22 +153,22 @@ desc = new ObjectStreamClass(cl, superdesc, serializable, externalizable); } + // Must always call init. See bug 4488137. This code was + // incorrectly changed to return immediately on a non-null + // cache result. That allowed threads to gain access to + // unintialized instances. + // + // History: Note, the following init() call was originally within + // the synchronization block, as it currently is now. Later, the + // init() call was moved outside the synchronization block, and + // the init() method used a private member variable lock, to + // avoid performance problems. See bug 4165204. But that lead to + // a deadlock situation, see bug 5104239. Hence, the init() method + // has now been moved back into the synchronization block. The + // right approach to solving these problems would be to rewrite + // this class, based on the latest java.io.ObjectStreamClass. + desc.init(); } - - // Must always call init. See bug 4488137. This code was - // incorrectly changed to return immediately on a non-null - // cache result. That allowed threads to gain access to - // unintialized instances. - // - // All threads must sync on the member variable lock - // and check the initialization state. - // - // Another possibility is to continue to synchronize on the - // descriptorFor array, but that leads to poor performance - // (see bug 4165204 "ObjectStreamClass can hold global lock - // for a very long time"). - desc.init(); - return desc; }
--- a/src/share/classes/com/sun/corba/se/impl/oa/poa/POAFactory.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/oa/poa/POAFactory.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2007 Sun Microsystems, Inc. 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 @@ -76,6 +76,7 @@ private ORB orb ; private POASystemException wrapper ; private OMGSystemException omgWrapper ; + private boolean isShuttingDown = false; public POASystemException getWrapper() { @@ -166,6 +167,7 @@ // pm.deactivate removes itself from poaManagers! Iterator managers = null ; synchronized (this) { + isShuttingDown = true ; managers = (new HashSet(poaManagers)).iterator(); } @@ -208,9 +210,15 @@ ClosureFactory.makeFuture( rpClosure ) ) ; } + public synchronized POA getRootPOA() { if (rootPOA == null) { + // See if we are trying to getRootPOA while shutting down the ORB. + if (isShuttingDown) { + throw omgWrapper.noObjectAdaptor( ) ; + } + try { Object obj = orb.resolve_initial_references( ORBConstants.ROOT_POA_NAME ) ;
--- a/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2007 Sun Microsystems, Inc. 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 @@ -185,7 +185,6 @@ private java.lang.Object runObj = new java.lang.Object(); private java.lang.Object shutdownObj = new java.lang.Object(); - private java.lang.Object waitForCompletionObj = new java.lang.Object(); private static final byte STATUS_OPERATING = 1; private static final byte STATUS_SHUTTING_DOWN = 2; private static final byte STATUS_SHUTDOWN = 3; @@ -194,7 +193,6 @@ // XXX Should we move invocation tracking to the first level server dispatcher? private java.lang.Object invocationObj = new java.lang.Object(); - private int numInvocations = 0; // thread local variable to store a boolean to detect deadlock in // ORB.shutdown(true). @@ -1245,37 +1243,48 @@ public void shutdown(boolean wait_for_completion) { - synchronized (this) { - checkShutdownState(); + // to wait for completion, we would deadlock, so throw a standard + // OMG exception. + if (wait_for_completion && ((Boolean)isProcessingInvocation.get()).booleanValue()) { + throw omgWrapper.shutdownWaitForCompletionDeadlock() ; } - // Avoid more than one thread performing shutdown at a time. - synchronized (shutdownObj) { - checkShutdownState(); - // This is to avoid deadlock - if (wait_for_completion && - isProcessingInvocation.get() == Boolean.TRUE) { - throw omgWrapper.shutdownWaitForCompletionDeadlock() ; - } + boolean doShutdown = false ; + + synchronized (this) { + checkShutdownState() ; - status = STATUS_SHUTTING_DOWN; - // XXX access to requestDispatcherRegistry should be protected - // by the ORBImpl instance monitor, but is not here in the - // shutdownServants call. - shutdownServants(wait_for_completion); - if (wait_for_completion) { - synchronized ( waitForCompletionObj ) { - while (numInvocations > 0) { - try { - waitForCompletionObj.wait(); - } catch (InterruptedException ex) {} - } - } - } - synchronized ( runObj ) { - runObj.notifyAll(); - } - status = STATUS_SHUTDOWN; + if (status == STATUS_SHUTTING_DOWN) { + if (!wait_for_completion) + // If we are already shutting down and don't want + // to wait, nothing to do: return. + return ; + } else { + // The ORB status was STATUS_OPERATING, so start the shutdown. + status = STATUS_SHUTTING_DOWN ; + doShutdown = true ; + } + } + + // At this point, status is SHUTTING_DOWN. + // All shutdown calls with wait_for_completion == true must synchronize + // here. Only the first call will be made with doShutdown == true. + synchronized (shutdownObj) { + if (doShutdown) { + // shutdownServants will set all POAManagers into the + // INACTIVE state, causing request to be rejected. + // If wait_for_completion is true, this will not return until + // all invocations have completed. + shutdownServants(wait_for_completion); + + synchronized (runObj) { + runObj.notifyAll(); + } + + synchronized (this) { + status = STATUS_SHUTDOWN; + } + } } } @@ -1314,23 +1323,13 @@ { synchronized (invocationObj) { isProcessingInvocation.set(Boolean.TRUE); - numInvocations++; } } public void finishedDispatch() { synchronized (invocationObj) { - numInvocations--; isProcessingInvocation.set(Boolean.FALSE); - if (numInvocations == 0) { - synchronized (waitForCompletionObj) { - waitForCompletionObj.notifyAll(); - } - } else if (numInvocations < 0) { - throw wrapper.numInvocationsAlreadyZero( - CompletionStatus.COMPLETED_YES ) ; - } } } @@ -1341,12 +1340,24 @@ */ public synchronized void destroy() { - if (status == STATUS_OPERATING) { + boolean shutdownFirst = false ; + + synchronized (this) { + shutdownFirst = (status == STATUS_OPERATING) ; + } + + if (shutdownFirst) { shutdown(true); } - getCorbaTransportManager().close(); - getPIHandler().destroyInterceptors() ; - status = STATUS_DESTROYED; + + synchronized (this) { + if (status < STATUS_DESTROYED) { + getCorbaTransportManager().close(); + getPIHandler().destroyInterceptors() ; + status = STATUS_DESTROYED; + } + } + } /**
--- a/src/share/classes/com/sun/corba/se/impl/orb/ORBSingleton.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/orb/ORBSingleton.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2006 Sun Microsystems, Inc. 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 @@ -135,7 +135,7 @@ public class ORBSingleton extends ORB { // This is used to support read_Object. - private static ORB fullORB; + private ORB fullORB; private static PresentationManager.StubFactoryFactory staticStubFactoryFactory = PresentationDefaults.getStaticStubFactoryFactory() ;
--- a/src/share/classes/com/sun/corba/se/impl/orbutil/ORBUtility.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/orbutil/ORBUtility.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2006 Sun Microsystems, Inc. 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 @@ -806,25 +806,6 @@ return result ; } - public static void setDaemon(Thread thread) - { - // Catch exceptions since setDaemon can cause a - // security exception to be thrown under netscape - // in the Applet mode - final Thread finalThread = thread; - try { - AccessController.doPrivileged(new PrivilegedAction() { - public java.lang.Object run() { - finalThread.setDaemon(true); - return null; - } - }); - } catch (Exception e) { - // REVISIT: Object to get static method. Ignore it. - dprint(new Object(), "setDaemon: Exception: " + e); - } - } - public static String operationNameAndRequestId(CorbaMessageMediator m) { return "op/" + m.getOperationName() + " id/" + m.getRequestId();
--- a/src/share/classes/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2007 Sun Microsystems, Inc. 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 @@ -53,7 +53,8 @@ import com.sun.corba.se.spi.resolver.Resolver; import com.sun.corba.se.impl.encoding.EncapsInputStream; -import com.sun.corba.se.impl.logging.ORBUtilSystemException ; +import com.sun.corba.se.impl.logging.ORBUtilSystemException; +import com.sun.corba.se.impl.logging.OMGSystemException; import com.sun.corba.se.impl.naming.namingutil.INSURLHandler; import com.sun.corba.se.impl.naming.namingutil.IIOPEndpointInfo; import com.sun.corba.se.impl.naming.namingutil.INSURL; @@ -76,6 +77,7 @@ { ORB orb; ORBUtilSystemException wrapper ; + OMGSystemException omgWrapper ; Resolver bootstrapResolver ; // Root Naming Context for default resolution of names. @@ -87,9 +89,11 @@ public INSURLOperationImpl( ORB orb, Resolver bootstrapResolver ) { - this.orb = orb ; - wrapper = ORBUtilSystemException.get( orb, - CORBALogDomains.ORB_RESOLVER ) ; + this.orb = orb ; + wrapper = ORBUtilSystemException.get( orb, + CORBALogDomains.ORB_RESOLVER ) ; + omgWrapper = OMGSystemException.get( orb, + CORBALogDomains.ORB_RESOLVER ) ; this.bootstrapResolver = bootstrapResolver ; } @@ -126,6 +130,8 @@ return getIORFromString( str ) ; else { INSURL insURL = insURLHandler.parseURL( str ) ; + if (insURL == null) + throw omgWrapper.soBadSchemeName() ; return resolveINSURL( insURL ) ; } }
--- a/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2007 Sun Microsystems, Inc. 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 @@ -1057,7 +1057,9 @@ // IIOPOutputStream will cleanup the connection info when it // sees this exception. - throw wrapper.writeErrorSend(e1) ; + SystemException exc = wrapper.writeErrorSend(e1); + purgeCalls(exc, false, true); + throw exc; } }
--- a/src/share/classes/com/sun/corba/se/spi/logging/data/ORBUtil.mc Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/corba/se/spi/logging/data/ORBUtil.mc Fri Jan 30 17:10:04 2009 -0800 @@ -1,6 +1,6 @@ ; -; Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. +; Copyright 2003-2008 Sun Microsystems, Inc. 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 @@ -144,6 +144,8 @@ 15 WARNING "Read of full message failed : bytes requested = {0} bytes read = {1} max wait time = {2} total time spent waiting = {3}") (CREATE_LISTENER_FAILED 16 SEVERE "Unable to create listener thread on the specified port: {0}") + (BUFFER_READ_MANAGER_TIMEOUT + 17 WARNING "Timeout while reading data in buffer manager") ) (DATA_CONVERSION (BAD_STRINGIFIED_IOR_LEN 1 WARNING "A character did not map to the transmission code set")
--- a/src/share/classes/com/sun/tools/corba/se/idl/Parser.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/com/sun/tools/corba/se/idl/Parser.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2007 Sun Microsystems, Inc. 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 @@ -2086,8 +2086,8 @@ if (token.type == Token.LeftBrace) { repIDStack.push(((IDLID)repIDStack.peek ()).clone ()) ; + structEntry = makeStructEntry( name, entry, false ) ; ((IDLID)repIDStack.peek ()).appendToName (name); - structEntry = makeStructEntry( name, entry, false ) ; prep.openScope (structEntry); match (Token.LeftBrace) ; member (structEntry) ; @@ -2174,8 +2174,8 @@ if (token.type == Token.Switch) { repIDStack.push (((IDLID)repIDStack.peek ()).clone ()); - ((IDLID)repIDStack.peek ()).appendToName (name); unionEntry = makeUnionEntry( name, entry, false ) ; + ((IDLID)repIDStack.peek ()).appendToName (name); match (Token.Switch); match (Token.LeftParen); unionEntry.type (switchTypeSpec (unionEntry)); @@ -2641,8 +2641,8 @@ private void exceptDcl (SymtabEntry entry) throws IOException, ParseException { match (Token.Exception); + repIDStack.push (((IDLID)repIDStack.peek ()).clone ()); ExceptionEntry exceptEntry = stFactory.exceptionEntry (entry, (IDLID)repIDStack.peek ()); - repIDStack.push (((IDLID)repIDStack.peek ()).clone ()); ((IDLID)repIDStack.peek ()).appendToName (token.name); exceptEntry.sourceFile (scanner.fileEntry ()); // Comment must immediately precede "exception" keyword
--- a/src/share/classes/org/omg/CORBA/ORB.java Fri Jan 30 17:05:30 2009 -0800 +++ b/src/share/classes/org/omg/CORBA/ORB.java Fri Jan 30 17:10:04 2009 -0800 @@ -1,5 +1,5 @@ /* - * Copyright 1995-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1995-2006 Sun Microsystems, Inc. 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 @@ -289,7 +289,7 @@ * * @return the singleton ORB */ - public static ORB init() { + public static synchronized ORB init() { if (singleton == null) { String className = getSystemProperty(ORBSingletonClassKey); if (className == null)