Buggy code:
if ( t == null ) { EClassType . log . warn ( ( "Couldn't<seq2seq4repair_space>resolve<seq2seq4repair_space>type<seq2seq4repair_space>for<seq2seq4repair_space>" + ( getTypeName ( feature . getEType ( ) ) ) ) ) ; } else { result . add ( new PropertyImpl ( this , feature . getName ( ) , t ) { public Object get ( final Object target ) { return ( ( EObject ) ( target ) ) . eGet ( feature ) ; } @ Override public void set ( final Object target , Object newValue ) { if ( ( ( feature . isChangeable ( ) ) && ( ! ( feature . isUnsettable ( ) ) ) ) && ( ! ( feature . isDerived ( ) ) ) ) { if ( ( ( feature . getEType ( ) ) instanceof EDataType ) && ( ! ( ( feature . getEType ( ) ) instanceof EEnum ) ) ) { final EDataType dt = ( ( EDataType ) ( feature . getEType ( ) ) ) ; newValue = getReturnType ( ) . convert ( newValue , dt . getInstanceClass ( ) ) ; } ( ( EObject ) ( target ) ) . eSet ( feature , newValue ) ; } else throw new UnsupportedOperationException ( ( ( "setting<seq2seq4repair_space>property<seq2seq4repair_space>'" + ( feature . getName ( ) ) ) + "'<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>allowed!" ) ) ; } } ) ; } } final List operations = eClass . getEOperations ( ) ; for ( final Iterator iter = operations . iterator ( ) ; iter . hasNext ( ) ; ) { final EOperation op = ( ( EOperation ) ( iter . next ( ) ) ) ; final EList emfParams = op . getEParameters ( ) ; final Type [ ] paramTypes = new Type [ emfParams . size ( ) ] ; boolean errors = false ; for ( int i = 0 , x = emfParams . size ( ) ; i < x ; i ++ ) { final EParameter param = ( ( EParameter ) ( emfParams . get ( i ) ) ) ; paramTypes [ i ] = emfMetaModel . getTypeForETypedElement ( param ) ; if ( ( paramTypes [ i ] ) == null ) { EClassType . log . warn ( ( "Couldn't<seq2seq4repair_space>resolve<seq2seq4repair_space>type<seq2seq4repair_space>for<seq2seq4repair_space>" + ( getTypeName ( param . getEType ( ) ) ) ) ) ; errors = true ; } } final Type t = emfMetaModel . getTypeForETypedElement ( op ) ; if ( t == null ) { EClassType . log . warn ( ( "Couldn't<seq2seq4repair_space>resolve<seq2seq4repair_space>type<seq2seq4repair_space>for<seq2seq4repair_space>" + ( getTypeName ( op . getEType ( ) ) ) ) ) ; errors = true ; } if ( ! errors ) { result . add ( new OperationImpl ( this , op . getName ( ) , t , paramTypes ) { @ Override protected Object evaluateInternal ( final Object target , final Object [ ] params ) { final Class [ ] paramClasses = new Class [ emfParams . size ( ) ] ; for ( int i = 0 , x = emfParams . size ( ) ; i < x ; i ++ ) { final EParameter param = ( ( EParameter ) ( emfParams . get ( i ) ) ) ; if ( param . isMany ( ) ) { paramClasses [ i ] = EList . class ; } else { paramClasses [ i ] = param . getEType ( ) . getInstanceClass ( ) ; } params [ i ] = getParameterTypes ( ) . get ( i ) . convert ( params [ i ] , paramClasses [ i ] ) ; } try { final Method m = target . getClass ( ) . getMethod ( getName ( ) , paramClasses ) ; return m . invoke ( target , params ) ; } catch ( final Exception e ) { throw new RuntimeException ( e ) ; } } } ) ; } } for ( final EStructuralFeature feature : eClass . getEStructuralFeatures ( ) ) { final Type t = emfMetaModel . getTypeForETypedElement ( feature ) ; if ( t == null ) { EClassType . log . warn ( ( "Couldn't<seq2seq4repair_space>resolve<seq2seq4repair_space>type<seq2seq4repair_space>for<seq2seq4repair_space>" + ( getTypeName ( feature . getEType ( ) ) ) ) ) ; } else { <START_BUG> if ( ( ( feature . isChangeable ( ) ) && ( ! ( feature . isDerived ( ) ) ) ) && ( ! ( feature . isMany ( ) ) ) ) { <END_BUG> result . add ( new OperationImpl ( this , ( "set" + ( StringHelper . firstUpper ( feature . getName ( ) ) ) ) , this , new Type [ ] { t } ) { @ Override protected Object evaluateInternal ( final Object target , final Object [ ] params ) { Object newValue = params [ 0 ] ; if ( ( ( newValue != null ) && ( ( feature . getEType ( ) ) instanceof EDataType ) ) && ( ! ( ( feature . getEType ( ) ) instanceof EEnum ) ) ) { final EDataType dt = ( ( EDataType ) ( feature . getEType ( ) ) ) ; newValue = getParameterTypes ( ) . get ( 0 ) . convert ( newValue , dt . getInstanceClass ( ) ) ; } ( ( EObject ) ( target ) ) . eSet ( feature , newValue ) ; return target ; } } ) ; } } } return result . toArray ( new Feature [ result . size ( ) ] ) ; } private String getTypeName ( final EClassifier type ) { } public boolean isInstance ( final Object o ) { } public Object newInstance ( ) { } @ Override protected Set < Type > internalGetSuperTypes ( ) { } @ Override public boolean isAbstract ( ) { } }

Fix:
if ( ( feature . isChangeable ( ) ) && ( ! ( feature . isMany ( ) ) ) ) {