/hg/icedtea6: 4 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Wed Jan 22 01:53:47 PST 2014
changeset c8b979a2134a in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c8b979a2134a
author: Andrew John Hughes <gnu.andrew at redhat.com>
date: Fri Jan 17 22:21:40 2014 +0000
Adapt to upstream b30 changes.
2014-01-17 Andrew John Hughes <gnu.andrew at redhat.com>
* patches/openjdk/6763340-corba_memory_leak.patch,
* patches/openjdk/6893617-cnctx_always_uses_default_orb.patch,
* patches/openjdk/6980681-corba_deadlock.patch,
* patches/openjdk/7162902-corba_fixes.patch,
* patches/openjdk/8009530-icu_kern_table_support_broken.patch:
Remove upstreamed fixes.
* Makefile.am:
(ICEDTEA_PATCHES): Drop above.
* patches/hotspot/hs23/update-bootclasspath.patch,
* patches/openjdk/p11cipher-6812738-native_cleanup.patch:
Regenerated against upstream.
changeset 2ed34faf4c22 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=2ed34faf4c22
author: Andrew John Hughes <gnu.andrew at redhat.com>
date: Fri Jan 17 22:30:56 2014 +0000
Bump to next release, b30.
2014-01-17 Andrew John Hughes <gnu.andrew at redhat.com>
* Makefile.am:
(OPENJDK_VERSION): Bump to next release, b30.
changeset b2459cb1e254 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b2459cb1e254
author: Andrew John Hughes <gnu.andrew at redhat.com>
date: Fri Jan 17 23:04:10 2014 +0000
Update NEWS with upstream fixes.
2014-01-17 Andrew John Hughes <gnu.andrew at redhat.com>
* NEWS: Add fixes added to upstream.
changeset df7f5fed4615 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=df7f5fed4615
author: Andrew John Hughes <gnu.andrew at redhat.com>
date: Wed Jan 22 09:53:21 2014 +0000
Update to b30 tarball.
2014-01-22 Andrew John Hughes <gnu.andrew at redhat.com>
* Makefile.am:
(OPENJDK_DATE): Set to date of b30.
(OPENJDK_SHA256SUM): Add b30 SHA256 checksum.
(OPENJDK_SRC_ZIP): Switch to smaller xz tarball.
diffstat:
ChangeLog | 30 +
Makefile.am | 13 +-
NEWS | 37 +
patches/hotspot/hs23/update-bootclasspath.patch | 12 +-
patches/openjdk/6763340-corba_memory_leak.patch | 409 -
patches/openjdk/6893617-cnctx_always_uses_default_orb.patch | 234 -
patches/openjdk/6980681-corba_deadlock.patch | 69 -
patches/openjdk/7162902-corba_fixes.patch | 2258 -----------
patches/openjdk/8009530-icu_kern_table_support_broken.patch | 332 -
patches/openjdk/p11cipher-6812738-native_cleanup.patch | 67 +-
10 files changed, 106 insertions(+), 3355 deletions(-)
diffs (truncated from 3648 to 500 lines):
diff -r 01270eb80f98 -r df7f5fed4615 ChangeLog
--- a/ChangeLog Thu Dec 26 19:03:54 2013 +0000
+++ b/ChangeLog Wed Jan 22 09:53:21 2014 +0000
@@ -1,3 +1,33 @@
+2014-01-22 Andrew John Hughes <gnu.andrew at redhat.com>
+
+ * Makefile.am:
+ (OPENJDK_DATE): Set to date of b30.
+ (OPENJDK_SHA256SUM): Add b30 SHA256 checksum.
+ (OPENJDK_SRC_ZIP): Switch to smaller xz tarball.
+
+2014-01-17 Andrew John Hughes <gnu.andrew at redhat.com>
+
+ * NEWS: Add fixes added to upstream.
+
+2014-01-17 Andrew John Hughes <gnu.andrew at redhat.com>
+
+ * Makefile.am:
+ (OPENJDK_VERSION): Bump to next release, b30.
+
+2014-01-17 Andrew John Hughes <gnu.andrew at redhat.com>
+
+ * patches/openjdk/6763340-corba_memory_leak.patch,
+ * patches/openjdk/6893617-cnctx_always_uses_default_orb.patch,
+ * patches/openjdk/6980681-corba_deadlock.patch,
+ * patches/openjdk/7162902-corba_fixes.patch,
+ * patches/openjdk/8009530-icu_kern_table_support_broken.patch:
+ Remove upstreamed fixes.
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Drop above.
+ * patches/hotspot/hs23/update-bootclasspath.patch,
+ * patches/openjdk/p11cipher-6812738-native_cleanup.patch:
+ Regenerated against upstream.
+
2013-12-26 Andrew John Hughes <gnu.andrew at redhat.com>
* NEWS: Fix usage of JEP and add key.
diff -r 01270eb80f98 -r df7f5fed4615 Makefile.am
--- a/Makefile.am Thu Dec 26 19:03:54 2013 +0000
+++ b/Makefile.am Wed Jan 22 09:53:21 2014 +0000
@@ -1,8 +1,8 @@
# Dependencies
-OPENJDK_DATE = 05_dec_2013
-OPENJDK_SHA256SUM = a9b1b0a48fb52aef82bbe5db33b1dae1672fc8a5f456451f2e300158fc7a7d6b
-OPENJDK_VERSION = b29
+OPENJDK_DATE = 21_jan_2014
+OPENJDK_SHA256SUM = ebd9fdf39c8590cd620cb78c481ca233f5919f2819237b5d2b440666f1dd3475
+OPENJDK_VERSION = b30
OPENJDK_URL = https://java.net/downloads/openjdk6/
CACAO_VERSION = 68fe50ac34ec
@@ -175,7 +175,7 @@
if USE_HG
OPENJDK_SRC_ZIP =
else
- OPENJDK_SRC_ZIP = openjdk-6-src-$(OPENJDK_VERSION)-$(OPENJDK_DATE).tar.gz
+ OPENJDK_SRC_ZIP = openjdk-6-src-$(OPENJDK_VERSION)-$(OPENJDK_DATE).tar.xz
endif
# FIXME (HotSpot): HotSpot changeset logic goes here
@@ -498,9 +498,6 @@
patches/openjdk/p11cipher-6604496-support_ckm_aes_ctr.patch \
patches/openjdk/p11cipher-6414899-p11digest_should_support_cloning.patch \
patches/merge_fix.patch \
- patches/openjdk/6763340-corba_memory_leak.patch \
- patches/openjdk/6980681-corba_deadlock.patch \
- patches/openjdk/7162902-corba_fixes.patch \
patches/traceable.patch \
patches/pr1319-support_giflib_5.patch \
patches/openjdk/6718364-inference_failure.patch \
@@ -510,7 +507,6 @@
patches/openjdk/7003595-incompatibleclasschangeerror.patch \
patches/openjdk/6500343-bad_code_from_conditionals.patch \
patches/jaxws-tempfiles-ioutils-6.patch \
- patches/openjdk/8009530-icu_kern_table_support_broken.patch \
patches/jtreg-LayoutGetCharacterCount.patch \
patches/jtreg-LayoutLimits.patch \
patches/jtreg-ComponentOrientationTests.patch \
@@ -571,7 +567,6 @@
patches/hotspot/original/jvmtiEnv.patch \
patches/sparc-trapsfix.patch \
patches/print_lsb_release.patch \
- patches/openjdk/6893617-cnctx_always_uses_default_orb.patch \
patches/alternative_krb5_cache.patch \
patches/alternative_krb5_cache_fixup.patch \
patches/openjdk/8014469-tzdata2013c.patch \
diff -r 01270eb80f98 -r df7f5fed4615 NEWS
--- a/NEWS Thu Dec 26 19:03:54 2013 +0000
+++ b/NEWS Wed Jan 22 09:53:21 2014 +0000
@@ -14,6 +14,42 @@
New in release 1.14.0 (201X-XX-XX):
+* Security fixes
+ - S6727821: Enhance JAAS Configuration
+ - S7068126, CVE-2014-0373: Enhance SNMP statuses
+ - S8010935: Better XML handling
+ - S8011786, CVE-2014-0368: Better applet networking
+ - S8021257, CVE-2013-5896: com.sun.corba.se.** should be on restricted package list
+ - S8022904: Enhance JDBC Parsers
+ - S8022927: Input validation for byte/endian conversions
+ - S8022935: Enhance Apache resolver classes
+ - S8022945: Enhance JNDI implementation classes
+ - S8023057: Enhance start up image display
+ - S8023069, CVE-2014-0411: Enhance TLS connections
+ - S8023245, CVE-2014-0423: Enhance Beans decoding
+ - S8023301: Enhance generic classes
+ - S8023672: Enhance jar file validation
+ - S8024306, CVE-2014-0416: Enhance Subject consistency
+ - S8024530: Enhance font process resilience
+ - S8024867: Enhance logging start up
+ - S8025014: Enhance Security Policy
+ - S8025018, CVE-2014-0376: Enhance JAX-P set up
+ - S8025026, CVE-2013-5878: Enhance canonicalization
+ - S8025034, CVE-2013-5907: Improve layout lookups
+ - S8025448: Enhance listening events
+ - S8025758, CVE-2014-0422: Enhance Naming management
+ - S8025767, CVE-2014-0428: Enhance IIOP Streams
+ - S8026172: Enhance UI Management
+ - S8026176: Enhance document printing
+ - S8026193, CVE-2013-5884: Enhance CORBA stub factories
+ - S8026204: Enhance auth login contexts
+ - S8026417, CVE-2013-5910: Enhance XML canonicalization
+ - S8027201, CVE-2014-0376: Enhance JAX-P set up
+* Import of OpenJDK6 b30
+ - OJ24: Fix change summary generator
+ - S6995424: Eliminate dependency to a deprecated API com.sun.security.auth.PolicyFile
+ - S8026826: JDK 7 fix for 8010935 broke the build
+
New in release 1.13.0 (2013-12-26):
* New features
@@ -999,6 +1035,7 @@
- S6867671: javap whitespace formatting issues
- S6868539: javap should use current names for constant pool tags
- S6888215: memory leak in jpeg plugin
+ - S6893617: JDK 6 CNCtx always uses the default ORB
- S6902264: fix indentation of tableswitch and lookupswitch
- S6925851: Localize JRE into pt_BR
- S6954275: XML signatures with reference data larger 16KB and cacheRef on fails to validate
diff -r 01270eb80f98 -r df7f5fed4615 patches/hotspot/hs23/update-bootclasspath.patch
--- a/patches/hotspot/hs23/update-bootclasspath.patch Thu Dec 26 19:03:54 2013 +0000
+++ b/patches/hotspot/hs23/update-bootclasspath.patch Wed Jan 22 09:53:21 2014 +0000
@@ -1,10 +1,10 @@
diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/os.cpp openjdk/hotspot/src/share/vm/runtime/os.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp 2013-06-04 18:47:35.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/os.cpp 2013-08-15 11:53:40.989493660 +0100
-@@ -1105,6 +1105,9 @@
- #ifdef __APPLE__
- "%/lib/JObjC.jar:"
- #endif
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp 2014-01-17 20:29:13.006436284 +0000
++++ openjdk/hotspot/src/share/vm/runtime/os.cpp 2014-01-17 20:49:55.908779782 +0000
+@@ -1102,6 +1102,9 @@
+ "%/lib/jce.jar:"
+ "%/lib/charsets.jar:"
+ "%/lib/jfr.jar:"
+ "%/lib/netx.jar:"
+ "%/lib/plugin.jar:"
+ "%/lib/rhino.jar:"
diff -r 01270eb80f98 -r df7f5fed4615 patches/openjdk/6763340-corba_memory_leak.patch
--- a/patches/openjdk/6763340-corba_memory_leak.patch Thu Dec 26 19:03:54 2013 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,409 +0,0 @@
-# HG changeset patch
-# User robm
-# Date 1289846868 28800
-# Node ID cff5a173ec1e89013359e804a3e31736ef6fb462
-# Parent f642c9ec81a07b88a5566ea1dc4f1a9068c7d251
-6763340: memory leak in com.sun.corba.se.* classes
-6873605: Missing finishedDispatch() call in ORBImpl causes test failures after 5u20 b04
-Summary: Reviewed by Ken Cavanaugh
-Reviewed-by: coffeys
-
-diff --git a/src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java b/src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java
---- openjdk/corba/src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java
-+++ openjdk/corba/src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java
-@@ -74,6 +74,7 @@
- import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
- import com.sun.corba.se.spi.orb.ORB;
- import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
-+import com.sun.corba.se.spi.protocol.RetryType;
- import com.sun.corba.se.spi.transport.CorbaContactInfo;
- import com.sun.corba.se.spi.transport.CorbaContactInfoList;
- import com.sun.corba.se.spi.transport.CorbaContactInfoListIterator;
-@@ -110,7 +111,7 @@
-
- // The current retry request status. True if this request is being
- // retried and this info object is to be reused, or false otherwise.
-- private boolean retryRequest;
-+ private RetryType retryRequest;
-
- // The number of times this info object has been (re)used. This is
- // incremented every time a request is retried, and decremented every
-@@ -163,7 +164,8 @@
-
- // Please keep these in the same order that they're declared above.
-
-- retryRequest = false;
-+ // 6763340
-+ retryRequest = RetryType.NONE;
-
- // Do not reset entryCount because we need to know when to pop this
- // from the stack.
-@@ -824,14 +826,15 @@
- /**
- * Set or reset the retry request flag.
- */
-- void setRetryRequest( boolean retryRequest ) {
-+ void setRetryRequest( RetryType retryRequest ) {
- this.retryRequest = retryRequest;
- }
-
- /**
- * Retrieve the current retry request status.
- */
-- boolean getRetryRequest() {
-+ RetryType getRetryRequest() {
-+ // 6763340
- return this.retryRequest;
- }
-
-diff --git a/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java b/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java
---- openjdk/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java
-+++ openjdk/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java
-@@ -70,6 +70,7 @@
- import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
- import com.sun.corba.se.spi.protocol.ForwardException;
- import com.sun.corba.se.spi.protocol.PIHandler;
-+import com.sun.corba.se.spi.protocol.RetryType;
- import com.sun.corba.se.spi.logging.CORBALogDomains;
-
- import com.sun.corba.se.impl.logging.InterceptorsSystemException;
-@@ -372,9 +373,24 @@
- }
- }
-
-- public Exception invokeClientPIEndingPoint(
-- int replyStatus, Exception exception )
-- {
-+ // Needed when an error forces a retry AFTER initiateClientPIRequest
-+ // but BEFORE invokeClientPIStartingPoint.
-+ public Exception makeCompletedClientRequest( int replyStatus,
-+ Exception exception ) {
-+
-+ // 6763340
-+ return handleClientPIEndingPoint( replyStatus, exception, false ) ;
-+ }
-+
-+ public Exception invokeClientPIEndingPoint( int replyStatus,
-+ Exception exception ) {
-+
-+ // 6763340
-+ return handleClientPIEndingPoint( replyStatus, exception, true ) ;
-+ }
-+
-+ public Exception handleClientPIEndingPoint(
-+ int replyStatus, Exception exception, boolean invokeEndingPoint ) {
- if( !hasClientInterceptors ) return exception;
- if( !isClientPIEnabledForThisThread() ) return exception;
-
-@@ -388,24 +404,31 @@
- ClientRequestInfoImpl info = peekClientRequestInfoImplStack();
- info.setReplyStatus( piReplyStatus );
- info.setException( exception );
-- interceptorInvoker.invokeClientInterceptorEndingPoint( info );
-- piReplyStatus = info.getReplyStatus();
-+
-+ if (invokeEndingPoint) {
-+ // 6763340
-+ interceptorInvoker.invokeClientInterceptorEndingPoint( info );
-+ piReplyStatus = info.getReplyStatus();
-+ }
-
- // Check reply status:
- if( (piReplyStatus == LOCATION_FORWARD.value) ||
-- (piReplyStatus == TRANSPORT_RETRY.value) )
-- {
-+ (piReplyStatus == TRANSPORT_RETRY.value) ) {
- // If this is a forward or a retry, reset and reuse
- // info object:
- info.reset();
-- info.setRetryRequest( true );
-+
-+ // fix for 6763340:
-+ if (invokeEndingPoint) {
-+ info.setRetryRequest( RetryType.AFTER_RESPONSE ) ;
-+ } else {
-+ info.setRetryRequest( RetryType.BEFORE_RESPONSE ) ;
-+ }
-
- // ... and return a RemarshalException so the orb internals know
- exception = new RemarshalException();
-- }
-- else if( (piReplyStatus == SYSTEM_EXCEPTION.value) ||
-- (piReplyStatus == USER_EXCEPTION.value) )
-- {
-+ } else if( (piReplyStatus == SYSTEM_EXCEPTION.value) ||
-+ (piReplyStatus == USER_EXCEPTION.value) ) {
- exception = info.getException();
- }
-
-@@ -421,18 +444,21 @@
- RequestInfoStack infoStack =
- (RequestInfoStack)threadLocalClientRequestInfoStack.get();
- ClientRequestInfoImpl info = null;
-- if( !infoStack.empty() ) info =
-- (ClientRequestInfoImpl)infoStack.peek();
-
-- if( !diiRequest && (info != null) && info.isDIIInitiate() ) {
-+ if (!infoStack.empty() ) {
-+ info = (ClientRequestInfoImpl)infoStack.peek();
-+ }
-+
-+ if (!diiRequest && (info != null) && info.isDIIInitiate() ) {
- // In RequestImpl.doInvocation we already called
- // initiateClientPIRequest( true ), so ignore this initiate.
- info.setDIIInitiate( false );
-- }
-- else {
-+ } else {
- // If there is no info object or if we are not retrying a request,
- // push a new ClientRequestInfoImpl on the stack:
-- if( (info == null) || !info.getRetryRequest() ) {
-+
-+ // 6763340: don't push unless this is not a retry
-+ if( (info == null) || !info.getRetryRequest().isRetry() ) {
- info = new ClientRequestInfoImpl( orb );
- infoStack.push( info );
- printPush();
-@@ -442,9 +468,15 @@
- // Reset the retry request flag so that recursive calls will
- // push a new info object, and bump up entry count so we know
- // when to pop this info object:
-- info.setRetryRequest( false );
-+ info.setRetryRequest( RetryType.NONE );
- info.incrementEntryCount();
-
-+ // KMC 6763340: I don't know why this wasn't set earlier,
-+ // but we do not want a retry to pick up the previous
-+ // reply status, so clear it here. Most likely a new
-+ // info was pushed before, so that this was not a problem.
-+ info.setReplyStatus( RequestInfoImpl.UNINITIALIZED ) ;
-+
- // If this is a DII request, make sure we ignore the next initiate.
- if( diiRequest ) {
- info.setDIIInitiate( true );
-@@ -457,25 +489,34 @@
- if( !isClientPIEnabledForThisThread() ) return;
-
- ClientRequestInfoImpl info = peekClientRequestInfoImplStack();
-+ RetryType rt = info.getRetryRequest() ;
-
-- // If the replyStatus has not yet been set, this is an indication
-- // that the ORB threw an exception before we had a chance to
-- // invoke the client interceptor ending points.
-- //
-- // _REVISIT_ We cannot handle any exceptions or ForwardRequests
-- // flagged by the ending points here because there is no way
-- // to gracefully handle this in any of the calling code.
-- // This is a rare corner case, so we will ignore this for now.
-- short replyStatus = info.getReplyStatus();
-- if( replyStatus == info.UNINITIALIZED ) {
-- invokeClientPIEndingPoint( ReplyMessage.SYSTEM_EXCEPTION,
-- wrapper.unknownRequestInvoke(
-- CompletionStatus.COMPLETED_MAYBE ) ) ;
-+ // fix for 6763340
-+ if (!rt.equals( RetryType.BEFORE_RESPONSE )) {
-+
-+ // If the replyStatus has not yet been set, this is an indication
-+ // that the ORB threw an exception before we had a chance to
-+ // invoke the client interceptor ending points.
-+ //
-+ // _REVISIT_ We cannot handle any exceptions or ForwardRequests
-+ // flagged by the ending points here because there is no way
-+ // to gracefully handle this in any of the calling code.
-+ // This is a rare corner case, so we will ignore this for now.
-+ short replyStatus = info.getReplyStatus();
-+ if (replyStatus == info.UNINITIALIZED ) {
-+ invokeClientPIEndingPoint( ReplyMessage.SYSTEM_EXCEPTION,
-+ wrapper.unknownRequestInvoke(
-+ CompletionStatus.COMPLETED_MAYBE ) ) ;
-+ }
- }
-
- // Decrement entry count, and if it is zero, pop it from the stack.
- info.decrementEntryCount();
-- if( info.getEntryCount() == 0 ) {
-+
-+ // fix for 6763340, and probably other cases (non-recursive retry)
-+ if (info.getEntryCount() == 0 && !info.getRetryRequest().isRetry()) {
-+ // RequestInfoStack<ClientRequestInfoImpl> infoStack =
-+ // threadLocalClientRequestInfoStack.get();
- RequestInfoStack infoStack =
- (RequestInfoStack)threadLocalClientRequestInfoStack.get();
- infoStack.pop();
-diff --git a/src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java b/src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java
---- openjdk/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java
-+++ openjdk/corba/src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java
-@@ -107,6 +107,11 @@
- return null;
- }
-
-+ public Exception makeCompletedClientRequest(
-+ int replyStatus, Exception exception ) {
-+ return null;
-+ }
-+
- public void initiateClientPIRequest( boolean diiRequest ) {
- }
-
-diff --git a/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java b/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java
---- openjdk/corba/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java
-+++ openjdk/corba/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java
-@@ -187,7 +187,8 @@
- startingPointCall = 0;
- intermediatePointCall = 0;
- endingPointCall = 0;
-- replyStatus = UNINITIALIZED;
-+ // 6763340
-+ setReplyStatus( UNINITIALIZED ) ;
- currentExecutionPoint = EXECUTION_POINT_STARTING;
- alreadyExecuted = false;
- connection = null;
-diff --git a/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java b/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
---- openjdk/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
-+++ openjdk/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
-@@ -1672,6 +1672,7 @@
- {
- StackImpl invocationInfoStack =
- (StackImpl)clientInvocationInfoStack.get();
-+ int entryCount = -1;
- ClientInvocationInfo clientInvocationInfo = null;
- if (!invocationInfoStack.empty()) {
- clientInvocationInfo =
-@@ -1680,8 +1681,12 @@
- throw wrapper.invocationInfoStackEmpty() ;
- }
- clientInvocationInfo.decrementEntryCount();
-+ entryCount = clientInvocationInfo.getEntryCount();
- if (clientInvocationInfo.getEntryCount() == 0) {
-- invocationInfoStack.pop();
-+ // 6763340: don't pop if this is a retry!
-+ if (!clientInvocationInfo.isRetryInvocation()) {
-+ invocationInfoStack.pop();
-+ }
- finishedDispatch();
- }
- }
-diff --git a/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java b/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
---- openjdk/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
-+++ openjdk/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
-@@ -185,6 +185,7 @@
- if(getContactInfoListIterator(orb).hasNext()) {
- contactInfo = (ContactInfo)
- getContactInfoListIterator(orb).next();
-+ unregisterWaiter(orb);
- return beginRequest(self, opName,
- isOneWay, contactInfo);
- } else {
-@@ -292,10 +293,22 @@
- // ContactInfoList outside of subcontract.
- // Want to move that update to here.
- if (getContactInfoListIterator(orb).hasNext()) {
-- contactInfo = (ContactInfo)
-- getContactInfoListIterator(orb).next();
-+ contactInfo = (ContactInfo)getContactInfoListIterator(orb).next();
-+ if (orb.subcontractDebugFlag) {
-+ dprint( "RemarshalException: hasNext true\ncontact info " + contactInfo );
-+ }
-+
-+ // Fix for 6763340: Complete the first attempt before starting another.
-+ orb.getPIHandler().makeCompletedClientRequest(
-+ ReplyMessage.LOCATION_FORWARD, null ) ;
-+ unregisterWaiter(orb);
-+ orb.getPIHandler().cleanupClientPIRequest() ;
-+
- return beginRequest(self, opName, isOneWay, contactInfo);
- } else {
-+ if (orb.subcontractDebugFlag) {
-+ dprint( "RemarshalException: hasNext false" );
-+ }
- ORBUtilSystemException wrapper =
- ORBUtilSystemException.get(orb,
- CORBALogDomains.RPC_PROTOCOL);
-diff --git a/src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java b/src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java
---- openjdk/corba/src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java
-+++ openjdk/corba/src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java
-@@ -142,6 +142,27 @@
- int replyStatus, Exception exception ) ;
-
- /**
-+ * Called when a retry is needed after initiateClientPIRequest but
-+ * before invokeClientPIRequest. In this case, we need to properly
-+ * balance initiateClientPIRequest/cleanupClientPIRequest calls,
-+ * but WITHOUT extraneous calls to invokeClientPIEndingPoint
-+ * (see bug 6763340).
-+ *
-+ * @param replyStatus One of the constants in iiop.messages.ReplyMessage
More information about the distro-pkg-dev
mailing list