Merge
diff --git a/.hgtags b/.hgtags
index ac804c4..02aa48e 100644
--- a/.hgtags
+++ b/.hgtags
@@ -705,3 +705,19 @@
 c59814f445e808150326012d911b5b4d8caa025b jdk8u151-b01
 d3dec37780f84151b08c03a6a8cba7d68bde0f80 jdk8u151-b02
 4c06ef2757dedeffa5f61acad42c36cbb3496e69 jdk8u151-b03
+ea4b3e983ee708f9323d228044176e52526e9e13 jdk8u122-b00
+2e7f62568785adfe695e0c06f2e88c9d369c3b2c jdk8u122-b01
+b97e1b7f3c92b3e9f75e6aa590e0884c3c3ed33f jdk8u122-b02
+30b5b545a78c0c4fee837664f9c70ef6a2b4f0c1 jdk8u122-b03
+30b5b545a78c0c4fee837664f9c70ef6a2b4f0c1 jdk8u122-b03
+0000000000000000000000000000000000000000 jdk8u122-b03
+0000000000000000000000000000000000000000 jdk8u122-b03
+a127c3268266ba1402343d94c7b19355c2dd1bd7 jdk8u122-b03
+c48501ec74b9b03870b473e5bde656fce230fc36 jdk8u122-b04
+f3b3163dda3c6da9339dba99a2ee74645ad2edc6 jdk8u132-b00
+55cb39946f2f163085ca80413b8cd3b3e196e533 jdk8u152-b00
+cf960a33b0e3093abcb48bfe304d471e3b092dc4 jdk8u152-b01
+0b4a7ce47e597b8d33e590857384a478c69a9e6f jdk8u152-b02
+98c698b1b09b6a31d5090a25aff8b7a6edb8d6ba jdk8u152-b03
+bcf7fc55388e4c9d771cd2ad38351a66bfcf27d9 jdk8u152-b04
+388cd26b19dbf7d3102653dd82c27027cd722066 jdk8u152-b05
diff --git a/ASSEMBLY_EXCEPTION b/ASSEMBLY_EXCEPTION
index 8b7ac1d..065b8d9 100644
--- a/ASSEMBLY_EXCEPTION
+++ b/ASSEMBLY_EXCEPTION
@@ -1,27 +1,27 @@
 
 OPENJDK ASSEMBLY EXCEPTION
 
-The OpenJDK source code made available by Sun at openjdk.java.net and
-openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the
-GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
+The OpenJDK source code made available by Oracle America, Inc. (Oracle) at
+openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU
+General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
 only ("GPL2"), with the following clarification and special exception.
 
     Linking this OpenJDK Code statically or dynamically with other code
     is making a combined work based on this library.  Thus, the terms
     and conditions of GPL2 cover the whole combination.
 
-    As a special exception, Sun gives you permission to link this
-    OpenJDK Code with certain code licensed by Sun as indicated at
+    As a special exception, Oracle gives you permission to link this
+    OpenJDK Code with certain code licensed by Oracle as indicated at
     http://openjdk.java.net/legal/exception-modules-2007-05-08.html
     ("Designated Exception Modules") to produce an executable,
     regardless of the license terms of the Designated Exception Modules,
     and to copy and distribute the resulting executable under GPL2,
     provided that the Designated Exception Modules continue to be
-    governed by the licenses under which they were offered by Sun.
+    governed by the licenses under which they were offered by Oracle.
 
-As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to
-build an executable that includes those portions of necessary code that Sun
-could not provide under GPL2 (or that Sun has provided under GPL2 with the
-Classpath exception).  If you modify or add to the OpenJDK code, that new
-GPL2 code may still be combined with Designated Exception Modules if the
-new code is made subject to this exception by its copyright holder.
+As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code
+to build an executable that includes those portions of necessary code that
+Oracle could not provide under GPL2 (or that Oracle has provided under GPL2
+with the Classpath exception).  If you modify or add to the OpenJDK code,
+that new GPL2 code may still be combined with Designated Exception Modules
+if the new code is made subject to this exception by its copyright holder.
diff --git a/src/share/jaxws_classes/com/sun/xml/internal/ws/transport/http/server/ServerMgr.java b/src/share/jaxws_classes/com/sun/xml/internal/ws/transport/http/server/ServerMgr.java
index a16ec36..a579a3c 100644
--- a/src/share/jaxws_classes/com/sun/xml/internal/ws/transport/http/server/ServerMgr.java
+++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/transport/http/server/ServerMgr.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, 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
@@ -81,24 +81,37 @@
             synchronized(servers) {
                 state = servers.get(inetAddress);
                 if (state == null) {
-                    logger.fine("Creating new HTTP Server at "+inetAddress);
-                    // Creates server with default socket backlog
-                    server = HttpServer.create(inetAddress, 0);
-                    server.setExecutor(Executors.newCachedThreadPool());
-                    String path = url.toURI().getPath();
-                    logger.fine("Creating HTTP Context at = "+path);
-                    HttpContext context = server.createContext(path);
-                    server.start();
+                    final int finalPortNum = port;
+                    for (ServerState s: servers.values()) {
+                        if (s.getServer()
+                             .getAddress()
+                             .getPort() == finalPortNum) {
+                            state = s;
+                            break;
+                        }
+                    }
 
-                    // we have to get actual inetAddress from server, which can differ from the original in some cases.
-                    // e.g. A port number of zero will let the system pick up an ephemeral port in a bind operation,
-                    // or IP: 0.0.0.0 - which is used to monitor network traffic from any valid IP address
-                    inetAddress = server.getAddress();
+                    if (!inetAddress.getAddress().isAnyLocalAddress() ||
+                        state == null) {
+                        logger.fine("Creating new HTTP Server at "+inetAddress);
+                        // Creates server with default socket backlog
+                        server = HttpServer.create(inetAddress, 0);
+                        server.setExecutor(Executors.newCachedThreadPool());
+                        String path = url.toURI().getPath();
+                        logger.fine("Creating HTTP Context at = "+path);
+                        HttpContext context = server.createContext(path);
+                        server.start();
 
-                    logger.fine("HTTP server started = "+inetAddress);
-                    state = new ServerState(server, path);
-                    servers.put(inetAddress, state);
-                    return context;
+                        // we have to get actual inetAddress from server, which can differ from the original in some cases.
+                        // e.g. A port number of zero will let the system pick up an ephemeral port in a bind operation,
+                        // or IP: 0.0.0.0 - which is used to monitor network traffic from any valid IP address
+                        inetAddress = server.getAddress();
+
+                        logger.fine("HTTP server started = "+inetAddress);
+                        state = new ServerState(server, path);
+                        servers.put(inetAddress, state);
+                        return context;
+                    }
                 }
             }
             server = state.getServer();