changeset 1178:fc6a39d6be24 jdk7u80-b03

Merge
author asaha
date Tue, 07 Oct 2014 12:35:39 -0700
parents 8c704bcc9733 (diff) 34b05e50392b (current diff)
children 4e8ca30ec092 d9ddd2aec6be
files .hgtags
diffstat 4 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Oct 06 11:16:51 2014 -0700
+++ b/.hgtags	Tue Oct 07 12:35:39 2014 -0700
@@ -518,3 +518,6 @@
 9e0c893977bba3ed7820f173d386e197f3c06e7b jdk7u72-b13
 bd80d0c18ccd97669dd8392dbde5cd91f647ee1d jdk7u72-b14
 66da7f46eff05df2aa3bb9b5c1f7ee47a75828a5 jdk7u72-b30
+1a3aa4637b80fabbd069ae88c241efcb3520fc49 jdk7u80-b00
+df1decc820934ad8bf91c853e81c88d4f7590e25 jdk7u80-b01
+2444fa7df7e3e07f2533f6c875c3a8e408048f6c jdk7u80-b02
--- a/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java	Mon Oct 06 11:16:51 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java	Tue Oct 07 12:35:39 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 Oct 06 11:16:51 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	Tue Oct 07 12:35:39 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 Oct 06 11:16:51 2014 -0700
+++ b/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java	Tue Oct 07 12:35:39 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()) {