-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Jeff,
On 10/28/19 09:31, LoBello,Jeff wrote: > That’s good to hear, you’re example works. In our tag class, which > extends > org.apache.taglibs.standard.tag.common.fmt.FormatDateSupport, we > have setValue() overloaded, as follows… > > > public void setValue(final String value) { > > > > public void setValue(final Object value) { > > Is this a bad practice? How does tomcat decide which one to use. > Why would changing to adoptOpenJdk break this? My guess is that Tomcat is not following some edge-case of the specification, and that when you use the AdoptJDK JVM, the methods from Class.getDeclaredMethod are being returned in a slightly different order, and Tomcat picks a different method. Just a guess. But, it *should* be consistent across JVMs. - -chris > From: Felix Schumacher <felix.schumac...@internetallee.de> > Reply-To: Tomcat Users List <users@tomcat.apache.org> Date: Sunday, > October 27, 2019 at 2:52 PM To: "users@tomcat.apache.org" > <users@tomcat.apache.org> Subject: Re: JSP custom tag operating > different when adoptOpenJDK is used vs Oracle (cross post from > tomcat-taglibs-user) > > I tried to reproduce the bug with the following simple jsp: > > <%@ taglib prefix = "fmt" uri = > "https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjava .sun.com%2Fjsp%2Fjstl%2Ffmt&data=02%7C01%7CJeff.Lobello%40cerner.com %7C37f57f209f8d4449bcf508d75b0ed587%7Cfbc493a80d244454a815f4ca58e8c09d%7 C0%7C1%7C637077991639831717&sdata=PIygTHb1ENhnrEL9v8oZYTGMyzUJfwd0GN Ufz5xMEMM%3D&reserved=0" > %> > > <html> <head> <title>String/Object bug</title> </head> > > <body> <% request.setAttribute("now", new java.util.Date()); %> > <fmt:formatDate pattern="yyyy-MM-dd" value="${now}" /> </body> > </html> > > but both Java versions (oracle 1.8.0_201 and openjdk 1.8.0_222) > produce the following java parts with tomcat 9.0.27: > > ... // /index.jsp(12,6) name = value type = null reqTime = true > required = true fragment = false deferredValue = false > expectedTypeName = null deferredMethod = false methodSignature = > null _jspx_th_fmt_005fformatDate_005f0.setValue((java.util.Date) > org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${now}" , > > java.util.Date.class, (javax.servlet.jsp.PageContext)_jspx_page_context, > null)); ... > > Can you share your tag implementation or even better give us a > minimal webapp that shows the error? > > Is the Tomcat version the same for the different Java > implementations? > > Felix > > Am 27.10.19 um 18:14 schrieb LoBello,Jeff: Sorry for not mentioning > that before, Felix. I’ve seen this bug under Mac & Windows Java > versions. We only support Java 1.8, at the moment. > > > Mac: > > openjdk version "1.8.0_222" > > OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10) > > OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed > mode) > > > > Windows: > > openjdk version "1.8.0_192" > > OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_192-b12) > > OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.192-b12, mixed > mode) > > We’ve also reproduced this issue with multiple Tomcat versions, > including 7, 8 & 9. If we use Oracle Java, the issue is fixed & > doesn’t happen. The bug is very subtle since the JSP does compile, > but the data passed to our tag is a String instead of a Date > object. > > Thanks, > > Jeff LoBello Lead Software Engineer Cerner | > www.cerner.com<http://www.cerner.com/> > > > > From: Felix Schumacher > <felix.schumac...@internetallee.de<mailto:felix.schumacher@internetall ee.de>> > > Reply-To: Tomcat Users List <users@tomcat.apache.org<mailto:users@tomcat.apache.org>> > Date: Saturday, October 26, 2019 at 4:18 PM To: Tomcat Users List > <users@tomcat.apache.org<mailto:users@tomcat.apache.org>> Subject: > Re: JSP custom tag operating different when adoptOpenJDK is used vs > Oracle (cross post from tomcat-taglibs-user) > > > > Am 25. Oktober 2019 19:33:19 MESZ schrieb "LoBello,Jeff" > <jeff.lobe...@cerner.com.INVALID<mailto:jeff.lobe...@cerner.com.INVALI D><mailto:jeff.lobe...@cerner.com.INVALID><mailto:jeff.lobe...@cerner.co m.INVALID%3e>>: > > We have a custom tag, FormatDateTag extends > org.apache.taglibs.standard.tag.common.fmt.FormatDateSupport. > It’s been working ok for a number of years under tomcat & Oracle > JVM. Now, we are moving to adoptOpenJDK & we are seeing some > differences in how tomcat generation of JSP to Java classes happens > when tomcat is doing the EL evaluation. Here is an example JSP > which shows the issue… > > Which Java versions have you used exactly? What os was this? Which > tomcat version have you used? > > Are there any other differences in the setup? > > Felix > > > <%@ page language="java" contentType="text/html" > isELIgnored="false" %> <%@ page import="java.util.Date" %> <%@ > taglib uri="/WEB-INF/tld/suitags.tld" prefix="sui" %> > > <% Date chdt = new Date(); request.setAttribute("chdt", chdt); %> > > <sui:formatDate value="${chdt}" type="date" dateStyle="shortfull" > /> > > Looking at the compiled JSP source code under Oracle JVM, we see > this… > > // /tagUnitTests/sui/formatDate/testCaliHDateTime1.jsp(20,0) name > = value type = java.lang.Object reqTime = true required = true > fragment = false deferredValue = false expectedTypeName = null > deferredMethod = false methodSignature = null > _jspx_th_sui_005fformatDate_005f0.setValue((java.lang.Object) > org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${chdt} ", > > java.lang.Object.class, > (javax.servlet.jsp.PageContext)_jspx_page_context, null)); > > The same source compiled using AdoptOpenJDK, we see this… > > // /tagUnitTests/sui/formatDate/ testCaliHDateTime1.jsp(20,0) name > = value type = java.lang.Object reqTime = true required = true > fragment = false deferredValue = false expectedTypeName = null > deferredMethod = false methodSignature = null > _jspx_th_sui_005fformatDate_005f0.setValue((java.lang.String) > org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${chdt} ", > > java.lang.String.class, > (javax.servlet.jsp.PageContext)_jspx_page_context, null)); > > As a workaround, we’re adding calls to <fmt:parseDate> to convert > the String back to a Date. Has anyone run into this? Any ideas we > can try to find the root cause? > > Thanks, > > Jeff LoBello Lead Software Engineer Cerner | > www.cerner.com<http://www.cerner.com/> > > > > > CONFIDENTIALITY NOTICE This message and any included attachments > are from Cerner Corporation and are intended only for the > addressee. The information contained in this message is > confidential and may constitute inside or non-public information > under international, federal, or state securities laws. > Unauthorized forwarding, printing, copying, distribution, or use of > such information is strictly prohibited and may be unlawful. If you > are not the addressee, please promptly delete this message and > notify the sender of the delivery error by e-mail or you may call > Cerner's corporate offices in Kansas City, Missouri, U.S.A at (+1) > (816)221-1024. > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org<mailto:users-unsubscr...@tomcat.apac he.org><mailto:users-unsubscr...@tomcat.apache.org> > For additional commands, e-mail: > users-h...@tomcat.apache.org<mailto:users-h...@tomcat.apache.org><mail to:users-h...@tomcat.apache.org> > > > > > > CONFIDENTIALITY NOTICE This message and any included attachments > are from Cerner Corporation and are intended only for the > addressee. The information contained in this message is > confidential and may constitute inside or non-public information > under international, federal, or state securities laws. > Unauthorized forwarding, printing, copying, distribution, or use of > such information is strictly prohibited and may be unlawful. If you > are not the addressee, please promptly delete this message and > notify the sender of the delivery error by e-mail or you may call > Cerner's corporate offices in Kansas City, Missouri, U.S.A at (+1) > (816)221-1024. > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org<mailto:users-unsubscr...@tomcat.apac he.org> > For additional commands, e-mail: > users-h...@tomcat.apache.org<mailto:users-h...@tomcat.apache.org> > > -----BEGIN PGP SIGNATURE----- Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl22+F0ACgkQHPApP6U8 pFgo/hAApEhYe2/TKpoNzNp0ZYYVvvAMLKE8n4ZQR0OI1e6b0yKxt+2GBJRTs2vB NaLBCODlL1XwB221LHoogh5uUP08mm2qUzXqQc4aM21xeUNKeABqCMBJxZ58Pinm 0E5kkEOwkB/Sy98ARoV3udMft+9c/v3X/azGQTCAn07mJQTz8ZVO+3ayuNvA8i8s UE8WlPiuATxxmKKUNnh6habME3HPqcKT3MAVgFl/m5kGFVl0n0JvA/Kwu+x8MNhg VrJe36hzbsfGzmy6URU1PEPpPoWnvyHS4NzajKzE0HyCdVNeeDoPvDvxPFITp8HX z1qCeQJmKGZjR0tKJpK9CRcZT6a4sJt3lEIVhgRk+cXIkV7U0mqV5Q7pjGvy6RBj MKoOjfPilqVA+eabH0Ht1aZUYB0bZljJ4ki+/DGHx12v6zigHq9R8sFVxOV5UBCl nRdzXYOKPFcfn1k8Zk6Ffg3OWzLEk3eSMO6N2omXUvIMukrIWuxLjhrjsEWZd8JV PpizYFuQbxYCShFElFcD4NksaU0eJHphTJQK7ISHUNPvLTdCxE8+ObhE848Wm0+b 0WR6XPDcYHCbDgu98eXo/4NE2B6vAfHQcZUvCe3Rs1YcXF8IiJ6BuGI5u5Ec1g7O r5XxqaslBi+yh+3EeOLJeoInrM8KxpYy3b2wSleNrO8Cui2ZXvI= =rOT1 -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org