Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8035144

Expires value in MSK timezone in HTTP Header of response does not get respected by plugin.

    XMLWordPrintable

Details

    • b06

    Backports

      Description

        It is noticed that Expires value in MSK timezone in HTTP Header of response does not get respected by plugin.

        A typical pair of HTTP Header of request and response in MSK timezone (server side) are look like below:
        ===============
        [Request]
        Url: http://127.0.0.1:8080/HTTP_Header_Filter/classes/RunBeforeExpireNoUpdate.jar
        Headers:
        accept-encoding - pack200-gzip, gzip
        content-type - application/x-java-archive
        user-agent - Mozilla/4.0 (Windows 7 6.1) Java/1.8.0-ea
        host - 127.0.0.1:8080
        accept - text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
        connection - keep-alive

        [Response] 200
        ContentLength: 2777
        Headers:
        ETag - W/"2777-1390642986140"
        Expires - Sat, 25 Sep 2055 14:44:18 MSK
        Last-Modified - Sat, 25 Jan 2014 09:43:06 GMT
        Accept-Ranges - bytes
        =====================

        Expired date in very future is sent back, however plugin does not respect this. The net effect is that plugin will try to query the status of the jar again instead of skipping the querying.

        The interesting part is that test executed on China and SCA's machine are both looking good.
        China sent back string look like:
        ===============
        Expires - Sat, 25 Sep 2055 17:39:17 CST
        ===============

        Steps to reproduce:
        1. Download tomcat and then unzip it locally - http://sqeweb.us.oracle.com/net/sqenfs-1/export1/comp/jsn/users/stephen/deployment_stuff/do.NOT.remove.me/bugs/INTJDK-7184947/apache-tomcat-6.0.26.zip.
        2. Change local timezone to MSK ( Europe/Moscow).
        3. Startup the tomcat.
        3. Set security level to Medium, since we will run unsigned code. Switch java console on. Set trace level to all.
        4. In browser, load http://127.0.0.1:8080/HTTP_Header/html/testRunBeforeExpireNoUpdate.html
        5. (You don't need to accept any dialog because whether the applet is working is irrelevant here). Make sure the jar is downloaded by inspecting the trace.
        6. Do NOT clean cache.
        7. Load the link again, if you see the below in trace, then the issue is reproduced:
        ===========
        cache: Resource http://127.0.0.1:8080/HTTP_Header_Filter/classes/RunBeforeExpireNoUpdate.jar has expired.
        network: Connecting http://127.0.0.1:8080/HTTP_Header_Filter/classes/RunBeforeExpireNoUpdate.jar with proxy=DIRECT
        network: Connecting http://127.0.0.1:8080/ with proxy=DIRECT
        network: ResponseCode for http://127.0.0.1:8080/HTTP_Header_Filter/classes/RunBeforeExpireNoUpdate.jar : 304
        ============


        Expired behavior:
        You should see something like below in trace when load the page second time
        ============
        cache: Resource http://127.0.0.1:8080/HTTP_Header_Filter/classes/RunBeforeExpireNoUpdate.jar has future expires: Mon Oct 18 22:55:02 CST 2055 update check skipped.
        ============
        Which means the "Expires" value is respected by plugin.

        Note: no such issue when the server side time zone is changed to Biejing or SCA time. You could try to do so by change you local time zone. But remember to shutdown tomcat first before the change, then startup tomcat after the change.

        Attachments

          1. 1run.log
            5 kB
          2. 2run.log
            1 kB

          Issue Links

            Activity

              People

                stayer Kirill Kirichenko (Inactive)
                stephenh Stephen Hu (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: