Bug 17576 JavaSearchPage.SearchPatternData must be a static class
F1 it's a non static class now, which leads to leaks: the static variable (!always a leak danger!) in JavaSearchPage contains a list of previous patterns, each holding an instance of JavaSearchPage (exactly because SearchPatternData is not static) static fields of type List + non static nested classes = trouble
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchPage.java
boolean		isCaseSensitive;
		IJavaElement	javaElement;
		int			scope;
		IWorkingSet[]	 	workingSets;
		
		public SearchPatternData(int s, int l, String p, IJavaElement element) {
			this(s, l, p, fIsCaseSensitive || element != null, element, ISearchPageContainer.WORKSPACE_SCOPE, null);
		}
		
		public SearchPatternData(int s, int l, String p, boolean i, IJavaElement element, int scope, IWorkingSet[] workingSets) {
			searchFor= s;
			limitTo= l;
			pattern= p;
			isCaseSensitive= i;
			javaElement= element;
			this.scope= scope;
			this.workingSets= workingSets;
		}
	}
	
	
	public boolean performAction() {
		SearchUI.activateSearchResultView();
		SearchPatternData data= getPatternData();
		IWorkspace workspace= JavaPlugin.getWorkspace();
		
		IJavaSearchScope scope= null;
		String scopeDescription= ""; 
		switch (getContainer().getSelectedScope()) {
			case ISearchPageContainer.WORKSPACE_SCOPE: