Buggy code:
public class MergeExecutionCourses { public static class SourceAndDestinationAreTheSameException extends FenixServiceException { private static final long serialVersionUID = 3761968254943244338L ; } public static class DuplicateShiftNameException extends FenixServiceException { private static final long serialVersionUID = 3761968254943244338L ; } public static class MergeNotPossibleException extends FenixServiceException { private static final long serialVersionUID = 3761968254943244338L ; public MergeNotPossibleException ( Set < String > blockers ) { } } @ FunctionalInterface public static interface SubDomainMergeHandler { public default Set < String > mergeBlockers ( ExecutionCourse executionCourseFrom , ExecutionCourse executionCourseTo ) { } public void merge ( ExecutionCourse executionCourseFrom , ExecutionCourse executionCourseTo ) throws FenixServiceException { } } private static final ConcurrentLinkedQueue < MergeExecutionCourses . SubDomainMergeHandler > handlers = new ConcurrentLinkedQueue < > ( ) ; public static void registerMergeHandler ( MergeExecutionCourses . SubDomainMergeHandler handler ) { } @ Atomic ( mode = TxMode . WRITE ) public static void merge ( ExecutionCourse executionCourseTo , ExecutionCourse executionCourseFrom ) throws FenixServiceException { } private static boolean haveShiftsWithSameName ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) { } private static boolean isMergeAllowed ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) { } private static void copySummaries ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) { } private static void copyGroupPropertiesExecutionCourse ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) { } private static void removeEvaluations ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) throws FenixServiceException { while ( ! ( executionCourseFrom . getAssociatedEvaluationsSet ( ) . isEmpty ( ) ) ) { final Evaluation evaluation = executionCourseFrom . getAssociatedEvaluationsSet ( ) . iterator ( ) . next ( ) ; if ( evaluation instanceof FinalEvaluation ) { final FinalEvaluation finalEvaluationFrom = ( ( FinalEvaluation ) ( evaluation ) ) ; if ( ! ( finalEvaluationFrom . getMarksSet ( ) . isEmpty ( ) ) ) { <START_BUG> throw new FenixServiceException ( "Cannot<seq2seq4repair_space>merge<seq2seq4repair_space>execution<seq2seq4repair_space>courses:<seq2seq4repair_space>marks<seq2seq4repair_space>exist<seq2seq4repair_space>for<seq2seq4repair_space>final<seq2seq4repair_space>evaluation." ) ; <END_BUG> } else { finalEvaluationFrom . delete ( ) ; } } else { executionCourseTo . getAssociatedEvaluationsSet ( ) . add ( evaluation ) ; executionCourseFrom . getAssociatedEvaluationsSet ( ) . remove ( evaluation ) ; } } } private static void copyBibliographicReference ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) { } private static void copyShifts ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) { } private static void copyLessonsInstances ( ExecutionCourse executionCourseFrom , ExecutionCourse executionCourseTo ) { } private static void copyAttends ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) throws FenixServiceException { } private static void copyProfessorships ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) { } private static Professorship findProfessorShip ( final ExecutionCourse executionCourseTo , final Person person ) { } private static void copyForuns ( final ExecutionCourse executionCourseFrom , final ExecutionCourse executionCourseTo ) throws FenixServiceException { } private static void copyForumSubscriptions ( ExecutionCourseForum sourceForum , ExecutionCourseForum targetForum ) { } private static void copyThreads ( ExecutionCourseForum sourceForum , ExecutionCourseForum targetForum ) { } private static void copyExecutionCourseLogs ( ExecutionCourse executionCourseFrom , ExecutionCourse executionCourseTo ) { } private static void copyPersistentGroups ( ExecutionCourse executionCourseFrom , ExecutionCourse executionCourseTo ) { } private static void dropEvaluationMethods ( ExecutionCourse executionCourseFrom , ExecutionCourse executionCourseTo ) { } }

Fix:
throw new FenixServiceException ( "error.merge.execution.course.final.evaluation.exists" ) ;