[GUMP@vmgump-vm3]: Project tomcat-trunk-test-nio2 (in module tomcat-trunk) failed

2018-07-25 Thread Bill Barker
To whom it may engage...

This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at gene...@gump.apache.org.

Project tomcat-trunk-test-nio2 has an issue affecting its community integration.
This issue affects 1 projects.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- tomcat-trunk-test-nio2 :  Tomcat 9.x, a web server implementing the Java 
Servlet 4.0,
...


Full details are available at:
http://vmgump-vm3.apache.org/tomcat-trunk/tomcat-trunk-test-nio2/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Dependency on bnd exists, no need to add for property bndlib.jar.
 -INFO- Failed with reason build failed
 -INFO- Project Reports in: 
/srv/gump/public/workspace/tomcat-trunk/output/logs-NIO2
 -INFO- Project Reports in: 
/srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO2/logs
 -WARNING- No directory 
[/srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO2/logs]



The following work was performed:
http://vmgump-vm3.apache.org/tomcat-trunk/tomcat-trunk-test-nio2/gump_work/build_tomcat-trunk_tomcat-trunk-test-nio2.html
Work Name: build_tomcat-trunk_tomcat-trunk-test-nio2 (Type: Build)
Work ended in a state of : Failed
Elapsed: 27 mins 14 secs
Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true 
-Dbuild.sysclasspath=only -Dsun.zip.disableMemoryMapping=true 
org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml 
-Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar 
-Djava.net.preferIPv4Stack=/srv/gump/public/workspace/tomcat-trunk/true 
-Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.7-SNAPSHOT.jar
 -Dtest.reports=output/logs-NIO2 -Dexecute.test.nio2=true 
-Dexamples.sources.skip=true 
-Dbase.path=/srv/gump/public/workspace/tomcat-trunk/tomcat-build-libs 
-Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.7.3a-201803300640/ecj-4.7.3a.jar
 -Dbndlib.jar=/srv/gump/packages/bnd/bndlib-4.0.0/biz.aQute.bndlib-4.0.0.jar 
-Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/target/commons-daemon-1.1.1-SNAPSHOT.jar
 
-Dtest.openssl.path=/srv/gump/public/workspace/openssl-master/dest-20180726/bin/openssl
 -Dtest.temp=output/test-tmp-NIO2
  -Dtest.accesslog=true -Dexecute.test.nio=false 
-Dbnd.jar=/srv/gump/packages/bnd/bnd-4.0.0/biz.aQute.bnd-4.0.0.jar 
-Dexecute.test.apr=false -Dtest.excludePerformance=true -Dtest.relaxTiming=true 
-Deasymock.jar=/srv/gump/public/workspace/easymock/core/target/easymock-3.7-SNAPSHOT.jar
 -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.jar 
-Dcglib.jar=/srv/gump/packages/cglib/cglib-nodep-2.2.jar test 
[Working Directory: /srv/gump/public/workspace/tomcat-trunk]
CLASSPATH: 
/usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-trunk/output/testclasses:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/servlet-api.ja
 
r:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jsp-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/el-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/websocket-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jaspic-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ant.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-storeconfig.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-coyote.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper-el.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-tribes.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/bu
 

Re: Duplicate registration of ServletContextListerner

2018-07-25 Thread Huxing Zhang
Hi,

On Thu, Jul 26, 2018 at 2:57 AM, Christopher Schultz
 wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
>
> Huxing,
>
> On 7/25/18 11:28 AM, Huxing Zhang wrote:
>> Hi,
>>
>> Recently I am working on implementing a feature that can
>> automatically register a ServletContextListerner instance, say A,
>> to servletContext programmatically during startup.
>>
>> I use ServletContainerInitializer and call the
>> servletContext.addListener() method. This is fine for most of the
>> cases. But if user has specified A in web.xml, it turns that A will
>> be registered twice, which will lead to undesired behavior.
>>
>> My expected behavior will be registering A only once regardless of
>> user specified A in web.xml or not.
>>
>> I can achieve this by specifying A in web-fragment.xml, since it
>> will get merged into web.xml whenever A is defined in web.xml or
>> not, which means duplicates can be removed.
>>
>> I am wondering why we can not achieve this using programatic API.
>>
>> I've checked servlet 4.0/3.1 spec, in 4.4.3.1 "void
>> addListener(String className)", it says:
>>
>> If the class with the given name implements a listener interface
>> whose invocation order corresponds to the declaration order, that
>> is, if it implements javax.servlet.ServletRequestListener,
>> javax.servlet.ServletContextListener or
>> javax.servlet.http.HttpSessionListener, then the new listener will
>> be added to the end of the ordered list of listeners of that
>> interface.
>>
>> It looks tomcat's behavior is spec-compliant.
>>
>> My idea is if I can get all the existing listeners from
>> servletContext, then I can decide whether to add A or not.
>>
>> But I can't find that kind of API from servletContext.
>>
>> I also noticed that there are getServletRegistrations() and
>> getFilterRegistrations() in servletContext, why can't we have API
>> like getListeners()?
>
> Can you think of a use-case where addListener() shouldn't
> automatically perform de-duplication?

No, I can't think of that case.

If there is really a case, I think we can use
javax.servlet.ServletContext#setInitParameter to control that
behavior.
For example, use a initialization parameter named
DEDUPLICATE_LISTENERS, if set to true, any further registration will
be de-duplicated.
This parameter is better to be a per call parameter rather than a
global parameter, because it might be updated from multiple place.

Overall, I don't  think it is necessary to have unless there is a case.

> I'm thinking that Tomcat should
> simply take a call to addListener() and ignore any registrations after
> the first one.

Yes, I think it is important to have consistent behavior between
web-fragement/@WebListener and programmatic API.

>
> Would that make sense? Would it violate any spec-defined behavior?

I can't find any spec describing how to handle the duplications on
that part, so I guess it is safe to do so. :)

Maybe we can improve spec as well.

>
> - -chris
> -BEGIN PGP SIGNATURE-
> Comment: GPGTools - http://gpgtools.org
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAltYyDIACgkQHPApP6U8
> pFhSmA//We21JrL+KwpbPrNgicIM0T77/WFMQyNoaFrW0+QdJ96CUAWYr6NKn17t
> 0Y0mk9WpRDSIsknpXPTYfisO1RllO7Mde1KuGH6EUMZyYWr84E9YhqBVyOHG48if
> Y/COneCHK3Gs7QlywgRhyKDZFogDFS/X5zW+AGctFIdcdgBu0z8U85a/wlPLUTuk
> XA00qPLrIWSXerB97nsqcdreh7Qs2Uyx3Eye74JE4RwzRYkGVYrMuPpPQwudbAUF
> f2fgAHC5lrJBGLK4yiFce53KcwTzeyBM2yskux/1y02NUyHIASpjV8DqADthV61o
> SOFgG25PJChShsLQipjhcNQtqiluP4FNo1sN78ieMABfOm1zlIh4T4/4M8VD0MqP
> qdoXgqC8vEsCiGUY7rqQKIRTAe6Hpf2yz6Oygwhfk+6z2CpJ4RQfsAFMVJMf2KOM
> wjb6akXnrEzxPG6UEVxtep2cLLVraHlbjDHzNqMrecBC2EYHU/Ovh+gpsHXtJG8v
> +Koh9HR2Ps5h92PI5ND39JsD1KyNhO+zayYD/a+I9ryrQEKV584JyU6q3vyWIwXk
> m8eDlYo0ChCeiGwQ22bAOsdKYTJHruGPEg92VbbDipPLJ+8uzAbtEAlXmiGYkv2B
> Q3EtprVkD1sI88v/iRU8QZg7ux5ebKDHGIk1f33BP3AYUWnwcyY=
> =jKMW
> -END PGP SIGNATURE-
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>



-- 
Best Regards!
Huxing

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [INFRA] Tomcat cannot be built due to back mirrors

