Bug 95326 [code manipulation] Class wizard produces junk
Env: 3.1M7 Sometimes the class wizard produces junk when generating a new class skeleton (seems that constructors are placed inside the import statements). With the following example, the bug can always reproduced: 0) no enclosing type 1) Create a new Class: JxX509TrustManager 2) Modifiers: public only 3) SuperClass: java.lang.Object 4) Interfaces: javax.net.ssl.X509TrustManager 5) Stubs: constructor, abstract methods 6) Generate comments: no 7) Finish produces: <pre> package bla.bla; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import j public JxX509TrustManager() { super(); // @todo Auto-generated constructor stub }avax.net.ssl.X509TrustManager; public class JxX509TrustManager implements X509TrustManager { public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { // @todo Auto-generated method stub } public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { // @todo Auto-generated method stub } public X509Certificate[] getAcceptedIssuers() { // @todo Auto-generated method stub return null; } } </pre>
org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewTypeWizardPage.java
createImports(imports, operation.getCreatedImports());
			}
		}
		JavaModelUtil.reconcile(cu);
		typeMethods= type.getMethods();
		for (int index= 0; index < typeMethods.length; index++)
			if (!handleIds.contains(typeMethods[index].getHandleIdentifier()))
				newMethods.add(typeMethods[index]);
		IMethod[] methods= new IMethod[newMethods.size()];
		newMethods.toArray(methods);
		return methods;
	}
	private void createImports(ImportsManager imports, String[] createdImports) {
		for (int index= 0; index < createdImports.length; index++)
			imports.addImport(createdImports[index]);
	}
	private String[] createBindingKeys(IBinding[] bindings) {
		String[] keys= new String[bindings.length];
		for (int index= 0; index < bindings.length; index++)
			keys[index]= bindings[index].getKey();
		return keys;
	}
	/**
	 * @deprecated Use createInheritedMethods(IType,boolean,boolean,IImportsManager,IProgressMonitor)
	 */
	protected IMethod[] createInheritedMethods(IType type, boolean doConstructors, boolean doUnimplementedMethods, IImportsStructure imports, IProgressMonitor monitor) throws CoreException {
		return createInheritedMethods(type, doConstructors, doUnimplementedMethods, new ImportsManager(imports), monitor);
	}