changeset 1166:257be482b6c3

Merge
author asaha
date Thu, 28 Aug 2014 14:39:06 -0700
parents 34147ec06239 (diff) e1299cbe39df (current diff)
children 8c704bcc9733
files .hgtags
diffstat 4 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Aug 25 15:57:07 2014 -0700
+++ b/.hgtags	Thu Aug 28 14:39:06 2014 -0700
@@ -511,3 +511,6 @@
 c62534f0e97dc7100da18b0b9c034d846f7067dc jdk7u72-b09
 62668c37376f462cfe7bfdfa001f902f52d450ef jdk7u72-b10
 39828d500dfef8045eb5b531182a09ea6ecdfb71 jdk7u72-b11
+1a3aa4637b80fabbd069ae88c241efcb3520fc49 jdk7u80-b00
+df1decc820934ad8bf91c853e81c88d4f7590e25 jdk7u80-b01
+2444fa7df7e3e07f2533f6c875c3a8e408048f6c jdk7u80-b02
--- a/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java	Mon Aug 25 15:57:07 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java	Thu Aug 28 14:39:06 2014 -0700
@@ -587,7 +587,7 @@
             java.lang.Object[] objholder = new java.lang.Object[1];
             objholder[0] = object;
             long[] longholder = new long[1];
-            TCUtility.unmarshalIn(in, typeCode, longholder, objholder);
+            TCUtility.unmarshalIn(in, realType(), longholder, objholder);
             value = longholder[0];
             object = objholder[0];
             stream = null;
--- a/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	Mon Aug 25 15:57:07 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	Thu Aug 28 14:39:06 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. 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
@@ -35,7 +35,8 @@
 import java.io.OutputStream;
 import java.io.ObjectOutputStream;
 import java.io.ObjectOutput;
-import java.util.Hashtable;
+import java.util.Map;
+import java.util.HashMap;
 
 import org.omg.CORBA.INTERNAL;
 
@@ -49,7 +50,7 @@
      */
     private class HookPutFields extends ObjectOutputStream.PutField
     {
-        private Hashtable fields = new Hashtable();
+        private Map<String,Object> fields = new HashMap<>();
 
         /**
          * Put the value of the named boolean field into the persistent field.
@@ -140,7 +141,6 @@
     public OutputStreamHook()
         throws java.io.IOException {
         super();
-
     }
 
     public void defaultWriteObject() throws IOException {
--- a/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java	Mon Aug 25 15:57:07 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java	Thu Aug 28 14:39:06 2014 -0700
@@ -253,6 +253,13 @@
             // registered with the selector.  Otherwise if the bytes
             // are read on the connection it will attempt a time stamp
             // but the cache will be null, resulting in NPE.
+
+            // A connection needs to be timestamped before putting to the cache.
+            // Otherwise the newly created connection (with 0 timestamp) could be
+            // incorrectly reclaimed by concurrent reclaim() call OR if there
+            // will be no events on this connection then it could be reclaimed
+            // by upcoming reclaim() call.
+            getConnectionCache().stampTime(connection);
             getConnectionCache().put(this, connection);
 
             if (connection.shouldRegisterServerReadEvent()) {