2018-07-25 Thread Konstantin Kolinko
2018-07-25 22:33 GMT+03:00 Michael Osipov :
> Folks,
>
> we need to inquire this with INFRA:
>>
>> PS D:\Entwicklung\Projekte\tomcat-8.5.x> ant
>> Buildfile: D:\Entwicklung\Projekte\tomcat-8.5.x\build.xml
>>
>> download-compile:
>>
>> testexist:
>>  [echo] Testing  for
>> C:\Users\mosipov/tomcat-build-libs/commons-daemon-1.1.0/commons-daemon-1.1.0.jar
>>
>> downloadgz-2:
>>
>> setproxy:
>>
>> trydownload.check:
>>
>> trydownload:
>>   [get] Getting:
>> https://www.apache.org/dyn/closer.lua?action=download=/commons/daemon/binaries/commons-daemon-1.1.0-bin.tar.gz
>>   [get] To:
>> C:\Users\mosipov\tomcat-build-libs\download-1214738004.tar.gz
>>   [get]
>> https://www.apache.org/dyn/closer.lua?action=download=/commons/daemon/binaries/commons-daemon-1.1.0-bin.tar.gz
>> moved to
>> http://ftp.fau.de/apache//commons/daemon/binaries/commons-daemon-1.1.0-bin.tar.gz
>>
>> BUILD FAILED
>> D:\Entwicklung\Projekte\tomcat-8.5.x\build.xml:2618: The following error
>> occurred while executing this line:
>> D:\Entwicklung\Projekte\tomcat-8.5.x\build.xml:2924: The following error
>> occurred while executing this line:
>> D:\Entwicklung\Projekte\tomcat-8.5.x\build.xml:3040: Redirection detected
>> from https to http. Protocol switch unsafe, not allowed.

See
https://bz.apache.org/bugzilla/show_bug.cgi?id=62164
and
https://lists.apache.org/thread.html/f8b04ca6e28e9a9e0fde895df266bec2fd95027791286ab6665dc49a@%3Cdev.tomcat.apache.org%3E
"Tag Tomcat 7/8.0" thread of 2018-06-28


I think that we have to revert to using HTTP at least for ASF mirror
in Tomcat configuration, as Ant bug has been fixed in 1.9.13/1.10.5



Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[INFRA] Tomcat cannot be built due to back mirrors

2018-07-25 Thread Michael Osipov

Folks,

we need to inquire this with INFRA:

PS D:\Entwicklung\Projekte\tomcat-8.5.x> ant
Buildfile: D:\Entwicklung\Projekte\tomcat-8.5.x\build.xml

download-compile:

testexist:
 [echo] Testing  for 
C:\Users\mosipov/tomcat-build-libs/commons-daemon-1.1.0/commons-daemon-1.1.0.jar

downloadgz-2:

setproxy:

trydownload.check:

trydownload:
  [get] Getting: 
https://www.apache.org/dyn/closer.lua?action=download=/commons/daemon/binaries/commons-daemon-1.1.0-bin.tar.gz
  [get] To: C:\Users\mosipov\tomcat-build-libs\download-1214738004.tar.gz
  [get] 
https://www.apache.org/dyn/closer.lua?action=download=/commons/daemon/binaries/commons-daemon-1.1.0-bin.tar.gz
 moved to 
http://ftp.fau.de/apache//commons/daemon/binaries/commons-daemon-1.1.0-bin.tar.gz

BUILD FAILED
D:\Entwicklung\Projekte\tomcat-8.5.x\build.xml:2618: The following error 
occurred while executing this line:
D:\Entwicklung\Projekte\tomcat-8.5.x\build.xml:2924: The following error 
occurred while executing this line:
D:\Entwicklung\Projekte\tomcat-8.5.x\build.xml:3040: Redirection detected from 
https to http. Protocol switch unsafe, not allowed.



I am on

PS D:\Entwicklung\Projekte\tomcat-8.5.x> ant -version
Apache Ant(TM) version 1.10.5 compiled on July 10 2018


Do we need to have all HTTP mirrors dropped/checked for HTTPS?

Michael

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Duplicate registration of ServletContextListerner

2018-07-25 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Huxing,

