Repository: cxf Updated Branches: refs/heads/master bd5fad7d1 -> d8d0dbe20
[CXF-6091] Fix problems stoping servers that are using the MultiEndpointObserver Patch from Vadim Beilin applied Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/d8d0dbe2 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/d8d0dbe2 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/d8d0dbe2 Branch: refs/heads/master Commit: d8d0dbe20412bad521f4e5dfc1b54ea7f624651b Parents: 8f12a15 Author: Daniel Kulp <[email protected]> Authored: Fri Nov 7 13:40:46 2014 -0500 Committer: Daniel Kulp <[email protected]> Committed: Fri Nov 7 13:54:35 2014 -0500 ---------------------------------------------------------------------- .../src/main/java/org/apache/cxf/endpoint/ServerImpl.java | 9 +++++---- .../cxf/frontend/soap/SoapBindingSelectionTest.java | 10 ++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/d8d0dbe2/core/src/main/java/org/apache/cxf/endpoint/ServerImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/cxf/endpoint/ServerImpl.java b/core/src/main/java/org/apache/cxf/endpoint/ServerImpl.java index bb9d7fc..5180594 100644 --- a/core/src/main/java/org/apache/cxf/endpoint/ServerImpl.java +++ b/core/src/main/java/org/apache/cxf/endpoint/ServerImpl.java @@ -167,11 +167,12 @@ public class ServerImpl implements Server { MessageObserver mo = getDestination().getMessageObserver(); if (mo instanceof MultipleEndpointObserver) { ((MultipleEndpointObserver)mo).getEndpoints().remove(endpoint); - if (!((MultipleEndpointObserver)mo).getEndpoints().isEmpty()) { - return; + if (((MultipleEndpointObserver)mo).getEndpoints().isEmpty()) { + getDestination().setMessageObserver(null); } - } - getDestination().setMessageObserver(null); + } else { + getDestination().setMessageObserver(null); + } stopped = true; } http://git-wip-us.apache.org/repos/asf/cxf/blob/d8d0dbe2/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/soap/SoapBindingSelectionTest.java ---------------------------------------------------------------------- diff --git a/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/soap/SoapBindingSelectionTest.java b/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/soap/SoapBindingSelectionTest.java index a25379b..13277e5 100644 --- a/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/soap/SoapBindingSelectionTest.java +++ b/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/soap/SoapBindingSelectionTest.java @@ -94,6 +94,16 @@ public class SoapBindingSelectionTest extends AbstractSimpleFrontendTest { assertFalse(service1Invoked); assertTrue(service2Invoked); + + server2.stop(); + server2.start(); + + nd = invoke("http://localhost/Hello", LocalTransportFactory.TRANSPORT_ID, "soap12.xml"); + assertEquals("http://www.w3.org/2003/05/soap-envelope", getNs(nd)); + + assertFalse(service1Invoked); + assertTrue(service2Invoked); + } private String getNs(Node nd) {
