-----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 <[email protected]>
> Reply-To: Tomcat Users List <[email protected]> Date: Sunday,
> October 27, 2019 at 2:52 PM To: "[email protected]"
> <[email protected]> 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
> <[email protected]<mailto:felix.schumacher@internetall
ee.de>>
>
>
Reply-To: Tomcat Users List
<[email protected]<mailto:[email protected]>>
> Date: Saturday, October 26, 2019 at 4:18 PM To: Tomcat Users List
> <[email protected]<mailto:[email protected]>> 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"
> <[email protected]<mailto:[email protected]
D><mailto:[email protected]><mailto:[email protected]
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:
[email protected]<mailto:[email protected]
he.org><mailto:[email protected]>
> For additional commands, e-mail:
> [email protected]<mailto:[email protected]><mail
to:[email protected]>
>
>
>
>
>
> 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:
[email protected]<mailto:[email protected]
he.org>
> For additional commands, e-mail:
> [email protected]<mailto:[email protected]>
>
>
-----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: [email protected]
For additional commands, e-mail: [email protected]