On 7/25/18 11:28 AM, Huxing Zhang wrote:
> Hi,
> 
> Recently I am working on implementing a feature that can
> automatically register a ServletContextListerner instance, say A,
> to servletContext programmatically during startup.
> 
> I use ServletContainerInitializer and call the 
> servletContext.addListener() method. This is fine for most of the 
> cases. But if user has specified A in web.xml, it turns that A will
> be registered twice, which will lead to undesired behavior.
> 
> My expected behavior will be registering A only once regardless of 
> user specified A in web.xml or not.
> 
> I can achieve this by specifying A in web-fragment.xml, since it
> will get merged into web.xml whenever A is defined in web.xml or
> not, which means duplicates can be removed.
> 
> I am wondering why we can not achieve this using programatic API.
> 
> I've checked servlet 4.0/3.1 spec, in 4.4.3.1 "void
> addListener(String className)", it says:
> 
> If the class with the given name implements a listener interface
> whose invocation order corresponds to the declaration order, that
> is, if it implements javax.servlet.ServletRequestListener, 
> javax.servlet.ServletContextListener or 
> javax.servlet.http.HttpSessionListener, then the new listener will
> be added to the end of the ordered list of listeners of that
> interface.
> 
> It looks tomcat's behavior is spec-compliant.
> 
> My idea is if I can get all the existing listeners from 
> servletContext, then I can decide whether to add A or not.
> 
> But I can't find that kind of API from servletContext.
> 
> I also noticed that there are getServletRegistrations() and 
> getFilterRegistrations() in servletContext, why can't we have API
> like getListeners()?

Can you think of a use-case where addListener() shouldn't
automatically perform de-duplication? I'm thinking that Tomcat should
simply take a call to addListener() and ignore any registrations after
the first one.

Would that make sense? Would it violate any spec-defined behavior?

- -chris
-BEGIN PGP SIGNATURE-
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAltYyDIACgkQHPApP6U8
pFhSmA//We21JrL+KwpbPrNgicIM0T77/WFMQyNoaFrW0+QdJ96CUAWYr6NKn17t
0Y0mk9WpRDSIsknpXPTYfisO1RllO7Mde1KuGH6EUMZyYWr84E9YhqBVyOHG48if
Y/COneCHK3Gs7QlywgRhyKDZFogDFS/X5zW+AGctFIdcdgBu0z8U85a/wlPLUTuk
XA00qPLrIWSXerB97nsqcdreh7Qs2Uyx3Eye74JE4RwzRYkGVYrMuPpPQwudbAUF
f2fgAHC5lrJBGLK4yiFce53KcwTzeyBM2yskux/1y02NUyHIASpjV8DqADthV61o
SOFgG25PJChShsLQipjhcNQtqiluP4FNo1sN78ieMABfOm1zlIh4T4/4M8VD0MqP
qdoXgqC8vEsCiGUY7rqQKIRTAe6Hpf2yz6Oygwhfk+6z2CpJ4RQfsAFMVJMf2KOM
wjb6akXnrEzxPG6UEVxtep2cLLVraHlbjDHzNqMrecBC2EYHU/Ovh+gpsHXtJG8v
+Koh9HR2Ps5h92PI5ND39JsD1KyNhO+zayYD/a+I9ryrQEKV584JyU6q3vyWIwXk
m8eDlYo0ChCeiGwQ22bAOsdKYTJHruGPEg92VbbDipPLJ+8uzAbtEAlXmiGYkv2B
Q3EtprVkD1sI88v/iRU8QZg7ux5ebKDHGIk1f33BP3AYUWnwcyY=
=jKMW
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 62569] New: Async servlet setReadListener does not work if post request data arrives much later than headers

2018-07-25 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=62569

Bug ID: 62569
   Summary: Async servlet setReadListener does not work if post
request data arrives much later than headers
   Product: Tomcat 9
   Version: 9.0.10
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: Servlet
  Assignee: dev@tomcat.apache.org
  Reporter: zdap...@google.com
  Target Milestone: -

In async mode, servlet sets a ReadListener, and invokes onDataAvailable
callbacks.
If a client first sends out a POST request headers, then 2 seconds later sends
out the payload. The ReadListener callbacks will never be invoked, and the
client never receives a response. Glassfish 5.0 does not have this issue. This
may not be a serious problem for HTTP/1.1 and servlet 3.1, but it is a problem
for HTTP/2 and servlet 4.0 because HTTP/2 is ful-duplex.

See the servlet code snippet in the Java EE tutorial example:
https://javaee.github.io/tutorial/servlets013.html

Client side command:

telnet localhost 8080

POST /asyncioservlet HTTP/1.1
Host: localhost
Content-Type: application/json
Transfer-Encoding: chunked

10
{"key1":"value"}
0

-- 
You are receiving this mail because:
You are the assignee for the bug.
-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Duplicate registration of ServletContextListerner

2018-07-25 Thread Huxing Zhang
Hi,

Recently I am working on implementing a feature that can automatically
register a ServletContextListerner instance, say A, to servletContext
programmatically during startup.

I use ServletContainerInitializer and call the
servletContext.addListener() method. This is fine for most of the
cases. But if user has specified A in web.xml, it turns that A will be
registered twice, which will lead to undesired behavior.

My expected behavior will be registering A only once regardless of
user specified A in web.xml or not.

I can achieve this by specifying A in web-fragment.xml, since it will
get merged into web.xml whenever A is defined in web.xml or not, which
means duplicates can be removed.

I am wondering why we can not achieve this using programatic API.

I've checked servlet 4.0/3.1 spec, in 4.4.3.1 "void addListener(String
className)", it says:

If the class with the given name implements a listener interface whose
invocation order corresponds to the declaration order, that is, if it
implements javax.servlet.ServletRequestListener,
javax.servlet.ServletContextListener or
javax.servlet.http.HttpSessionListener, then the new listener will be
added to the end of the ordered list of listeners of that interface.

It looks tomcat's behavior is spec-compliant.

My idea is if I can get all the existing listeners from
servletContext, then I can decide whether to add A or not.

But I can't find that kind of API from servletContext.

I also noticed that there are getServletRegistrations() and
getFilterRegistrations() in servletContext, why can't we have API like
getListeners()?


-- 
Best Regards!
Huxing

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



buildbot success in on tomcat-trunk

2018-07-25 Thread buildbot
The Buildbot has detected a restored build on builder tomcat-trunk while 
building . Full details are available at:
https://ci.apache.org/builders/tomcat-trunk/builds/3459

Buildbot URL: https://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' 
triggered this build
Build Source Stamp: [branch tomcat/trunk] 1836609
Blamelist: kfujino

Build succeeded!

Sincerely,
 -The Buildbot




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1836609 - in /tomcat/trunk: java/org/apache/catalina/tribes/group/ChannelCoordinator.java webapps/docs/changelog.xml

2018-07-25 Thread kfujino
Author: kfujino
Date: Wed Jul 25 08:09:59 2018
New Revision: 1836609

URL: http://svn.apache.org/viewvc?rev=1836609=rev
Log:
Correct the stop order of the Channel components.
It stops in the reverse order to that at startup.

Modified:
tomcat/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
tomcat/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java?rev=1836609=1836608=1836609=diff
==
--- tomcat/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java 
Wed Jul 25 08:09:59 2018
@@ -221,25 +221,24 @@ public class ChannelCoordinator extends
 if (svc == 0 ) return;//nothing to stop
 
 boolean valid = false;
-if ( Channel.SND_RX_SEQ==(svc & Channel.SND_RX_SEQ) ) {
-clusterReceiver.stop();
-clusterReceiver.setMessageListener(null);
-valid = true;
-}
-if ( Channel.SND_TX_SEQ==(svc & Channel.SND_TX_SEQ) ) {
-clusterSender.stop();
+if ( Channel.MBR_TX_SEQ==(svc & Channel.MBR_TX_SEQ) ) {
+membershipService.stop(MembershipService.MBR_TX);
 valid = true;
 }
-
 if ( Channel.MBR_RX_SEQ==(svc & Channel.MBR_RX_SEQ) ) {
 membershipService.stop(MembershipService.MBR_RX);
 membershipService.setMembershipListener(null);
 valid = true;
 
 }
-if ( Channel.MBR_TX_SEQ==(svc & Channel.MBR_TX_SEQ) ) {
+if ( Channel.SND_TX_SEQ==(svc & Channel.SND_TX_SEQ) ) {
+clusterSender.stop();
+valid = true;
+}
+if ( Channel.SND_RX_SEQ==(svc & Channel.SND_RX_SEQ) ) {
+clusterReceiver.stop();
+clusterReceiver.setMessageListener(null);
 valid = true;
-membershipService.stop(MembershipService.MBR_TX);
 }
 if ( !valid) {
 throw new 
IllegalArgumentException(sm.getString("channelCoordinator.invalid.startLevel"));

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1836609=1836608=1836609=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Jul 25 08:09:59 2018
@@ -132,6 +132,10 @@
 Ensures that the specified rxBufSize is correctly set to
 receiver buffer size. (kfujino)
   
+  
+Correct the stop order of the Channel components. It stops in the
+reverse order to that at startup. (kfujino)
+  
 
   
   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org