Hi all,
I don't know if I should be postting the the dev list but let's try from
here.

I'm trying to understand how the etag are being applying to the static
resources. My problem is that I would like to get rid of the week etags,
that tomcat is applying. After a little bit of searching I ended up to the
org.apache.naming.resources.ResourceAttributes class where I found the
getETag(boolean strong) method. It's a very small method but I didn't
understand a small thing. Well the method is the above:


    public String getETag(boolean strong) {
        String result = null;
        if (attributes != null) {
            Attribute attribute = attributes.get(ETAG);
            if (attribute != null) {
                try {
                    result = attribute.get().toString();
                } catch (NamingException e) {
                    ; // No value for the attribute
                }
            }
        }
        if (strong) {
            // The strong ETag must always be calculated by the resources
            result = strongETag;
        } else {
            // The weakETag is contentLenght + lastModified
            if (weakETag == null) {
                weakETag = "W/\"" + getContentLength() + "-"
                    + getLastModified() + "\"";
            }
            result = weakETag;
        }
        return result;
    }


And my question is what the first if condition stand's for. Even if we'll
get an etag value (result = attribute.get().toString();), exatly after the
first if block, we get if / else blocks witch results to overriding the
previous result value to a strongETag or a weekETag!

What made me trying to find what is going on is that I always get week etags
for my static resources, witch is something I whould like to overcome as
some browsers doesn't handle them really well.

Thank you!

Reply via email to