From jboss-remoting-commits at lists.jboss.org Wed Aug 4 21:22:20 2010 Content-Type: multipart/mixed; boundary="===============1094824415443900928==" MIME-Version: 1.0 From: jboss-remoting-commits at lists.jboss.org To: jboss-remoting-commits at lists.jboss.org Subject: [jboss-remoting-commits] JBoss Remoting SVN: r5999 - remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/bisocket/socketexception. Date: Wed, 04 Aug 2010 21:22:20 -0400 Message-ID: <201008050122.o751MKqZ008633@svn01.web.mwc.hst.phx2.redhat.com> --===============1094824415443900928== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: ron.sigal(a)jboss.com Date: 2010-08-04 21:22:19 -0400 (Wed, 04 Aug 2010) New Revision: 5999 Modified: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/bisoc= ket/socketexception/BisocketSocketCreationExceptionTestCase.java Log: JBREM-1241: Added svn:eol-style subversion property. Modified: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transpor= t/bisocket/socketexception/BisocketSocketCreationExceptionTestCase.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/biso= cket/socketexception/BisocketSocketCreationExceptionTestCase.java 2010-08-0= 5 01:21:36 UTC (rev 5998) +++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/biso= cket/socketexception/BisocketSocketCreationExceptionTestCase.java 2010-08-0= 5 01:22:19 UTC (rev 5999) @@ -1,234 +1,234 @@ -/* -* JBoss, Home of Professional Open Source -* Copyright 2009, JBoss Inc., and individual contributors as indicated -* by the @authors tag. See the copyright.txt in the distribution for a -* full listing of individual contributors. -* -* This is free software; you can redistribute it and/or modify it -* under the terms of the GNU Lesser General Public License as -* published by the Free Software Foundation; either version 2.1 of -* the License, or (at your option) any later version. -* -* This software is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this software; if not, write to the Free -* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -* 02110-1301 USA, or see the FSF site: http://www.fsf.org. -*/ -package org.jboss.test.remoting.transport.bisocket.socketexception; - -import java.io.IOException; -import java.lang.reflect.Field; -import java.net.InetAddress; -import java.net.ServerSocket; -import java.net.Socket; -import java.net.SocketException; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.net.ServerSocketFactory; - -import org.apache.log4j.Logger; -import org.jboss.remoting.Client; -import org.jboss.remoting.InvokerLocator; -import org.jboss.remoting.callback.Callback; -import org.jboss.remoting.callback.HandleCallbackException; -import org.jboss.remoting.callback.InvokerCallbackHandler; -import org.jboss.remoting.transport.Connector; -import org.jboss.remoting.transport.bisocket.Bisocket; -import org.jboss.remoting.transport.socket.LRUPool; -import org.jboss.remoting.transport.socket.ServerThread; -import org.jboss.remoting.transport.socket.SocketServerInvoker; -import org.jboss.test.remoting.transport.socket.socketexception.SocketCrea= tionExceptionTestCase; - -/** - * Unit tests for JBREM-1152. - * = - * @author Ron Sigal - * @version $Rev$ - *
- * Copyright Sep 9, 2009 - *
- */ -public class BisocketSocketCreationExceptionTestCase extends SocketCreatio= nExceptionTestCase -{ - private static Logger log =3D Logger.getLogger(BisocketSocketCreationEx= ceptionTestCase.class); - = - = - public void testCallbackException() throws Throwable - { - log.info("entering " + getName()); - = - // Start server. - setupServer(new TestServerSocketFactory(2, new SocketException(getNa= me()))); - = - // Create client. - InvokerLocator clientLocator =3D new InvokerLocator(locatorURI); - HashMap clientConfig =3D new HashMap(); - clientConfig.put(InvokerLocator.FORCE_REMOTE, "true"); - addExtraClientConfig(clientConfig); - Client client =3D new Client(clientLocator, clientConfig); - client.connect(); - log.info("client is connected"); - = - // Test connection. - assertEquals("abc", client.invoke("abc")); - log.info("connection is good"); - = - TestCallbackHandler callbackHandler =3D new TestCallbackHandler(); - Map metadata =3D new HashMap(); - metadata.put(Bisocket.IS_CALLBACK_SERVER, "true"); - client.addListener(callbackHandler, metadata); - = - // Get client side ServerThread pool. - Set callbackConnectors =3D client.getCallbackConnectors(callbackHand= ler); - Connector callbackConnector =3D (Connector) callbackConnectors.itera= tor().next(); - SocketServerInvoker serverInvoker =3D (SocketServerInvoker) callback= Connector.getServerInvoker(); - Field field =3D SocketServerInvoker.class.getDeclaredField("clientpo= ol"); - field.setAccessible(true); - LRUPool clientpool =3D (LRUPool) field.get(serverInvoker); - = - // Verify MicroSocketClientInvoker retries invocation after failure = to get a connection. - client.invoke(SEND_CALLBACK); - assertEquals(1, callbackHandler.received); - Set set =3D clientpool.getContents(); = - Object[] serverThreads =3D set.toArray(); - for (int i =3D 0; i < serverThreads.length; i++) - { - ServerThread st =3D (ServerThread) serverThreads[i]; - st.shutdown(); - } - client.invoke(SEND_CALLBACK); - assertEquals(2, callbackHandler.received); - set =3D clientpool.getContents(); - serverThreads =3D set.toArray(); - for (int i =3D 0; i < serverThreads.length; i++) - { - ServerThread st =3D (ServerThread) serverThreads[i]; - st.shutdown(); - } - client.invoke(SEND_CALLBACK); - assertEquals(3, callbackHandler.received); - = - client.removeListener(callbackHandler); - client.disconnect(); - shutdownServer(); - log.info(getName() + " PASSES"); - } - = - = - protected String getTransport() - { - return "bisocket"; - } - = - = - static class TestCallbackHandler implements InvokerCallbackHandler - { - public int received; - = - public void handleCallback(Callback callback) throws HandleCallbackE= xception - { - log.info("received callback"); - received++; - } = - } - = - static public class TestServerSocketFactory extends ServerSocketFactory - { - int initialSuccesses; - IOException exception; - = - public TestServerSocketFactory() - { - this.initialSuccesses =3D -1; - this.exception =3D new IOException(); - } = - public TestServerSocketFactory(int initialSuccesses, IOException exc= eption) - { - this.initialSuccesses =3D initialSuccesses; - this.exception =3D exception; - } - public ServerSocket createServerSocket() throws IOException - { - ServerSocket ss =3D new TestServerSocket(initialSuccesses, except= ion); - log.info(this + " returning: " + ss); - return ss; - } - public ServerSocket createServerSocket(int port) throws IOException - { - ServerSocket ss =3D new TestServerSocket(port, initialSuccesses, = exception); - log.info(this + " returning: " + ss); - return ss; - } - - public ServerSocket createServerSocket(int port, int backlog) throws= IOException - { - ServerSocket ss =3D new TestServerSocket(port, backlog, initialSu= ccesses, exception); - log.info(this + " returning: " + ss); - return ss; - } - - public ServerSocket createServerSocket(int port, int backlog, InetAd= dress ifAddress) throws IOException - { - ServerSocket ss =3D new TestServerSocket(port, backlog, ifAddress= , initialSuccesses, exception); - log.info(this + " returning: " + ss); - return ss; - } - } - = - = - static class TestServerSocket extends ServerSocket - { - int initialSuccesses; - IOException exception; - int counter; - - public TestServerSocket(int initialSuccesses, IOException exception)= throws IOException - { - super(); - this.initialSuccesses =3D initialSuccesses; - this.exception =3D exception; - } - public TestServerSocket(int port, int initialSuccesses, IOException = exception) throws IOException - { - super(port); - this.initialSuccesses =3D initialSuccesses; - this.exception =3D exception; - } - public TestServerSocket(int port, int backlog, int initialSuccesses,= IOException exception) throws IOException - { - super(port, backlog); - this.initialSuccesses =3D initialSuccesses; - this.exception =3D exception; - } - public TestServerSocket(int port, int backlog, InetAddress bindAddr,= int initialSuccesses, IOException exception) throws IOException - { - super(port, backlog, bindAddr); - this.initialSuccesses =3D initialSuccesses; - this.exception =3D exception; - } - public Socket accept() throws IOException - { - ++counter; - Socket s =3D super.accept(); - log.info(this + " counter: " + counter); - if (counter > initialSuccesses && counter <=3D initialSuccesses += 2) - { - throw exception; - } - log.info(this + " returning: " + s); - return s; - } - public String toString() - { - return "TestServerSocket[" + getLocalPort() + "]"; - } - } - = +/* +* JBoss, Home of Professional Open Source +* Copyright 2009, JBoss Inc., and individual contributors as indicated +* by the @authors tag. See the copyright.txt in the distribution for a +* full listing of individual contributors. +* +* This is free software; you can redistribute it and/or modify it +* under the terms of the GNU Lesser General Public License as +* published by the Free Software Foundation; either version 2.1 of +* the License, or (at your option) any later version. +* +* This software is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this software; if not, write to the Free +* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +* 02110-1301 USA, or see the FSF site: http://www.fsf.org. +*/ +package org.jboss.test.remoting.transport.bisocket.socketexception; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.net.InetAddress; +import java.net.ServerSocket; +import java.net.Socket; +import java.net.SocketException; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import javax.net.ServerSocketFactory; + +import org.apache.log4j.Logger; +import org.jboss.remoting.Client; +import org.jboss.remoting.InvokerLocator; +import org.jboss.remoting.callback.Callback; +import org.jboss.remoting.callback.HandleCallbackException; +import org.jboss.remoting.callback.InvokerCallbackHandler; +import org.jboss.remoting.transport.Connector; +import org.jboss.remoting.transport.bisocket.Bisocket; +import org.jboss.remoting.transport.socket.LRUPool; +import org.jboss.remoting.transport.socket.ServerThread; +import org.jboss.remoting.transport.socket.SocketServerInvoker; +import org.jboss.test.remoting.transport.socket.socketexception.SocketCrea= tionExceptionTestCase; + +/** + * Unit tests for JBREM-1152. + * = + * @author Ron Sigal + * @version $Rev$ + *+ * Copyright Sep 9, 2009 + *
+ */ +public class BisocketSocketCreationExceptionTestCase extends SocketCreatio= nExceptionTestCase +{ + private static Logger log =3D Logger.getLogger(BisocketSocketCreationEx= ceptionTestCase.class); + = + = + public void testCallbackException() throws Throwable + { + log.info("entering " + getName()); + = + // Start server. + setupServer(new TestServerSocketFactory(2, new SocketException(getNa= me()))); + = + // Create client. + InvokerLocator clientLocator =3D new InvokerLocator(locatorURI); + HashMap clientConfig =3D new HashMap(); + clientConfig.put(InvokerLocator.FORCE_REMOTE, "true"); + addExtraClientConfig(clientConfig); + Client client =3D new Client(clientLocator, clientConfig); + client.connect(); + log.info("client is connected"); + = + // Test connection. + assertEquals("abc", client.invoke("abc")); + log.info("connection is good"); + = + TestCallbackHandler callbackHandler =3D new TestCallbackHandler(); + Map metadata =3D new HashMap(); + metadata.put(Bisocket.IS_CALLBACK_SERVER, "true"); + client.addListener(callbackHandler, metadata); + = + // Get client side ServerThread pool. + Set callbackConnectors =3D client.getCallbackConnectors(callbackHand= ler); + Connector callbackConnector =3D (Connector) callbackConnectors.itera= tor().next(); + SocketServerInvoker serverInvoker =3D (SocketServerInvoker) callback= Connector.getServerInvoker(); + Field field =3D SocketServerInvoker.class.getDeclaredField("clientpo= ol"); + field.setAccessible(true); + LRUPool clientpool =3D (LRUPool) field.get(serverInvoker); + = + // Verify MicroSocketClientInvoker retries invocation after failure = to get a connection. + client.invoke(SEND_CALLBACK); + assertEquals(1, callbackHandler.received); + Set set =3D clientpool.getContents(); = + Object[] serverThreads =3D set.toArray(); + for (int i =3D 0; i < serverThreads.length; i++) + { + ServerThread st =3D (ServerThread) serverThreads[i]; + st.shutdown(); + } + client.invoke(SEND_CALLBACK); + assertEquals(2, callbackHandler.received); + set =3D clientpool.getContents(); + serverThreads =3D set.toArray(); + for (int i =3D 0; i < serverThreads.length; i++) + { + ServerThread st =3D (ServerThread) serverThreads[i]; + st.shutdown(); + } + client.invoke(SEND_CALLBACK); + assertEquals(3, callbackHandler.received); + = + client.removeListener(callbackHandler); + client.disconnect(); + shutdownServer(); + log.info(getName() + " PASSES"); + } + = + = + protected String getTransport() + { + return "bisocket"; + } + = + = + static class TestCallbackHandler implements InvokerCallbackHandler + { + public int received; + = + public void handleCallback(Callback callback) throws HandleCallbackE= xception + { + log.info("received callback"); + received++; + } = + } + = + static public class TestServerSocketFactory extends ServerSocketFactory + { + int initialSuccesses; + IOException exception; + = + public TestServerSocketFactory() + { + this.initialSuccesses =3D -1; + this.exception =3D new IOException(); + } = + public TestServerSocketFactory(int initialSuccesses, IOException exc= eption) + { + this.initialSuccesses =3D initialSuccesses; + this.exception =3D exception; + } + public ServerSocket createServerSocket() throws IOException + { + ServerSocket ss =3D new TestServerSocket(initialSuccesses, except= ion); + log.info(this + " returning: " + ss); + return ss; + } + public ServerSocket createServerSocket(int port) throws IOException + { + ServerSocket ss =3D new TestServerSocket(port, initialSuccesses, = exception); + log.info(this + " returning: " + ss); + return ss; + } + + public ServerSocket createServerSocket(int port, int backlog) throws= IOException + { + ServerSocket ss =3D new TestServerSocket(port, backlog, initialSu= ccesses, exception); + log.info(this + " returning: " + ss); + return ss; + } + + public ServerSocket createServerSocket(int port, int backlog, InetAd= dress ifAddress) throws IOException + { + ServerSocket ss =3D new TestServerSocket(port, backlog, ifAddress= , initialSuccesses, exception); + log.info(this + " returning: " + ss); + return ss; + } + } + = + = + static class TestServerSocket extends ServerSocket + { + int initialSuccesses; + IOException exception; + int counter; + + public TestServerSocket(int initialSuccesses, IOException exception)= throws IOException + { + super(); + this.initialSuccesses =3D initialSuccesses; + this.exception =3D exception; + } + public TestServerSocket(int port, int initialSuccesses, IOException = exception) throws IOException + { + super(port); + this.initialSuccesses =3D initialSuccesses; + this.exception =3D exception; + } + public TestServerSocket(int port, int backlog, int initialSuccesses,= IOException exception) throws IOException + { + super(port, backlog); + this.initialSuccesses =3D initialSuccesses; + this.exception =3D exception; + } + public TestServerSocket(int port, int backlog, InetAddress bindAddr,= int initialSuccesses, IOException exception) throws IOException + { + super(port, backlog, bindAddr); + this.initialSuccesses =3D initialSuccesses; + this.exception =3D exception; + } + public Socket accept() throws IOException + { + ++counter; + Socket s =3D super.accept(); + log.info(this + " counter: " + counter); + if (counter > initialSuccesses && counter <=3D initialSuccesses += 2) + { + throw exception; + } + log.info(this + " returning: " + s); + return s; + } + public String toString() + { + return "TestServerSocket[" + getLocalPort() + "]"; + } + } + = } \ No newline at end of file Property changes on: remoting2/branches/2.2/src/tests/org/jboss/test/remoti= ng/transport/bisocket/socketexception/BisocketSocketCreationExceptionTestCa= se.java ___________________________________________________________________ Name: svn:eol-style + native --===============1094824415443900928==--