Buggy code:
class ArgoAny implements Any { MClassifier classifier ; ArgoAny ( MClassifier classifier ) { } public Type navigateQualified ( String name , Type [ ] qualifiers ) { if ( ( classifier ) == null ) { throw new OclTypeException ( "attempting<seq2seq4repair_space>to<seq2seq4repair_space>access<seq2seq4repair_space>features<seq2seq4repair_space>of<seq2seq4repair_space>Void" ) ; } if ( qualifiers != null ) { throw new OclTypeException ( "qualified<seq2seq4repair_space>associations<seq2seq4repair_space>not<seq2seq4repair_space>supported<seq2seq4repair_space>yet!" ) ; } Type type = Basic . navigateAnyQualified ( name , this , qualifiers ) ; if ( type != null ) return type ; MClassifier foundAssocType = null ; MClassifier foundAttribType = null ; boolean isSet = false ; boolean isSequence = false ; Collection attributes = SINGLETON . getAttributesInh ( classifier ) ; Iterator iter = attributes . iterator ( ) ; while ( ( iter . hasNext ( ) ) && ( foundAttribType == null ) ) { MAttribute attr = ( ( MAttribute ) ( iter . next ( ) ) ) ; if ( attr . getName ( ) . equals ( name ) ) { foundAttribType = attr . getType ( ) ; } } Collection associationEnds = SINGLETON . getAssociateEndsInh ( classifier ) ; Iterator asciter = associationEnds . iterator ( ) ; while ( ( asciter . hasNext ( ) ) && ( foundAssocType == null ) ) { MAssociationEnd ae = ( ( MAssociationEnd ) ( asciter . next ( ) ) ) ; if ( ( ( ae . getName ( ) ) != null ) && ( name . equals ( ae . getName ( ) ) ) ) { foundAssocType = ae . getType ( ) ; } else <START_BUG> if ( ( ae . getName ( ) ) == null ) { <END_BUG> String oppositeName = ae . getType ( ) . getName ( ) ; if ( oppositeName != null ) { String lowerOppositeName = oppositeName . substring ( 0 , 1 ) . toLowerCase ( ) ; lowerOppositeName += oppositeName . substring ( 1 ) ; if ( lowerOppositeName . equals ( name ) ) foundAssocType = ae . getType ( ) ; } } if ( foundAssocType != null ) { if ( ( ( ae . getMultiplicity ( ) ) != null ) && ( ( ( ae . getMultiplicity ( ) . getUpper ( ) ) > 1 ) || ( ( ae . getMultiplicity ( ) . getUpper ( ) ) == ( - 1 ) ) ) ) { if ( ( ( ( ae . getStereotype ( ) ) != null ) && ( ( ae . getStereotype ( ) . toString ( ) ) != null ) ) && ( "ordered" . equals ( ae . getStereotype ( ) . toString ( ) ) ) ) { isSequence = true ; } else { isSet = true ; } } } } if ( ( foundAssocType != null ) && ( foundAttribType != null ) ) { throw new OclTypeException ( ( ( ( ( ( "cannot<seq2seq4repair_space>access<seq2seq4repair_space>feature<seq2seq4repair_space>" + name ) + "<seq2seq4repair_space>of<seq2seq4repair_space>classifier<seq2seq4repair_space>" ) + ( toString ( ) ) ) + "<seq2seq4repair_space>because<seq2seq4repair_space>both<seq2seq4repair_space>" ) + "an<seq2seq4repair_space>attribute<seq2seq4repair_space>and<seq2seq4repair_space>an<seq2seq4repair_space>association<seq2seq4repair_space>end<seq2seq4repair_space>of<seq2seq4repair_space>this<seq2seq4repair_space>name<seq2seq4repair_space>where<seq2seq4repair_space>found" ) ) ; } MClassifier foundType = ( foundAssocType == null ) ? foundAttribType : foundAssocType ; if ( foundType == null ) { throw new OclTypeException ( ( ( ( "attribute<seq2seq4repair_space>" + name ) + "<seq2seq4repair_space>not<seq2seq4repair_space>found<seq2seq4repair_space>in<seq2seq4repair_space>classifier<seq2seq4repair_space>" ) + ( toString ( ) ) ) ) ; } Type result = null ; if ( ( foundType . getName ( ) . equals ( "int" ) ) || ( foundType . getName ( ) . equals ( "Integer" ) ) ) { result = Basic . INTEGER ; } if ( ( foundType . getName ( ) . equals ( "float" ) ) || ( foundType . getName ( ) . equals ( "double" ) ) ) { result = Basic . REAL ; } if ( ( ( foundType . getName ( ) . equals ( "bool" ) ) || ( foundType . getName ( ) . equals ( "Boolean" ) ) ) || ( foundType . getName ( ) . equals ( "boolean" ) ) ) { result = Basic . BOOLEAN ; } if ( foundType . getName ( ) . equals ( "String" ) ) { result = Basic . STRING ; } if ( result == null ) { result = new ArgoAny ( foundType ) ; } if ( isSet ) { result = new tudresden . ocl . check . types . Collection ( tudresden . ocl . check . types . Collection . SET , result ) ; } if ( isSequence ) { result = new tudresden . ocl . check . types . Collection ( tudresden . ocl . check . types . Collection . SEQUENCE , result ) ; } return result ; } public Type navigateParameterized ( String name , Type [ ] params ) { } public boolean conformsTo ( Type type ) { } public boolean equals ( Object o ) { } public int hashCode ( ) { } public String toString ( ) { } public boolean hasState ( String name ) { } }

Fix:
if ( ( ( ae . getName ( ) ) == null ) || ( ae . getName ( ) . equals ( "" ) ) ) {