changeset 1208:b4d4ec688a28 jdk7u76-b01

Merge
author asaha
date Wed, 03 Sep 2014 22:53:47 -0700
parents 743e08492250 4ba4a78c184f
children c24e65a16f33
files .hgtags
diffstat 4 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Wed Sep 03 22:38:39 2014 -0700
+++ b/.hgtags	Wed Sep 03 22:53:47 2014 -0700
@@ -465,6 +465,9 @@
 b7f66b9f9e8e099428ed7640a184f6135b77e40d jdk7u65-b18
 50ddba8882e7e95150418a30bfc3ee62e3c28c6c jdk7u65-b19
 dae3f20d2306622e39606d0dc967147de174afce jdk7u65-b32
+1a3aa4637b80fabbd069ae88c241efcb3520fc49 jdk7u80-b00
+df1decc820934ad8bf91c853e81c88d4f7590e25 jdk7u80-b01
+2444fa7df7e3e07f2533f6c875c3a8e408048f6c jdk7u80-b02
 ac05dfedf008e83c2044666a70635cf82e932e41 jdk7u65-b20
 244756837ab4b214decd0e6f26b0071a483f143f jdk7u67-b01
 2d6f594ce6c5dafc1ad9a9368186817212120d84 jdk7u76-b00
--- a/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java	Wed Sep 03 22:38:39 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java	Wed Sep 03 22:53:47 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	Wed Sep 03 22:38:39 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	Wed Sep 03 22:53:47 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	Wed Sep 03 22:38:39 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java	Wed Sep 03 22:53:47 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()) {