Error when starting up TomEE Plus 9.1.2

COURTAULT Francois <[email protected]> Fri, 16 Feb 2024 16:54:19 +0000
Newsgroups gmane.comp.java.openejb.user
Message-ID <MR1P264MB23557978C3D907DE33BDFC8C9D4C2__43144.6720192739$1708102864$gmane$org@MR1P264MB2355.FRAP264.PROD.OUTLOOK.COM>
THALES GROUP LIMITED DISTRIBUTION to email recipients

Hello everyone,

A person who has left the company add this line in the catalina.properties file:
org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource

Reading at Tomcat 8.5 doc, I found this
org.apache.tomcat.util.digester.PROPERTY_SOURCE : Set this to a comma separated list of fully qualified name of classes that implement org.apache.tomcat.util.IntrospectionUtils.PropertySource.
Required to have a public constructor with no arguments.

Possible value: org.apache.tomcat.util.digester.EnvironmentPropertySource and not org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource
as the person set it.

org.apache.tomcat.util.digester.EnvironmentPropertySource can be used to replace parameters from the process' environment variables, e.g. injected ConfigMaps or Secret objects in container based systems like OpenShift or Kubernetes.

Do you think that this person has made a mistake?

The funny thing is that with TomEE Plus 8.0.16, the last sections of catalina.properties looks like below
# String cache configuration.
tomcat.util.buf.StringCache.byte.enabled=true
#tomcat.util.buf.StringCache.char.enabled=true
#tomcat.util.buf.StringCache.trainThreshold=500000
#tomcat.util.buf.StringCache.cacheSize=5000

# Disable use of some privilege blocks Tomcat doesn't need since calls to the
# code in question are always already inside a privilege block
org.apache.el.GET_CLASSLOADER_USE_PRIVILEGED=false
org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource
and I got no error 😊

With TomEEFull 9.1.2, the last section looks like below:
# String cache configuration.
tomcat.util.buf.StringCache.byte.enabled=true
#tomcat.util.buf.StringCache.char.enabled=true
#tomcat.util.buf.StringCache.trainThreshold=500000
#tomcat.util.buf.StringCache.cacheSize=5000
org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource

This time I got some errors like

  *   16-Feb-2024 08:35:34.848 SEVERE [main] jdk.internal.reflect.NativeMethodAccessorImpl.invoke Error loading property source [org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource]
java.lang.ClassNotFoundException: org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource

I don’t understand why I got no error with TomEE Plus 8.0.16 because in each case the class org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource
doesn’t exist. I was not able to find it (it should be in the tomcat-util-scan.jar).

So my guess is that this guy did a mistake by setting the property org.apache.tomcat.util.digester.PROPERTY_SOURCE to org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource
instead of org.apache.tomcat.util.digester.EnvironmentPropertySource.
Do you agree ?

Best Regards.