-----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&amp;data=02%7C01%7CJeff.Lobello%40cerner.com
%7C37f57f209f8d4449bcf508d75b0ed587%7Cfbc493a80d244454a815f4ca58e8c09d%7
C0%7C1%7C637077991639831717&amp;sdata=PIygTHb1ENhnrEL9v8oZYTGMyzUJfwd0GN
Ufz5xMEMM%3D&amp;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

Reply via email to