jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: svn commit: r1358746 - in /jmeter/trunk: src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java test/src/org/apache/jmeter/protocol/http/control/TestCacheManager.java xdocs/changes.xml xdocs/usermanual/component_reference.xml
Date Thu, 12 Jul 2012 01:04:15 GMT
Actually, I wasn't right.

Code has now been fixed to treat no-cache as per spec, i.e. it can be
cached, but must be revalidated.

On 8 July 2012 15:57, Philippe Mouawad <philippe.mouawad@gmail.com> wrote:
> You're right , I fixed it.
> Thanks
>
> On Sun, Jul 8, 2012 at 4:35 PM, sebb <sebbaz@gmail.com> wrote:
>
>> On 8 July 2012 15:23,  <pmouawad@apache.org> wrote:
>> > Author: pmouawad
>> > Date: Sun Jul  8 14:23:54 2012
>> > New Revision: 1358746
>> >
>> > URL: http://svn.apache.org/viewvc?rev=1358746&view=rev
>> > Log:
>> > Bug 53522 - Cache Manager should not store at all response with header
>> "no-cache" and store other types of Cache-Control having max-age value
>> > Bugzilla Id: 53522
>> >
>> > Modified:
>> >
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
>> >
>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestCacheManager.java
>> >     jmeter/trunk/xdocs/changes.xml
>> >     jmeter/trunk/xdocs/usermanual/component_reference.xml
>> >
>> > Modified:
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
>> > URL:
>> http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java?rev=1358746&r1=1358745&r2=1358746&view=diff
>> >
>> ==============================================================================
>> > ---
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
>> (original)
>> > +++
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
>> Sun Jul  8 14:23:54 2012
>> > @@ -160,13 +160,17 @@ public class CacheManager extends Config
>> >          Date expiresDate = null; // i.e. not using Expires
>> >          if (useExpires) {// Check that we are processing
>> Expires/CacheControl
>> >              final String MAX_AGE = "max-age=";
>> > -            // TODO - check for other CacheControl attributes?
>> > -            if (cacheControl != null &&
>> (cacheControl.contains("public") || cacheControl.contains("private")) &&
>> cacheControl.contains(MAX_AGE)) {
>> > -                long maxAgeInSecs = Long.parseLong(
>> > -
>>  cacheControl.substring(cacheControl.indexOf(MAX_AGE)+MAX_AGE.length())
>> > -                            .split("[, ]")[0] // Bug 51932 - allow for
>> optional trailing attributes
>> > -                        );
>> > -                expiresDate=new
>> Date(System.currentTimeMillis()+maxAgeInSecs*1000);
>> > +            if(cacheControl != null) {
>> > +                if(cacheControl.contains("no-cache")) {
>> > +                    return;
>> > +                }
>>
>> Surely the check for no-cache should be done regardless of whether
>> useExpires is true?
>>
>> useExpires should only be used to decide whether to use max-age or not.
>>
>> > +                if(cacheControl.contains(MAX_AGE)) {
>> > +                    long maxAgeInSecs = Long.parseLong(
>> > +
>>  cacheControl.substring(cacheControl.indexOf(MAX_AGE)+MAX_AGE.length())
>> > +                                .split("[, ]")[0] // Bug 51932 - allow
>> for optional trailing attributes
>> > +                            );
>> > +                    expiresDate=new
>> Date(System.currentTimeMillis()+maxAgeInSecs*1000);
>> > +                }
>> >              } else if (expires != null) {
>> >                  try {
>> >                      expiresDate = DateUtil.parseDate(expires);
>> >
>> > Modified:
>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestCacheManager.java
>> > URL:
>> http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestCacheManager.java?rev=1358746&r1=1358745&r2=1358746&view=diff
>> >
>> ==============================================================================
>> > ---
>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestCacheManager.java
>> (original)
>> > +++
>> jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestCacheManager.java
>> Sun Jul  8 14:23:54 2012
>> > @@ -258,7 +258,7 @@ public class TestCacheManager extends JM
>> >          assertFalse("Should not find valid
>> entry",this.cacheManager.inCache(url));
>> >          ((HttpMethodStub)httpMethod).cacheControl="no-cache";
>> >          this.cacheManager.saveDetails(httpMethod, sampleResultOK);
>> > -        assertNotNull("Should find
>> entry",getThreadCacheEntry(LOCAL_HOST));
>> > +        assertNull("Should find entry",getThreadCacheEntry(LOCAL_HOST));
>> >          assertFalse("Should not find valid
>> entry",this.cacheManager.inCache(url));
>> >      }
>> >
>> >
>> > Modified: jmeter/trunk/xdocs/changes.xml
>> > URL:
>> http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1358746&r1=1358745&r2=1358746&view=diff
>> >
>> ==============================================================================
>> > --- jmeter/trunk/xdocs/changes.xml (original)
>> > +++ jmeter/trunk/xdocs/changes.xml Sun Jul  8 14:23:54 2012
>> > @@ -70,6 +70,7 @@ in ScriptEngine context, see <bugzilla>5
>> >  <h3>HTTP Samplers and Proxy</h3>
>> >  <ul>
>> >  <li><bugzilla>53521</bugzilla> - Cache Manager should cache
content
>> with Cache-control=private</li>
>> > +<li><bugzilla>53522</bugzilla> - Cache Manager should not
store at all
>> response with header "no-cache" and store other types of Cache-Control
>> having max-age value</li>
>> >  </ul>
>> >
>> >  <h3>Other Samplers</h3>
>> >
>> > Modified: jmeter/trunk/xdocs/usermanual/component_reference.xml
>> > URL:
>> http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=1358746&r1=1358745&r2=1358746&view=diff
>> >
>> ==============================================================================
>> > --- jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
>> > +++ jmeter/trunk/xdocs/usermanual/component_reference.xml Sun Jul  8
>> 14:23:54 2012
>> > @@ -3217,7 +3217,8 @@ and if so, the If-Last-Modified and If-N
>> >  Additionally, if the "Use Cache-Control/Expires header" option is
>> selected, then the Cache-Control/Expires value is checked against the
>> current time.
>> >  If the request is a GET request, and the timestamp is in the future,
>> then the sampler returns immediately,
>> >  without requesting the URL from the remote server. This is intended to
>> emulate browser behaviour.
>> > -Note that the Cache-Control header must be "public" and only the
>> "max-age" expiry option is processed.
>> > +Note that if Cache-Control header is "no-cache", response will not be
>> stored in cache, if Cache-Control has any other value,
>> > +only the "max-age" expiry option is processed to compute entry lifetime.
>> >  </p>
>> >  <p>
>> >  By default, Cache Manager will store up to 5000 items in cache using
>> LRU algorithm. Use property to modify this value.
>> >
>> >
>>
>
>
>
> --
> Cordialement.
> Philippe Mouawad.

Mime
View raw message