View | Details | Raw Unified | Return to bug 156340
Collapse All | Expand All

(-)src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java (+34 lines)
Lines 6795-6798 Link Here
6795
		removeLibraryEntry(JAVA_PROJECT, new Path("/JavaSearchBugs/lib/b148215.jar"));
6830
		removeLibraryEntry(JAVA_PROJECT, new Path("/JavaSearchBugs/lib/b148215.jar"));
6796
	}
6831
	}
6797
}
6832
}
6833
6834
/**
6835
 * Bug 156340: [search] searchAllTypeNames return nothing for empty prefix
6836
 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=156340"
6837
 */
6838
public void testBug156340() throws CoreException {
6839
	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
6840
	IPackageFragment fragment = getPackageFragment("JavaSearchBugs", getExternalJCLPathString(), "java.lang");
6841
	IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { fragment });
6842
	new SearchEngine().searchAllTypeNames(
6843
	   null,
6844
		SearchPattern.R_EXACT_MATCH,
6845
		CharOperation.NO_CHAR,
6846
		SearchPattern.R_PREFIX_MATCH,
6847
		IJavaSearchConstants.TYPE,
6848
		scope,
6849
		requestor,
6850
		WAIT_UNTIL_READY_TO_SEARCH,
6851
		null
6852
   );
6853
	assertSearchResults(
6854
		"Unexpected all type names",
6855
		"java.lang.Class\n" + 
6856
		"java.lang.CloneNotSupportedException\n" + 
6857
		"java.lang.Error\n" + 
6858
		"java.lang.Exception\n" + 
6859
		"java.lang.IllegalMonitorStateException\n" + 
6860
		"java.lang.InterruptedException\n" + 
6861
		"java.lang.Object\n" + 
6862
		"java.lang.RuntimeException\n" + 
6863
		"java.lang.String\n" + 
6864
		"java.lang.Throwable",
6865
		requestor);
6866
}
6798
}
6867
}
(-)search/org/eclipse/jdt/internal/core/search/BasicSearchEngine.java (-11 lines)
Lines 642-658 Link Here
642
			Util.verbose("	- scope: "+scope); //$NON-NLS-1$
642
			Util.verbose("	- scope: "+scope); //$NON-NLS-1$
643
		}
643
		}
644
644
645
		// Return on invalid combination of package and type names
646
		if (packageName == null || packageName.length == 0) {
647
			if (typeName != null && typeName.length == 0) {
648
				// TODO (frederic) Throw a JME instead?
649
				if (VERBOSE) {
650
					Util.verbose("	=> return no result due to invalid empty values for package and type names!"); //$NON-NLS-1$
651
				}
652
				return;
653
			}
654
		}
655
656
		// Create pattern
645
		// Create pattern
657
		IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
646
		IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
658
		final char typeSuffix;
647
		final char typeSuffix;

Return to bug 156340