Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 92379 invoked from network); 5 Mar 2007 12:23:57 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Mar 2007 12:23:57 -0000 Received: (qmail 21740 invoked by uid 500); 5 Mar 2007 12:24:06 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 21712 invoked by uid 500); 5 Mar 2007 12:24:06 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 21703 invoked by uid 99); 5 Mar 2007 12:24:06 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Mar 2007 04:24:06 -0800 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Mar 2007 04:23:55 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 9EF331A981A; Mon, 5 Mar 2007 04:23:35 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r514656 - /jackrabbit/trunk/contrib/classloader/src/main/java/org/apache/jackrabbit/classloader/ClassLoaderResource.java Date: Mon, 05 Mar 2007 12:23:35 -0000 To: commits@jackrabbit.apache.org From: fmeschbe@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070305122335.9EF331A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: fmeschbe Date: Mon Mar 5 04:23:34 2007 New Revision: 514656 URL: http://svn.apache.org/viewvc?view=rev&rev=514656 Log: Prevent needless log information to be written due to isExpired() call in case the property of the resource has been removed Modified: jackrabbit/trunk/contrib/classloader/src/main/java/org/apache/jackrabbit/classloader/ClassLoaderResource.java Modified: jackrabbit/trunk/contrib/classloader/src/main/java/org/apache/jackrabbit/classloader/ClassLoaderResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/classloader/src/main/java/org/apache/jackrabbit/classloader/ClassLoaderResource.java?view=diff&rev=514656&r1=514655&r2=514656 ============================================================================== --- jackrabbit/trunk/contrib/classloader/src/main/java/org/apache/jackrabbit/classloader/ClassLoaderResource.java (original) +++ jackrabbit/trunk/contrib/classloader/src/main/java/org/apache/jackrabbit/classloader/ClassLoaderResource.java Mon Mar 5 04:23:34 2007 @@ -78,6 +78,14 @@ * the repository. */ private final long loadTime; + + /** + * Flag indicating that this resource has already been checked for expiry + * and whether it is actually expired. + * + * @see #isExpired() + */ + private boolean expired; /** * Creates an instance of this class for the class path entry. @@ -198,6 +206,17 @@ // fallback if no resource property or an error accessing the path of // the property + return getSafePath(); + } + + /** + * Returns the path of the property containing the resource by appending + * the {@link #getName() name} to the path of the class path entry to which + * this resource belongs. This path need not necessairily be the same as + * the {@link #getProperty() path of the property} but will always succeed + * as there is no repository access involved. + */ + protected String getSafePath() { return getClassPathEntry().getPath() + getName(); } @@ -234,10 +253,10 @@ try { in = getInputStream(); - log.debug("getInputStream() returned " + in); + log.debug("getInputStream() returned {}", in); int length = getContentLength(); - log.debug("getContentLength() returned " + String.valueOf(length)); + log.debug("getContentLength() returned {}", new Integer(length)); if (length >= 0) { @@ -328,32 +347,34 @@ * propertiy's last modification time, true is returned. */ public boolean isExpired() { - try { + if (!expired) { // creation time of version if loaded now long currentPropTime = 0; Property prop = getExpiryProperty(); if (prop != null) { - currentPropTime = Util.getLastModificationTime(prop); + try { + currentPropTime = Util.getLastModificationTime(prop); + } catch (RepositoryException re) { + // cannot get last modif time from property, use current time + log.debug("expireResource: Cannot get current version for " + + toString() + ", will expire", re); + currentPropTime = System.currentTimeMillis(); + } } - + // creation time of version currently loaded long loadTime = getLoadTime(); - + // expire if a new version would be loaded - boolean exp = currentPropTime > loadTime; - if (exp && log.isDebugEnabled()) { - log.debug("expireResource: Resource created " + - new Date(loadTime) + " superceded by version created " + - new Date(currentPropTime)); + expired = currentPropTime > loadTime; + if (expired && log.isDebugEnabled()) { + log.debug( + "expireResource: Resource created {} superceded by version created {}", + new Date(loadTime), new Date(currentPropTime)); } - - // return the result of checking - return exp; - } catch (RepositoryException re) { - log.debug("expireResource: Cannot get current version for " + - toString() + ", will expire: " + re); - return true; } + + return expired; } /** @@ -393,7 +414,7 @@ public String toString() { StringBuffer buf = new StringBuffer(getClass().getName()); buf.append(": path="); - buf.append(getPath()); + buf.append(getSafePath()); buf.append(", name="); buf.append(getName()); return buf.toString();