Buggy code:
public class LocalVariable extends SourceRefElement implements ILocalVariable { String name ; public int declarationSourceStart ; public int declarationSourceEnd ; public int nameStart ; public int nameEnd ; String typeSignature ; public IAnnotation [ ] annotations ; public LocalVariable ( JavaElement parent , String name , int declarationSourceStart , int declarationSourceEnd , int nameStart , int nameEnd , String typeSignature , Annotation [ ] astAnnotations ) { } protected void closing ( Object info ) { } protected Object createElementInfo ( ) { } public boolean equals ( Object o ) { } public boolean exists ( ) { } protected void generateInfos ( Object info , HashMap newElements , IProgressMonitor pm ) { } public IAnnotation getAnnotation ( String annotationName ) { } public IAnnotation [ ] getAnnotations ( ) throws JavaModelException { } private IAnnotation [ ] getAnnotations ( Annotation [ ] astAnnotations ) { } private IAnnotation getAnnotation ( final Annotation annotation , JavaElement parentElement ) { } private Object getAnnotationMemberValue ( MemberValuePair memberValuePair , Expression expression , JavaElement parentElement ) { if ( expression instanceof Literal ) { ( ( Literal ) ( expression ) ) . computeConstant ( ) ; return Util . getAnnotationMemberValue ( memberValuePair , expression . constant ) ; } else if ( expression instanceof Annotation ) { memberValuePair . valueKind = IMemberValuePair . K_ANNOTATION ; return getAnnotation ( ( ( Annotation ) ( expression ) ) , parentElement ) ; } else if ( expression instanceof ClassLiteralAccess ) { ClassLiteralAccess classLiteral = ( ( ClassLiteralAccess ) ( expression ) ) ; char [ ] typeName = CharOperation . concatWith ( classLiteral . type . getTypeName ( ) , '.' ) ; memberValuePair . valueKind = IMemberValuePair . K_CLASS ; return new String ( typeName ) ; } else if ( expression instanceof QualifiedNameReference ) { char [ ] qualifiedName = CharOperation . concatWith ( ( ( QualifiedNameReference ) ( expression ) ) . tokens , '.' ) ; memberValuePair . valueKind = IMemberValuePair . K_QUALIFIED_NAME ; return new String ( qualifiedName ) ; } else if ( expression instanceof ArrayInitializer ) { memberValuePair . valueKind = - 1 ; Expression [ ] expressions = ( ( ArrayInitializer ) ( expression ) ) . expressions ; int length = ( expressions == null ) ? 0 : expressions . length ; Object [ ] values = new Object [ length ] ; for ( int i = 0 ; i < length ; i ++ ) { int previousValueKind = memberValuePair . valueKind ; Object value = getAnnotationMemberValue ( memberValuePair , expressions [ i ] , parentElement ) ; <START_BUG> if ( ( previousValueKind != ( IMemberValuePair . K_UNKNOWN ) ) && ( ( memberValuePair . valueKind ) != previousValueKind ) ) { <END_BUG> memberValuePair . valueKind = IMemberValuePair . K_UNKNOWN ; } values [ i ] = value ; } if ( ( memberValuePair . valueKind ) == ( - 1 ) ) memberValuePair . valueKind = IMemberValuePair . K_UNKNOWN ; return values ; } else { memberValuePair . valueKind = IMemberValuePair . K_UNKNOWN ; return null ; } } public IJavaElement getHandleFromMemento ( String token , MementoTokenizer memento , WorkingCopyOwner owner ) { } protected void getHandleMemento ( StringBuffer buff ) { } protected char getHandleMementoDelimiter ( ) { } public IResource getCorrespondingResource ( ) { } public String getElementName ( ) { } public int getElementType ( ) { } public ISourceRange getNameRange ( ) { } public IPath getPath ( ) { } public IResource getResource ( ) { } public String getSource ( ) throws JavaModelException { } public ISourceRange getSourceRange ( ) { } public String getTypeSignature ( ) { } public IResource getUnderlyingResource ( ) throws JavaModelException { } public int hashCode ( ) { } public boolean isStructureKnown ( ) throws JavaModelException { } protected void toStringInfo ( int tab , StringBuffer buffer , Object info , boolean showResolvedInfo ) { } }

Fix:
if ( ( previousValueKind != ( - 1 ) ) && ( ( memberValuePair . valueKind ) != previousValueKind ) ) {