https://bz.apache.org/bugzilla/show_bug.cgi?id=57129

--- Comment #50 from Philippe Cloutier <chea...@gmail.com> ---
Thank you very much for reporting Jörgen and all those who commented
constructively


My employer is one of those organizations which lost hours due to variability
in loading order. For those who are still struggling to understand the behavior
they are experiencing, this not only causes specific WAR files to change
behavior on different Tomcat versions, but it also causes the same Tomcat
version (8+) to treat 2 WAR files with the same archived contents differently.
Indeed, 2 WAR files which extract to identical file sets can still be binarily
different by having their files at different offsets.

Typically, with Maven, if a project depends on 3 libraries and pom.xml lists B
before A and finally C, the WAR file can contain b.jar before a.jar and finally
c.jar. But it can also be alphabetical (a.jar, b.jar, c.jar). I've verified
that the same Maven version (3.8.6) building identical code, when invoked in
equivalent ways, can result in such binarily different WAR-s, which - in our
case - therefore behave differently under Tomcat 8.5 on Red Hat Enterprise
Linux 7. Red Hat Enterprise Linux 7's readdir visibly returns in creation
order. My best guess is Maven packages .jar files in alphabetical order on
Microsoft Windows, while it uses Maven's Resolved Dependencies order when
packaging on Red Hat Enterprise Linux.

If so, this effectively means that moving builds from Windows to GNU/Linux
could suffice to cause regressions. I do not know how to avoid that besides
ensuring that the WAR-s do not contain classes with identical fully qualified
names.

-- 
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

Reply via email to