[jboss-cvs] JBoss Messaging SVN: r1968 - in branches/Branch_1_0_1_SP: lib and 6 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jan 16 02:32:00 EST 2007
Author: ovidiu.feodorov at jboss.com
Date: 2007-01-16 02:31:34 -0500 (Tue, 16 Jan 2007)
New Revision: 1968
Added:
branches/Branch_1_0_1_SP/lib/jboss-remoting.jar
branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/TestClientInvoker.java
Modified:
branches/Branch_1_0_1_SP/build-messaging.xml
branches/Branch_1_0_1_SP/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java
branches/Branch_1_0_1_SP/src/main/org/jboss/jms/server/remoting/ServerSocketWrapper.java
branches/Branch_1_0_1_SP/tests/bin/runtest
branches/Branch_1_0_1_SP/tests/etc/log4j.info.xml
branches/Branch_1_0_1_SP/tests/etc/log4j.trace.xml
branches/Branch_1_0_1_SP/tests/etc/log4j.xml
branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/jms/QueueTest.java
branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/RemotingTest.java
Log:
added partial test in investigation of http://jira.jboss.org/jira/browse/JBMESSAGING-748
Modified: branches/Branch_1_0_1_SP/build-messaging.xml
===================================================================
--- branches/Branch_1_0_1_SP/build-messaging.xml 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/build-messaging.xml 2007-01-16 07:31:34 UTC (rev 1968)
@@ -49,9 +49,9 @@
<property name="messaging.version.minor" value="0"/>
<property name="messaging.version.revision" value="1"/>
<property name="messaging.version.incrementing" value="6"/>
- <property name="messaging.version.tag" value="SP2"/>
+ <property name="messaging.version.tag" value="SP3"/>
<property name="messaging.version.name" value=""/>
- <property name="messaging.version.cvstag" value="JBossMessaging_1_0_1_SP2"/>
+ <property name="messaging.version.cvstag" value="JBossMessaging_1_0_1_SP3"/>
<property name="module.name" value="messaging"/>
<property name="module.Name" value="JBoss Messaging"/>
<property name="module.version" value="${messaging.version.major}.${messaging.version.minor}.${messaging.version.revision}.${messaging.version.tag}"/>
Added: branches/Branch_1_0_1_SP/lib/jboss-remoting.jar
===================================================================
(Binary files differ)
Property changes on: branches/Branch_1_0_1_SP/lib/jboss-remoting.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: branches/Branch_1_0_1_SP/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java
===================================================================
--- branches/Branch_1_0_1_SP/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java 2007-01-16 07:31:34 UTC (rev 1968)
@@ -25,7 +25,9 @@
import org.jboss.remoting.InvokerLocator;
import org.jboss.remoting.serialization.SerializationStreamFactory;
+import org.jboss.remoting.serialization.SerializationManager;
import org.jboss.remoting.transport.socket.SocketWrapper;
+import org.jboss.logging.Logger;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
@@ -44,16 +46,20 @@
*/
public class ClientSocketWrapper extends SocketWrapper
{
- // Constants -----------------------------------------------------
+ // Constants ------------------------------------------------------------------------------------
- // Static --------------------------------------------------------
+ private static final Logger log = Logger.getLogger(ClientSocketWrapper.class);
- // Attributes ----------------------------------------------------
+ // Static ---------------------------------------------------------------------------------------
+ private static boolean trace = log.isTraceEnabled();
+
+ // Attributes -----------------------------------------------------------------------------------
+
private ObjectInputStream in;
private ObjectOutputStream out;
- // Constructors --------------------------------------------------
+ // Constructors ---------------------------------------------------------------------------------
public ClientSocketWrapper(Socket socket) throws IOException
{
@@ -67,7 +73,7 @@
createStreams(socket, metadata);
}
- // Public --------------------------------------------------------
+ // Public ---------------------------------------------------------------------------------------
public OutputStream getOutputStream()
{
@@ -90,12 +96,13 @@
in.readByte();
}
- // Package protected ---------------------------------------------
+ // Package protected ----------------------------------------------------------------------------
- // Protected -----------------------------------------------------
+ // Protected ------------------------------------------------------------------------------------
protected void createStreams(Socket socket, Map metadata) throws IOException
{
+ if (trace) { log.trace(this + " creating streams for " + socket); }
String serializationType = "jboss"; // hardcoding to default to jboss serialization
@@ -119,20 +126,35 @@
protected ObjectInputStream createInputStream(String serializationType, Socket socket)
throws IOException
{
+ if (trace) { log.trace(this + " creating input stream"); }
+
BufferedInputStream bin = new BufferedInputStream(socket.getInputStream());
- return SerializationStreamFactory.getManagerInstance(serializationType).
- createInput(bin, null);
+ SerializationManager sm = SerializationStreamFactory.getManagerInstance(serializationType);
+
+ ObjectInputStream ois = sm.createInput(bin, null);
+
+ if (trace) { log.trace(this + " created and returned " + ois); }
+
+ return ois;
}
protected ObjectOutputStream createOutputStream(String serializationType, Socket socket)
throws IOException
{
+ if (trace) { log.trace(this + " creating output stream"); }
+
BufferedOutputStream bout = new BufferedOutputStream(socket.getOutputStream());
- return SerializationStreamFactory.getManagerInstance(serializationType).createOutput(bout);
+ SerializationManager sm = SerializationStreamFactory.getManagerInstance(serializationType);
+
+ ObjectOutputStream oos = sm.createOutput(bout);
+
+ if (trace) { log.trace(this + " created and returned " + oos); }
+
+ return oos;
}
- // Private -------------------------------------------------------
+ // Private --------------------------------------------------------------------------------------
- // Inner classes -------------------------------------------------
+ // Inner classes --------------------------------------------------------------------------------
}
Modified: branches/Branch_1_0_1_SP/src/main/org/jboss/jms/server/remoting/ServerSocketWrapper.java
===================================================================
--- branches/Branch_1_0_1_SP/src/main/org/jboss/jms/server/remoting/ServerSocketWrapper.java 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/src/main/org/jboss/jms/server/remoting/ServerSocketWrapper.java 2007-01-16 07:31:34 UTC (rev 1968)
@@ -34,6 +34,7 @@
import org.jboss.jms.client.remoting.ClientSocketWrapper;
import org.jboss.logging.Logger;
import org.jboss.remoting.serialization.SerializationStreamFactory;
+import org.jboss.remoting.serialization.SerializationManager;
/**
* @author <a href="mailto:tom.elrod at jboss.com">Tom Elrod</a>
@@ -42,29 +43,33 @@
*/
public class ServerSocketWrapper extends ClientSocketWrapper
{
- // Constants -----------------------------------------------------
+ // Constants ------------------------------------------------------------------------------------
final static private Logger log = Logger.getLogger(ServerSocketWrapper.class);
- // Static --------------------------------------------------------
+ // Static ---------------------------------------------------------------------------------------
- // Attributes ----------------------------------------------------
+ // Attributes -----------------------------------------------------------------------------------
- private boolean trace = log.isTraceEnabled();
+ private static boolean trace = log.isTraceEnabled();
- // Constructors --------------------------------------------------
+ // Constructors ---------------------------------------------------------------------------------
public ServerSocketWrapper(Socket socket) throws Exception
{
super(socket);
+
+ log.debug(this + " constructed");
}
public ServerSocketWrapper(Socket socket, Map metadata, Integer timeout) throws Exception
{
super(socket, metadata, timeout);
+
+ log.debug(this + " constructed using a timeout of " + timeout + " ms");
}
- // Public --------------------------------------------------------
+ // Public ---------------------------------------------------------------------------------------
public void checkConnection() throws IOException
{
@@ -98,32 +103,53 @@
out.reset();
}
+ public String toString()
+ {
+ return "ServerSocketWrapper[" + getSocket() + "]";
+ }
- // Package protected ---------------------------------------------
+ // Package protected ----------------------------------------------------------------------------
- // Protected -----------------------------------------------------
+ // Protected ------------------------------------------------------------------------------------
protected ObjectInputStream createInputStream(String serializationType, Socket socket)
throws IOException
{
+ if (trace) { log.trace(this + " creating input stream"); }
+
BufferedInputStream bin = new BufferedInputStream(socket.getInputStream());
- return SerializationStreamFactory.getManagerInstance(serializationType).
- createInput(bin, null);
+ SerializationManager sm = SerializationStreamFactory.getManagerInstance(serializationType);
+
+ if (trace) { log.trace(this + " creating input stream using " + sm); }
+
+ ObjectInputStream ois = sm.createInput(bin, null);
+
+ if (trace) { log.trace(this + " created and returned " + ois); }
+
+ return ois;
}
protected ObjectOutputStream createOutputStream(String serializationType, Socket socket)
throws IOException
{
+ if (trace) { log.trace(this + " creating output stream"); }
+
BufferedOutputStream bout = new BufferedOutputStream(socket.getOutputStream());
- ObjectOutputStream oout = SerializationStreamFactory.getManagerInstance(serializationType).
- createOutput(bout);
+ SerializationManager sm = SerializationStreamFactory.getManagerInstance(serializationType);
- oout.flush();
- return oout;
+ if (trace) { log.trace(this + " creating output stream using " + sm); }
+
+ ObjectOutputStream oos = sm.createOutput(bout);
+
+ oos.flush();
+
+ if (trace) { log.trace(this + " created and returned " + oos); }
+
+ return oos;
}
- // Private -------------------------------------------------------
+ // Private --------------------------------------------------------------------------------------
- // Inner classes -------------------------------------------------
+ // Inner classes --------------------------------------------------------------------------------
}
Modified: branches/Branch_1_0_1_SP/tests/bin/runtest
===================================================================
--- branches/Branch_1_0_1_SP/tests/bin/runtest 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/tests/bin/runtest 2007-01-16 07:31:34 UTC (rev 1968)
@@ -43,7 +43,7 @@
# it from there.
#
-ant -Dtest.execution.classpath.file=bin/.test.execution.classpath -f $reldir/../build.xml compile get-test-execution-classpath
+ant -Dtest.execution.classpath.file=bin/.test.execution.classpath -f $reldir/../build.xml get-test-execution-classpath
CLASSPATH=`cat $reldir/.test.execution.classpath`
outputdir="$reldir/../output"
Modified: branches/Branch_1_0_1_SP/tests/etc/log4j.info.xml
===================================================================
--- branches/Branch_1_0_1_SP/tests/etc/log4j.info.xml 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/tests/etc/log4j.info.xml 2007-01-16 07:31:34 UTC (rev 1968)
@@ -19,7 +19,7 @@
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5r %-5p [%c] @%t %m%n"/>
+ <param name="ConversionPattern" value="%d %-5p @%t [%c{1}] %m%n"/>
</layout>
</appender>
Modified: branches/Branch_1_0_1_SP/tests/etc/log4j.trace.xml
===================================================================
--- branches/Branch_1_0_1_SP/tests/etc/log4j.trace.xml 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/tests/etc/log4j.trace.xml 2007-01-16 07:31:34 UTC (rev 1968)
@@ -19,7 +19,7 @@
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5r %-5p [%c] @%t %m%n"/>
+ <param name="ConversionPattern" value="%d %-5p @%t [%c] %m%n"/>
</layout>
</appender>
Modified: branches/Branch_1_0_1_SP/tests/etc/log4j.xml
===================================================================
--- branches/Branch_1_0_1_SP/tests/etc/log4j.xml 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/tests/etc/log4j.xml 2007-01-16 07:31:34 UTC (rev 1968)
@@ -19,7 +19,7 @@
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5r %-5p [%c] @%t %m%n"/>
+ <param name="ConversionPattern" value="%d %-5p @%t [%c] %m%n"/>
</layout>
</appender>
@@ -70,6 +70,10 @@
<priority value="DEBUG"/>
</category>
+ <category name="org.jboss.remoting">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+
<root>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
Modified: branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/jms/QueueTest.java
===================================================================
--- branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/jms/QueueTest.java 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/jms/QueueTest.java 2007-01-16 07:31:34 UTC (rev 1968)
@@ -31,7 +31,6 @@
import javax.naming.InitialContext;
import org.jboss.jms.client.JBossConnectionFactory;
-import org.jboss.jms.message.JBossMessage;
import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.test.messaging.tools.ServerManagement;
Modified: branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/RemotingTest.java
===================================================================
--- branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/RemotingTest.java 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/RemotingTest.java 2007-01-16 07:31:34 UTC (rev 1968)
@@ -44,6 +44,7 @@
import org.jboss.remoting.transport.Connector;
import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.test.messaging.tools.ServerManagement;
+import org.jboss.test.messaging.tools.jmx.ServiceContainer;
import EDU.oswego.cs.dl.util.concurrent.Slot;
@@ -248,8 +249,95 @@
conn2.close();
}
+ /**
+ * See http://jira.jboss.org/jira/browse/JBMESSAGING-748
+ */
+ public void testServerLockup() throws Throwable
+ {
+ // this test only makes sense in a remote configuration
+ if (!isRemote())
+ {
+ return;
+ }
+ // get the remote server locator
+ String s = (String)ServerManagement.
+ getAttribute(ServiceContainer.REMOTING_OBJECT_NAME, "InvokerLocator");
+
+ final InvokerLocator serverInvokerLocator = new InvokerLocator(s);
+
+ // open a socket but don't do anything else. This locks the server with a pre
+ // http://jira.jboss.org/jira/browse/JBMESSAGING-748 code base
+
+ new Thread(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ log.debug("rogue connection into the server");
+
+ TestClientInvoker rogueInvoker = new TestClientInvoker(serverInvokerLocator);
+
+ rogueInvoker.connect();
+ rogueInvoker.openConnectionButDontSendAnything();
+
+
+ log.debug("sleeping for 30 secs");
+
+ Thread.sleep(30000);
+
+ log.debug("woke up and exiting");
+ }
+ catch(Throwable t)
+ {
+ log.error("Failed to establish rogue connection", t);
+ }
+
+ }
+ }, "Rogue thread").start();
+
+
+ final Slot rendezVous = new Slot();
+
+ // create a second "real" connection and send an invocation from a different thread,
+ // simulating a real client trying to connect. This will block forever.
+
+ new Thread(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+
+ Thread.sleep(5000);
+
+ log.debug("trying to connect to the server");
+
+ TestClientInvoker honestInvoker = new TestClientInvoker(serverInvokerLocator);
+
+ honestInvoker.connect();
+ honestInvoker.openConnectionAndSendJunk();
+
+ log.debug("sent junk");
+
+ rendezVous.put(Boolean.TRUE);
+ }
+ catch(Throwable t)
+ {
+ log.error("Failed to connect to server", t);
+ }
+
+ }
+ }, "Honest thread").start();
+
+
+ // wait for the honest invoker to finish its invocation
+ Boolean b = (Boolean)rendezVous.poll(15000);
+ assertNotNull(b);
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
Added: branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/TestClientInvoker.java
===================================================================
--- branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/TestClientInvoker.java 2007-01-15 18:08:00 UTC (rev 1967)
+++ branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/TestClientInvoker.java 2007-01-16 07:31:34 UTC (rev 1968)
@@ -0,0 +1,80 @@
+/**
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.test.messaging.util;
+
+import org.jboss.remoting.transport.socket.MicroSocketClientInvoker;
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.logging.Logger;
+
+import java.net.Socket;
+import java.io.OutputStream;
+
+/**
+ * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
+ * @version <tt>$Revision: 1.1.2.1 $</tt>
+ *
+ * $Id: TestClientInvoker.java,v 1.1.2.1 2007/01/16 00:29:29 ovidiu Exp $
+ */
+class TestClientInvoker extends MicroSocketClientInvoker
+{
+ // Constants ------------------------------------------------------------------------------------
+
+ private static final Logger log = Logger.getLogger(TestClientInvoker.class);
+
+ // Static ---------------------------------------------------------------------------------------
+
+ // Attributes -----------------------------------------------------------------------------------
+
+ // Constructors ---------------------------------------------------------------------------------
+
+ public TestClientInvoker(InvokerLocator locator)
+ {
+ super(locator);
+ }
+
+ // Public ---------------------------------------------------------------------------------------
+
+ public String toString()
+ {
+ return "TestClientInvoker[" + Integer.toHexString(hashCode()) + "]";
+ }
+
+ // Package protected ----------------------------------------------------------------------------
+
+ Socket openConnectionButDontSendAnything() throws Exception
+ {
+ log.debug(this + " creating simple socket");
+
+ Socket socket = new Socket(locator.getHost(), locator.getPort());
+
+ log.debug(this + " created socket " + socket);
+
+ return socket;
+ }
+
+ void openConnectionAndSendJunk() throws Exception
+ {
+ Socket socket = openConnectionButDontSendAnything();
+
+ OutputStream os = socket.getOutputStream();
+
+ os.write((byte)-1);
+
+ log.debug(this + " wrote junk on socket");
+
+// os.flush();
+//
+// log.debug(this + " flushed the stream");
+ }
+
+
+ // Protected ------------------------------------------------------------------------------------
+
+ // Private --------------------------------------------------------------------------------------
+
+ // Inner classes --------------------------------------------------------------------------------
+}
Property changes on: branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/util/TestClientInvoker.java
___________________________________________________________________
Name: svn:keywords
+ "Id LastChangedDate Author Revision"
More information about the jboss-cvs-commits
mailing list