Buggy code:
public class SingleVariableDeclaration extends VariableDeclaration { public static final SimplePropertyDescriptor MODIFIERS_PROPERTY = new SimplePropertyDescriptor ( SingleVariableDeclaration . class , "modifiers" , int . class , ASTNode . MANDATORY ) ; public static final ChildListPropertyDescriptor MODIFIERS2_PROPERTY = new ChildListPropertyDescriptor ( SingleVariableDeclaration . class , "modifiers" , IExtendedModifier . class , ASTNode . CYCLE_RISK ) ; public static final ChildPropertyDescriptor NAME_PROPERTY = new ChildPropertyDescriptor ( SingleVariableDeclaration . class , "name" , SimpleName . class , ASTNode . MANDATORY , ASTNode . NO_CYCLE_RISK ) ; public static final ChildPropertyDescriptor TYPE_PROPERTY = new ChildPropertyDescriptor ( SingleVariableDeclaration . class , "type" , Type . class , ASTNode . MANDATORY , ASTNode . NO_CYCLE_RISK ) ; public static final SimplePropertyDescriptor VARARGS_PROPERTY = new SimplePropertyDescriptor ( SingleVariableDeclaration . class , "varargs" , boolean . class , ASTNode . MANDATORY ) ; public static final SimplePropertyDescriptor EXTRA_DIMENSIONS_PROPERTY = new SimplePropertyDescriptor ( SingleVariableDeclaration . class , "extraDimensions" , int . class , ASTNode . MANDATORY ) ; public static final ChildPropertyDescriptor INITIALIZER_PROPERTY = new ChildPropertyDescriptor ( SingleVariableDeclaration . class , "initializer" , Expression . class , ASTNode . OPTIONAL , ASTNode . CYCLE_RISK ) ; private static final List PROPERTY_DESCRIPTORS_2_0 ; private static final List PROPERTY_DESCRIPTORS_3_0 ; public static List propertyDescriptors ( int apiLevel ) { } private ASTNode . NodeList modifiers = null ; private int modifierFlags = Modifier . NONE ; private SimpleName variableName = null ; private Type type = null ; private boolean variableArity = false ; private int extraArrayDimensions = 0 ; private Expression optionalInitializer = null ; SingleVariableDeclaration ( AST ast ) { } final SimplePropertyDescriptor internalExtraDimensionsProperty ( ) { } final ChildPropertyDescriptor internalInitializerProperty ( ) { } final ChildPropertyDescriptor internalNameProperty ( ) { } final List internalStructuralPropertiesForType ( int apiLevel ) { } final int internalGetSetIntProperty ( SimplePropertyDescriptor property , boolean get , int value ) { } final boolean internalGetSetBooleanProperty ( SimplePropertyDescriptor property , boolean get , boolean value ) { } final ASTNode internalGetSetChildProperty ( ChildPropertyDescriptor property , boolean get , ASTNode child ) { } final List internalGetChildListProperty ( ChildListPropertyDescriptor property ) { } final int getNodeType0 ( ) { } ASTNode clone0 ( AST target ) { SingleVariableDeclaration result = new SingleVariableDeclaration ( target ) ; <START_BUG> result . setSourceRange ( this . getStartPosition ( ) , this . getLength ( ) ) ; <END_BUG> if ( ( this . ast . apiLevel ) == ( AST . JLS2_INTERNAL ) ) { result . setModifiers ( getModifiers ( ) ) ; } else { result . modifiers ( ) . addAll ( ASTNode . copySubtrees ( target , modifiers ( ) ) ) ; result . setVarargs ( isVarargs ( ) ) ; } result . setType ( ( ( Type ) ( getType ( ) . clone ( target ) ) ) ) ; result . setExtraDimensions ( getExtraDimensions ( ) ) ; result . setName ( ( ( SimpleName ) ( getName ( ) . clone ( target ) ) ) ) ; result . setInitializer ( ( ( Expression ) ( ASTNode . copySubtree ( target , getInitializer ( ) ) ) ) ) ; return result ; } final boolean subtreeMatch0 ( ASTMatcher matcher , Object other ) { } void accept0 ( ASTVisitor visitor ) { } public List modifiers ( ) { } public int getModifiers ( ) { } public void setModifiers ( int modifiers ) { } final void internalSetModifiers ( int pmodifiers ) { } public SimpleName getName ( ) { } public void setName ( SimpleName variableName ) { } public Type getType ( ) { } public void setType ( Type type ) { } public boolean isVarargs ( ) { } public void setVarargs ( boolean variableArity ) { } public int getExtraDimensions ( ) { } public void setExtraDimensions ( int dimensions ) { } public Expression getInitializer ( ) { } public void setInitializer ( Expression initializer ) { } int memSize ( ) { } int treeSize ( ) { } }

Fix:
result . setSourceRange ( getStartPosition ( ) , getLength ( ) ) ;