Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9673F108A4 for ; Mon, 15 Jul 2013 22:51:13 +0000 (UTC) Received: (qmail 37191 invoked by uid 500); 15 Jul 2013 22:51:13 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 37141 invoked by uid 500); 15 Jul 2013 22:51:13 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 37134 invoked by uid 99); 15 Jul 2013 22:51:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Jul 2013 22:51:13 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Jul 2013 22:51:10 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B44792388900; Mon, 15 Jul 2013 22:50:49 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1503509 - in /cxf/trunk: api/src/main/java/org/apache/cxf/BusFactory.java rt/core/src/test/java/org/apache/cxf/bus/CXFBusImplTest.java Date: Mon, 15 Jul 2013 22:50:49 -0000 To: commits@cxf.apache.org From: dkulp@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130715225049.B44792388900@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dkulp Date: Mon Jul 15 22:50:49 2013 New Revision: 1503509 URL: http://svn.apache.org/r1503509 Log: Fix problems with thread bus not being retrieved correctly Also cleanup bus's in the one test case. Modified: cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/CXFBusImplTest.java Modified: cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java?rev=1503509&r1=1503508&r2=1503509&view=diff ============================================================================== --- cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java (original) +++ cxf/trunk/api/src/main/java/org/apache/cxf/BusFactory.java Mon Jul 15 22:50:49 2013 @@ -228,8 +228,14 @@ public abstract class BusFactory { } return b.bus; } - BusHolder b = threadBus.get(); - return b == null ? null : b.bus; + BusHolder h = threadBus.get(); + if (h == null || h.stale) { + Thread cur = Thread.currentThread(); + synchronized (threadBusses) { + h = threadBusses.get(cur); + } + } + return h == null || h.stale ? null : h.bus; } private static synchronized Bus createThreadBus() { BusHolder b = getThreadBusHolder(false); Modified: cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/CXFBusImplTest.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/CXFBusImplTest.java?rev=1503509&r1=1503508&r2=1503509&view=diff ============================================================================== --- cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/CXFBusImplTest.java (original) +++ cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/CXFBusImplTest.java Mon Jul 15 22:50:49 2013 @@ -24,6 +24,7 @@ import java.util.Map; import org.apache.cxf.Bus; import org.apache.cxf.BusException; +import org.apache.cxf.BusFactory; import org.apache.cxf.binding.BindingFactoryManager; import org.apache.cxf.bus.extension.ExtensionManagerBus; import org.apache.cxf.buslifecycle.BusLifeCycleListener; @@ -34,12 +35,22 @@ import org.apache.cxf.transport.ConduitI import org.apache.cxf.transport.DestinationFactoryManager; import org.easymock.EasyMock; import org.easymock.IMocksControl; + import org.junit.Assert; import org.junit.Test; public class CXFBusImplTest extends Assert { @Test + public void testThreadBus() throws BusException { + BusFactory.setDefaultBus(null); + BusFactory.setThreadDefaultBus(null); + Bus bus = BusFactory.newInstance().createBus(); + Bus b2 = BusFactory.getThreadDefaultBus(false); + assertSame(bus, b2); + bus.shutdown(true); + } + @Test public void testConstructionWithoutExtensions() throws BusException { Bus bus = new ExtensionManagerBus(); @@ -47,6 +58,7 @@ public class CXFBusImplTest extends Asse assertNotNull(bus.getExtension(ConduitInitiatorManager.class)); assertNotNull(bus.getExtension(DestinationFactoryManager.class)); assertNotNull(bus.getExtension(PhaseManager.class)); + bus.shutdown(true); } @Test @@ -82,6 +94,7 @@ public class CXFBusImplTest extends Asse String extension = "CXF"; bus.setExtension(extension, String.class); assertSame(extension, bus.getExtension(String.class)); + bus.shutdown(true); } @Test @@ -91,6 +104,7 @@ public class CXFBusImplTest extends Asse assertEquals("The bus id should be cxf", id, Bus.DEFAULT_BUS_ID + Math.abs(bus.hashCode())); bus.setId("test"); assertEquals("The bus id should be changed", "test", bus.getId()); + bus.shutdown(true); } @Test @@ -107,7 +121,7 @@ public class CXFBusImplTest extends Asse lifeCycleManager.registerLifeCycleListener(listener); bus.shutdown(true); EasyMock.verify(listener); - + bus.shutdown(true); } }