Skip to main content

[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
  • From: Mark Thomas <markt@xxxxxxxxxx>
  • Date: Thu, 1 Aug 2019 15:15:00 +0100
  • Autocrypt: addr=markt@xxxxxxxxxx; prefer-encrypt=mutual; keydata= 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
  • Delivered-to: jakartaee-tck-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/jakartaee-tck-dev>
  • List-help: <mailto:jakartaee-tck-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev>, <mailto:jakartaee-tck-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/jakartaee-tck-dev>, <mailto:jakartaee-tck-dev-request@eclipse.org?subject=unsubscribe>
  • Openpgp: preference=signencrypt
  • User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0

Re-sending as I wasn't subscribed to the list.

TL;DR - This looks like a configuration issue with the Server that was
failing the TCK with the corrected test. The server should be using 4
digit years rather than two digit years in the Set-Cookie expires attribute.

For full details, please see the update on the associated Github issue:
https://github.com/eclipse-ee4j/jakartaee-tck/issues/95

Mark


On 09/07/2019 21:54, Bill Shannon 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
> 



Back to the top