Bug 64021

Summary: SCI ordering prevents a web application SCI from using a service bootstrapped by a container-provided SCI
Product: Tomcat 9 Reporter: Andy Wilkinson <andy.wilkinson>
Component: CatalinaAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 9.0.31   
Target Milestone: -----   
Hardware: PC   
OS: All   
URL: https://bz.apache.org/bugzilla/show_bug.cgi?id=64021

Description Andy Wilkinson 2019-12-19 14:59:51 UTC
This issue relates to a Spring Framework issue [1] that describes a problem where Spring Framework's ServletContainerInitializer is unable to find Tomcat's WebSocket support as the latter is initialised by Tomcat's WsSci which runs after any application SCIs.

From a comment by Mark Thomas on the Spring Framework issue:

> I've been reading through 8.2.4 again and I think there is some room for
> manoeuvre here. The delegation order matters when both the web application
> and the container specify the same SCI. It must be the one from the web 
> application that is used. However, when we are looking at different SCIs I
> think there is scope to load the container provided SCIs first. I don't
> think  the spec language precludes that. The more I think about it, the
> more that makes sense. If the web app depends on the container services
> (like Spring does) then the container services need to be loaded first. If 
> the web app doesn't depend on them the order doesn't matter (so it is OK 
> for container services to be first).

> If you open a Tomcat bug on this I should be able to take a look -
> probably in January now.

[1] https://github.com/spring-projects/spring-framework/issues/22131
Comment 1 Mark Thomas 2020-01-16 14:28:26 UTC
Fixed in:
- master for 10.0.0.0-M1 onwards
- 9.0.x for 9.0.31 onwards
- 8.5.x for 8.5.51 onwards
- 7.0.x for 7.0.100 onwards
Comment 2 Andy Wilkinson 2020-01-16 14:37:57 UTC
Thanks very much, Mark.
Comment 3 zhanderong@huawei.com 2020-03-19 04:52:03 UTC
Webapp can not be loaded by tomcat-7.0.100, the reason can refer to the comment of this commit
'https://github.com/apache/tomcat/commit/fe905a43bf935cb293db462915a17ad87c303438?diff=split'. please check it, thanks.
Comment 4 mgrigorov 2020-03-19 07:37:03 UTC
There is a known problem with SCI in 7.0.100
7.0.103 is being voted at the moment. You could test it from https://dist.apache.org/repos/dist/dev/tomcat/tomcat-7/v7.0.103/bin/
Comment 5 zhanderong@huawei.com 2020-03-19 08:17:56 UTC
(In reply to mgrigorov from comment #4)
> There is a known problem with SCI in 7.0.100
> 7.0.103 is being voted at the moment. You could test it from
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-7/v7.0.103/bin/

Thanks, 7.0.103 is ok now.
Comment 6 Remy Maucherat 2020-03-19 08:20:37 UTC
Please do not reopen this BZ.