You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/08/04 21:16:03 UTC
svn commit: r682468 -
/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java
Author: veithen
Date: Mon Aug 4 12:16:03 2008
New Revision: 682468
URL: http://svn.apache.org/viewvc?rev=682468&view=rev
Log:
NttpCoreNIOSender: Make sure that the sender is completely initialised when the init method returns. This was not the case because part of the initialisation was done in the thread executing the IO reactor. This change makes unit tests more predictable (see http://www.nabble.com/Synapse-transport-test-failure-td18809256.html).
Modified:
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java
Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java?rev=682468&r1=682467&r2=682468&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java Mon Aug 4 12:16:03 2008
@@ -106,26 +106,6 @@
sslContext = getSSLContext(transportOut);
sslIOSessionHandler = getSSLIOSessionHandler(transportOut);
- // start the Sender in a new seperate thread
- Thread t = new Thread(new Runnable() {
- public void run() {
- executeClientEngine();
- }
- }, "HttpCoreNIOSender");
- t.start();
- log.info((sslContext == null ? "HTTP" : "HTTPS") + " Sender starting");
-
- // register with JMX
- mbeanSupport
- = new TransportMBeanSupport(this, "nio-http" + (sslContext == null ? "" : "s"));
- mbeanSupport.register();
- }
-
- /**
- * Configure and start the IOReactor
- */
- private void executeClientEngine() {
-
HttpParams params = getClientParameters();
try {
ioReactor = new DefaultConnectingIOReactor(
@@ -148,18 +128,31 @@
}
handler = new ClientHandler(cfgCtx, params, metrics);
- IOEventDispatch ioEventDispatch = getEventDispatch(
+ final IOEventDispatch ioEventDispatch = getEventDispatch(
handler, sslContext, sslIOSessionHandler, params);
+ // start the Sender in a new seperate thread
+ Thread t = new Thread(new Runnable() {
+ public void run() {
+ try {
+ ioReactor.execute(ioEventDispatch);
+ } catch (InterruptedIOException ex) {
+ log.fatal("Reactor Interrupted");
+ } catch (IOException e) {
+ log.fatal("Encountered an I/O error: " + e.getMessage(), e);
+ }
+ log.info((sslContext == null ? "HTTP" : "HTTPS") + " Sender Shutdown");
+ }
+ }, "HttpCoreNIOSender");
+ t.start();
+ log.info((sslContext == null ? "HTTP" : "HTTPS") + " Sender starting");
+
+ // register with JMX
+ mbeanSupport
+ = new TransportMBeanSupport(this, "nio-http" + (sslContext == null ? "" : "s"));
+ mbeanSupport.register();
+
state = BaseConstants.STARTED;
- try {
- ioReactor.execute(ioEventDispatch);
- } catch (InterruptedIOException ex) {
- log.fatal("Reactor Interrupted");
- } catch (IOException e) {
- log.fatal("Encountered an I/O error: " + e.getMessage(), e);
- }
- log.info((sslContext == null ? "HTTP" : "HTTPS") + " Sender Shutdown");
}
/**