[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [jakartaee-tck-dev] Incorrect parsing of expiry date in servlet/api/javax_servlet_http/cookie#setMaxAgePositiveTest
|
Hank,I created an issue
for tracking... https://github.com/eclipse-ee4j/jakartaee-tck/issues/95If you know what
needs to be backed out, maybe you can suggest a PR? Thanks!
---------------------------------------------------
Kevin Sutter
STSM, MicroProfile and Jakarta EE architect
e-mail: sutter@xxxxxxxxxx Twitter: @kwsutter
phone: tl-553-3620 (office), 507-253-3620 (office)
LinkedIn: https://www.linkedin.com/in/kevinwsutterFrom:
Hank
Ibell <hwibell@xxxxxxxxx>To:
jakartaee-tck
developer discussions <jakartaee-tck-dev@xxxxxxxxxxx>Cc:
Kevin
Sutter <sutter@xxxxxxxxxx>, Mark Thomas <markt@xxxxxxxxxx>Date:
07/31/2019
12:57 PMSubject:
[EXTERNAL]
Re: [jakartaee-tck-dev] Incorrect parsing of expiry date in servlet/api/javax_servlet_http/cookie#setMaxAgePositiveTest
Hello again,Thanks for the feedback Bill and Kevin.
Is there any update on if the change will be reverted or not?Regards,Hank IbellOn Tue, Jul 9, 2019 at 5:01 PM Bill Shannon
<bill.shannon@xxxxxxxxxx>
wrote:This was intended to be a bug fix that
locked down the behavior to that of the en_US locale so that servers weren't
forced to run in that locale when testing. Apparently the fix is
incomplete. At this point it's probably best to back out that fix
and live with the restriction.
Whether such a fix should've even been considered for Jakarta EE 8 is a
good question...
Kevin Sutter wrote on 7/9/19 1:39 PM:Hmmm...
Am I reading this wrong? It sounds like some testcases changed after
Java EE 8 TCK was contributed to Jakarta EE 8?
https://github.com/eclipse-ee4j/jakartaee-tck/commit/5d63739aa87016a4bb35516039ac7e83b30298a9#diff-fe27b4530bdef6baa5447c990d9f786f
I can fully understand some changes required for the test harness or infrastructure
to get everything running in the Eclipse environment. But, we shouldn't
have changed any testcases. Not yet anyway... All app servers
that were Java EE 8 certified should be able to run the Jakarta EE 8 TCK
without any coding changes. If we're allowing code changes to the
actual testcases, that promise goes out the window. Can someone clarify?
Thanks!
---------------------------------------------------
Kevin Sutter
STSM, MicroProfile and Jakarta EE architect
e-mail: sutter@xxxxxxxxxx Twitter: @kwsutter
phone: tl-553-3620 (office), 507-253-3620 (office)
LinkedIn: https://www.linkedin.com/in/kevinwsutter
From: Hank
Ibell <hwibell@xxxxxxxxx>
To: jakartaee-tck-dev@xxxxxxxxxxx
Date: 07/08/2019
09:55 AM
Subject: [EXTERNAL]
[jakartaee-tck-dev] Incorrect parsing of expiry date in
servlet/api/javax_servlet_http/cookie#setMaxAgePositiveTest
Sent by: jakartaee-tck-dev-bounces@xxxxxxxxxxx
Hello all,
When trying to run the servlet test `com.sun.ts.tests.servlet.api.javax_servlet_http.cookie.setMaxAgePositiveTest()`,
I am seeing what looks to be a weird parsing error: The expiry date was
incorrect, expected =Mon Jul 08 09:21:00 EDT 2019, result = Sat Jul 08
08:21:00 EST 19. The dates appear to be the same but the days are different.
Trace showing request and response:
```
[javatest.batch] 07-08-2019 09:21:40: [HttpRequest] Dispatching request:
'GET /servlet_jsh_cookie_web/TestServlet?testname=setMaxAgeVer0PositiveTest
HTTP/1.1' to target server at 'localhost:9080'
[javatest.batch] 07-08-2019 09:21:40: TRACE: ########## The real
value set: false
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - >> "GET
/servlet_jsh_cookie_web/TestServlet?testname=setMaxAgeVer0PositiveTest
HTTP/1.1[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - >> "User-Agent:
Jakarta Commons-HttpClient/3.1[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - >> "Host:
localhost:9080[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - >> "[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "HTTP/1.1
200 OK[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "HTTP/1.1
200 OK[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "X-Powered-By:
Servlet/4.0[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "Content-Type:
text/plain;charset=ISO-8859-1[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "testDate:
2019-07-08 13:21[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "Content-Language:
en-US[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "Set-Cookie:
name1=value1; Expires=Mon, 08-Jul-19 13:21:42 GMT[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "Transfer-Encoding:
chunked[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "Date:
Mon, 08 Jul 2019 13:21:40 GMT[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "Expires:
Thu, 01 Dec 1994 16:00:00 GMT[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "Cache-Control:
no-cache="set-cookie, set-cookie2"[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: Found 1 set-cookie entry
[javatest.batch] 07-08-2019 09:21:40: TRACE: Checking set-cookiei
0:Set-Cookie: name1=value1; Expires=Mon, 08-Jul-19 13:21:42 GMT
[javatest.batch]
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "c"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\r]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "Test
PASSED[\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\r]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "0"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\r]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\r]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - << "[\r][\n]"
[javatest.batch] 07-08-2019 09:21:40: TRACE: [WIRE] - HttpConnectionManager
is null. Connection cannot be released.
[javatest.batch] 07-08-2019 09:21:40: ERROR: The expiry date was
incorrect, expected =Mon Jul 08 09:21:00 EDT 2019, result = Sat Jul 08
08:21:00 EST 19
[javatest.batch] 07-08-2019 09:21:40: ERROR: Exception occurred:
com.sun.ts.lib.harness.EETest$Fault: The expiry date was incorrect, expected
=Mon Jul 08 09:21:00 EDT 2019, result = Sat Jul 08 08:21:00 EST 19
[javatest.batch] 07-08-2019 09:21:40: ERROR: Test case throws exception:
Exception occurred: com.sun.ts.lib.harness.EETest$Fault: The expiry date
was incorrect, expected =Mon Jul 08 09:21:00 EDT 2019, result = Sat Jul
08 08:21:00 EST 19
[javatest.batch] 07-08-2019 09:21:40: ERROR: Exception at:
[javatest.batch] 07-08-2019 09:21:40: ERROR: com.sun.ts.lib.harness.EETest$Fault:
Exception occurred: com.sun.ts.lib.harness.EETest$Fault: The expiry date
was incorrect, expected =Mon Jul 08 09:21:00 EDT 2019, result = Sat Jul
08 08:21:00 EST 19
[javatest.batch] at com.sun.ts.tests.servlet.api.javax_servlet_http.cookie.URLClient.setMaxAgePositiveTest(URLClient.java:368)
```
The test used to pass under EE8 and is failing with the Jakarta TCK; it
looks like this may be due to changes introduced with 5d63739:
https://github.com/eclipse-ee4j/jakartaee-tck/commit/5d63739aa87016a4bb35516039ac7e83b30298a9#diff-fe27b4530bdef6baa5447c990d9f786f
I rebuilt the test after removing the date format `CUSTOM_HEADER_DATE_FORMAT`
and the test passes again. I then tried changing the date format for testDate
to match the Netscape format for expiry date of Set-Cookie and it also
passes.
```
diff --git a/src/com/sun/ts/tests/servlet/api/javax_servlet_http/cookie/TestServlet.javab/src/com/sun/ts/tests/servlet/api/javax_servlet_http/cookie/TestServlet.java
index db94afa1..4fa54f5f 100644
--- a/src/com/sun/ts/tests/servlet/api/javax_servlet_http/cookie/TestServlet.java
+++ b/src/com/sun/ts/tests/servlet/api/javax_servlet_http/cookie/TestServlet.java
@@ -72,7 +72,7 @@ import java.util.TimeZone;
public class TestServlet extends HttpTCKServlet {
- public static String CUSTOM_HEADER_DATE_FORMAT = "yyyy-MM-dd
HH:mm";
+ public static String CUSTOM_HEADER_DATE_FORMAT = "E, dd-MM-yy
HH:mm:ss";
public void cloneTest(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
```
Note: Our server, by default, uses the latest RFC-compliant date format,
but HttpClient did not like it so we had to configure it to use the Netscape
cookie expiry format.
```
[javatest.batch] 07-08-2019 10:14:43: TRACE: [WIRE] - << "testDate:
Mon, 07-08-19 14:14:43[\r][\n]"
[javatest.batch] 07-08-2019 10:14:43: TRACE: [WIRE] - << "Set-Cookie:
name1=value1; Expires=Mon, 08 Jul 2019 14:14:45 GMT[\r][\n]"
...
[javatest.batch] 07-08-2019 10:14:43: ERROR: com.sun.ts.lib.harness.EETest$Fault:
Exception occurred:org.apache.commons.httpclient.cookie.MalformedCookieException:
Invalid expires attribute: Unparseable date: "Mon, 08 Jul 2019 14:14:45
GMT"
[javatest.batch] at com.sun.ts.tests.servlet.api.javax_servlet_http.cookie.URLClient.setMaxAgePositiveTest(URLClient.java:352)
```
Does this look to be a test issue? Any thoughts on the matter would be
appreciated. Thanks!
Regards,
Hank Ibell_______________________________________________
jakartaee-tck-dev mailing list
jakartaee-tck-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev
_______________________________________________
jakartaee-tck-dev mailing list
jakartaee-tck-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev
_______________________________________________
jakartaee-tck-dev mailing list
jakartaee-tck-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev