Author: olamy
Date: Fri Oct 14 16:32:45 2011
New Revision: 1183413

URL: http://svn.apache.org/viewvc?rev=1183413&view=rev
Log:
if searching with SearchFields with unknown repo ids do not revert to a search 
on all index.

Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/archiva/indexer/search/NexusRepositorySearchTest.java

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java?rev=1183413&r1=1183412&r2=1183413&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
 Fri Oct 14 16:32:45 2011
@@ -141,6 +141,13 @@ public class NexusRepositorySearch
 
         List<String> indexingContextIds = 
addIndexingContexts(searchFields.getRepositories());
 
+        // if no index found in the specified one return an empty search 
result instead of doing a search on all index
+        // olamy: IMHO doesn't make sense
+        if (indexingContextIds == null || indexingContextIds.isEmpty() )
+        {
+            return new SearchResults();
+        }
+
         BooleanQuery q = new BooleanQuery();
         if ( StringUtils.isNotBlank(searchFields.getGroupId()) )
         {

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/archiva/indexer/search/NexusRepositorySearchTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/archiva/indexer/search/NexusRepositorySearchTest.java?rev=1183413&r1=1183412&r2=1183413&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/archiva/indexer/search/NexusRepositorySearchTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/archiva/indexer/search/NexusRepositorySearchTest.java
 Fri Oct 14 16:32:45 2011
@@ -827,4 +827,28 @@ public class NexusRepositorySearchTest
         assertTrue( groupIds.contains( "org.apache.felix") );
         assertTrue( groupIds.contains( "org.apache.archiva" ) );
     }
+
+    @Test
+    public void testSearchWithUnknownRepo()
+        throws Exception
+    {
+        createIndexContainingMoreArtifacts( true );
+
+        List<String> selectedRepos = Arrays.asList( "foo" );
+
+        SearchFields searchFields = new SearchFields();
+        searchFields.setClassName( "SomeClass" );
+        searchFields.setRepositories( selectedRepos );
+
+        archivaConfigControl.expectAndReturn( 
archivaConfig.getConfiguration(), config , 1 , 2 );
+
+        archivaConfigControl.replay();
+
+        SearchResults results = search.search( "user", searchFields, null );
+
+        archivaConfigControl.verify();
+
+        assertNotNull( results );
+        assertEquals( 0, results.getHits().size() );
+    }
 }


Reply via email to