Revision: 2584 http://archive-access.svn.sourceforge.net/archive-access/?rev=2584&view=rev Author: bradtofel Date: 2008-08-25 23:30:34 +0000 (Mon, 25 Aug 2008) Log Message: ----------- BUGFIX(unreported): If self-redirect filters cause all documents to be filtered from results, now throws ResourceNotInArchiveException. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/RemoteResourceIndex.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/RemoteResourceIndex.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/RemoteResourceIndex.java 2008-08-25 23:22:00 UTC (rev 2583) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/RemoteResourceIndex.java 2008-08-25 23:30:34 UTC (rev 2584) @@ -207,7 +207,8 @@ } protected SearchResults documentToSearchResults(Document document, - ObjectFilter<CaptureSearchResult> filter) { + ObjectFilter<CaptureSearchResult> filter) + throws ResourceNotInArchiveException { SearchResults results = null; NodeList filters = getRequestFilters(document); String resultsType = getResultsType(document); @@ -237,9 +238,11 @@ return results; } private CaptureSearchResults documentToCaptureSearchResults( - Document document, ObjectFilter<CaptureSearchResult> filter) { + Document document, ObjectFilter<CaptureSearchResult> filter) + throws ResourceNotInArchiveException { CaptureSearchResults results = new CaptureSearchResults(); NodeList xresults = getSearchResults(document); + int numAdded = 0; for(int i = 0; i < xresults.getLength(); i++) { Node xresult = xresults.item(i); CaptureSearchResult result = searchElementToCaptureSearchResult(xresult); @@ -252,9 +255,14 @@ if (ruling == ObjectFilter.FILTER_ABORT) { break; } else if (ruling == ObjectFilter.FILTER_INCLUDE) { + numAdded++; results.addSearchResult(result, true); } } + if(numAdded == 0) { + throw new ResourceNotInArchiveException("No documents matching" + + " filter"); + } return results; } private UrlSearchResult searchElementToUrlSearchResult(Node e) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |