Bug 24920 quick fix: fooled by additional dimentions in method declarations [quick fix]
public class DD { private int DD()[]{ }; } add return statement - it puts retrun 0 instead of return null
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ModifierCorrectionSubProcessor.java
ASTNode parentType= ASTResolving.findParentType(decl);
		boolean parentIsAbstract= (parentType instanceof TypeDeclaration) && Modifier.isAbstract(((TypeDeclaration) parentType).getModifiers());
		
		int endPos= decl.getStartPosition() + decl.getLength() - 1;
		IBuffer buffer= cu.getBuffer();
		boolean hasNoBody= buffer.getLength() > endPos && buffer.getChar(endPos) == ';';
		
		if (context.getProblemId() == IProblem.AbstractMethodInAbstractClass || parentIsAbstract) {
			ASTRewrite rewrite= new ASTRewrite(decl.getParent());
			
			AST ast= astRoot.getAST();
			MethodDeclaration modifiedNode= ast.newMethodDeclaration();
			modifiedNode.setConstructor(decl.isConstructor());
			modifiedNode.setExtraDimensions(decl.getExtraDimensions());
			modifiedNode.setModifiers(decl.getModifiers() & ~Modifier.ABSTRACT);
			rewrite.markAsModified(decl, modifiedNode);
			if (hasNoBody) {
				Block newBody= ast.newBlock();
				rewrite.markAsInserted(newBody);
				decl.setBody(newBody);
				Expression expr= ASTResolving.getInitExpression(decl.getReturnType());
				if (expr != null) {
					ReturnStatement returnStatement= ast.newReturnStatement();
					returnStatement.setExpression(expr);
					newBody.statements().add(returnStatement);
				}
			}
	
			String label= CorrectionMessages.getString("ModifierCorrectionSubProcessor.removeabstract.description");