Jon,

On 6/13/24 14:27, Mcalexander, Jon J. wrote:
Thanks Chuck! Here is the full stack-trace

Jun 11, 2024 3:21:28 PM org.apache.catalina.startup.HostConfig deployDirectory
SEVERE: Error deploying web application directory 
[/prod/app/bankr/ist_bankr_4.0_a/webapps/digitalbranchservices]
java.lang.IllegalStateException: Error starting child
> [blabity blah blah blah]
>
Caused by: java.lang.NoSuchMethodError: 
org.apache.tomcat.util.codec.binary.Base64.decodeBase64([B)[B
                at 
com.wellsfargo.jsk.core.components.AESKeySource.<init>(AESKeySource.java:43)
                at 
com.wellsfargo.jsk.core.components.AESResourceKeySource.init(AESResourceKeySource.java:36)
                at 
com.wellsfargo.jsk.core.components.AESResourceKeySource.<init>(AESResourceKeySource.java:21)
                at 
com.wellsfargo.jsk.core.utils.DecrypterUtil.getValue(DecrypterUtil.java:68)
                at 
com.wellsfargo.jsk.core.utils.DecrypterUtil.getValue(DecrypterUtil.java:62)
                at 
com.wellsfargo.branch.digitalbranchservices.configuration.BaseRepositoryConfiguration.dataSource(BaseRepositoryConfiguration.java:172)
                at 
com.wellsfargo.branch.digitalbranchservices.configuration.BaseRepositoryConfiguration$$EnhancerBySpringCGLIB$$6621bc2f.CGLIB$dataSource$0(<generated>)
                at 
com.wellsfargo.branch.digitalbranchservices.configuration.BaseRepositoryConfiguration$$EnhancerBySpringCGLIB$$6621bc2f$$FastClassBySpringCGLIB$$964773e5.invoke(<generated>)
                at 
org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
                at 
org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
                at 
com.wellsfargo.branch.digitalbranchservices.configuration.BaseRepositoryConfiguration$$EnhancerBySpringCGLIB$$6621bc2f.dataSource(<generated>)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at 
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
                ... 146 more

Here is the commit that removed that code:

https://github.com/apache/tomcat/commit/1a2f722e405ec17c5dab5fac43ae2fe63eb8fbce

Honestly, you should not be using those internal Tomcat APIs because (surprise!) they can change at any time. I would recommend consuming commons-codec directly as a dependency and you won't get surprises like this in the future.

As a quick workaraound, you might be able to grab tomcat-util.jar from 9.0.86 and use that with your 9.0.88 install. It could melt your whole data center though, so be careful.

That's a really impressive stack trace, I have to admit. I'm surprised you didn't get a StackOverflowError while it was being generated.

-chris

From: Chuck Caldarale <n82...@gmail.com>
Sent: Thursday, June 13, 2024 1:13 PM
To: Tomcat Users List <users@tomcat.apache.org>
Subject: Re: Changes between Tomcat 9.0.86 and 9.0.88?

On Jun 13, 2024, at 12: 45, Mcalexander, Jon J. <jonmcalexander@ wellsfargo. com. 
INVALID> wrote: > > I have an application team that started having problems with 
their application when they were updgraded from 9. 0. 86 to 9. 0. 88




On Jun 13, 2024, at 12:45, Mcalexander, Jon J. 
<jonmcalexan...@wellsfargo.com.INVALID<mailto:jonmcalexan...@wellsfargo.com.INVALID>>
 wrote:



I have an application team that started having problems with their application 
when they were updgraded from 9.0.86 to 9.0.88 version of Tomcat. The base 
cause of their stack-trace is:



java.lang.NoSuchMethodError: 
org.apache.tomcat.util.codec.binary.Base64.decodeBase64



Was there a changes to the api since 9.0.86? I know that according to this 
link, base64 is deprecated?



https://urldefense.com/v3/__https://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/tomcat/util/codec/binary/Base64.html__;!!F9svGWnIaVPGSwU!ucNLBYMrFWz_uWnMSNO6HRD_ofh0Q5kzQWdzcCVAF_cKeT7s3MzygchiD4Qwr4Np9soNKsBcEtrC_YA3-ZYDZg$<https://urldefense.com/v3/__https:/tomcat.apache.org/tomcat-9.0-doc/api/org/apache/tomcat/util/codec/binary/Base64.html__;!!F9svGWnIaVPGSwU!ucNLBYMrFWz_uWnMSNO6HRD_ofh0Q5kzQWdzcCVAF_cKeT7s3MzygchiD4Qwr4Np9soNKsBcEtrC_YA3-ZYDZg$>





One of the decodeBase64() methods was removed due to apparent non-use:



     public static byte[] decodeBase64(final byte[] base64Data) {

         return decodeBase64(base64Data, 0, base64Data.length);

     }



Two decodeBase64() methods remain:



     public  static byte[] decodeBase64(

             final byte[] base64Data, final int off, final int len)



     public static byte[] decodeBase64(final String base64String)



Without the full stack trace, it’s not possible to see where the call to the 
removed method comes from, but hopefully you could recode the caller to add the 
offset and length parameters.



   - Chuck














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

Reply via email to