From: <ikr...@us...> - 2011-11-29 03:45:16
|
Revision: 3572 http://archive-access.svn.sourceforge.net/archive-access/?rev=3572&view=rev Author: ikreymer Date: 2011-11-29 03:45:09 +0000 (Tue, 29 Nov 2011) Log Message: ----------- AccessPoint: Added a null for getRealPath() return value when checking static resources, as some servlet containers (ex. some versions of jetty) may return null for the path, however a redirect to the local resource may still return the resource. LocalResourceIndex: Changed order of filter groups so that AccessPointFilterGroup is first. This is needed so that the FilePrefixFilter check is performed before the WARCRevisit filter to ensure that only records with correct prefix are saved for revisit. Solves an issue where a revisit record was pointing to the latter warc result, but one that was from the wrong file prefix Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/LocalResourceIndex.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/LocalResourceIndex.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/LocalResourceIndex.java 2011-11-19 00:57:07 UTC (rev 3571) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/LocalResourceIndex.java 2011-11-29 03:45:09 UTC (rev 3572) @@ -117,9 +117,9 @@ public LocalResourceIndex() { canonicalizer = new AggressiveUrlCanonicalizer(); fgFactories = new ArrayList<FilterGroupFactory>(); + fgFactories.add(new AccessPointCaptureFilterGroupFactory()); fgFactories.add(new CoreCaptureFilterGroupFactory()); fgFactories.add(new QueryCaptureFilterGroupFactory()); - fgFactories.add(new AccessPointCaptureFilterGroupFactory()); fgFactories.add(new ExclusionCaptureFilterGroupFactory()); fgFactories.add(new ClosestTrackingCaptureFilterGroupFactory()); } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java 2011-11-19 00:57:07 UTC (rev 3571) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java 2011-11-29 03:45:09 UTC (rev 3572) @@ -151,23 +151,29 @@ String translatedNoQuery = "/" + translateRequestPath(httpRequest); // String absPath = getServletContext().getRealPath(contextRelativePath); String absPath = getServletContext().getRealPath(translatedNoQuery); - File test = new File(absPath); - if(test.exists()) { - - String translatedQ = "/" + translateRequestPathQuery(httpRequest); - - WaybackRequest wbRequest = new WaybackRequest(); -// wbRequest.setContextPrefix(getUrlRoot()); - wbRequest.setAccessPoint(this); - wbRequest.fixup(httpRequest); - UIResults uiResults = new UIResults(wbRequest,uriConverter); - try { - uiResults.forward(httpRequest, httpResponse, translatedQ); - return true; - } catch(IOException e) { - // TODO: figure out if we got IO because of a missing dispatcher + + //IK: added null check for absPath, it may be null (ex. on jetty) + if (absPath != null) { + File test = new File(absPath); + if((test != null) && !test.exists()) { + return false; } } + + String translatedQ = "/" + translateRequestPathQuery(httpRequest); + + WaybackRequest wbRequest = new WaybackRequest(); +// wbRequest.setContextPrefix(getUrlRoot()); + wbRequest.setAccessPoint(this); + wbRequest.fixup(httpRequest); + UIResults uiResults = new UIResults(wbRequest,uriConverter); + try { + uiResults.forward(httpRequest, httpResponse, translatedQ); + return true; + } catch(IOException e) { + // TODO: figure out if we got IO because of a missing dispatcher + } + return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |