Buggy code:
abstract class AbstractThriftMojo extends AbstractMojo { private static final String THRIFT_FILE_SUFFIX = ".thrift" ; private static final String DEFAULT_INCLUDES = "**//*" + ( AbstractThriftMojo . THRIFT_FILE_SUFFIX ) ; protected MavenProject project ; protected MavenProjectHelper projectHelper ; private String thriftExecutable ; private String generator ; private File [ ] additionalThriftPathElements = new File [ ] { } ; private File temporaryThriftFileDirectory ; private ArtifactRepository localRepository ; private boolean hashDependentPaths ; private Set < String > includes = ImmutableSet . of ( AbstractThriftMojo . DEFAULT_INCLUDES ) ; private Set < String > excludes = ImmutableSet . of ( ) ; private long staleMillis = 0 ; private boolean checkStaleness = false ; public void execute ( ) throws MojoExecutionException , MojoFailureException { checkParameters ( ) ; final File thriftSourceRoot = getThriftSourceRoot ( ) ; if ( thriftSourceRoot . exists ( ) ) { try { ImmutableSet < File > thriftFiles = findThriftFilesInDirectory ( thriftSourceRoot ) ; final File outputDirectory = getOutputDirectory ( ) ; ImmutableSet < File > outputFiles = findGeneratedFilesInDirectory ( getOutputDirectory ( ) ) ; if ( thriftFiles . isEmpty ( ) ) { getLog ( ) . info ( "No<seq2seq4repair_space>thrift<seq2seq4repair_space>files<seq2seq4repair_space>to<seq2seq4repair_space>compile." ) ; } else if ( ( checkStaleness ) && ( ( ( lastModified ( thriftFiles ) ) + ( staleMillis ) ) < ( lastModified ( outputFiles ) ) ) ) { getLog ( ) . info ( "Skipping<seq2seq4repair_space>compilation<seq2seq4repair_space>because<seq2seq4repair_space>target<seq2seq4repair_space>directory<seq2seq4repair_space>newer<seq2seq4repair_space>than<seq2seq4repair_space>sources." ) ; attachFiles ( ) ; } else { ImmutableSet < File > derivedThriftPathElements = makeThriftPathFromJars ( temporaryThriftFileDirectory , getDependencyArtifactFiles ( ) ) ; outputDirectory . mkdirs ( ) ; Thrift thrift = new Thrift . Builder ( thriftExecutable , outputDirectory ) . setGenerator ( generator ) . addThriftPathElement ( thriftSourceRoot ) . addThriftPathElements ( derivedThriftPathElements ) . addThriftPathElements ( Arrays . asList ( additionalThriftPathElements ) ) . addThriftFiles ( thriftFiles ) . build ( ) ; final int exitStatus = thrift . compile ( ) ; if ( exitStatus != 0 ) { getLog ( ) . error ( ( "thrift<seq2seq4repair_space>failed<seq2seq4repair_space>output:<seq2seq4repair_space>" + ( thrift . getOutput ( ) ) ) ) ; getLog ( ) . error ( ( "thrift<seq2seq4repair_space>failed<seq2seq4repair_space>error:<seq2seq4repair_space>" + ( thrift . getError ( ) ) ) ) ; throw new MojoFailureException ( "thrift<seq2seq4repair_space>did<seq2seq4repair_space>not<seq2seq4repair_space>exit<seq2seq4repair_space>cleanly.<seq2seq4repair_space>Review<seq2seq4repair_space>output<seq2seq4repair_space>for<seq2seq4repair_space>more<seq2seq4repair_space>information." ) ; } attachFiles ( ) ; } } catch ( IOException e ) { <START_BUG> throw new MojoExecutionException ( "An<seq2seq4repair_space>IO<seq2seq4repair_space>error<seq2seq4repair_space>occured" , e ) ; <END_BUG> } catch ( IllegalArgumentException e ) { throw new MojoFailureException ( ( "thrift<seq2seq4repair_space>failed<seq2seq4repair_space>to<seq2seq4repair_space>execute<seq2seq4repair_space>because:<seq2seq4repair_space>" + ( e . getMessage ( ) ) ) , e ) ; } catch ( CommandLineException e ) { throw new MojoExecutionException ( "An<seq2seq4repair_space>error<seq2seq4repair_space>occurred<seq2seq4repair_space>while<seq2seq4repair_space>invoking<seq2seq4repair_space>thrift." , e ) ; } } else { getLog ( ) . info ( String . format ( "%s<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>exist.<seq2seq4repair_space>Review<seq2seq4repair_space>the<seq2seq4repair_space>configuration<seq2seq4repair_space>or<seq2seq4repair_space>consider<seq2seq4repair_space>disabling<seq2seq4repair_space>the<seq2seq4repair_space>plugin." , thriftSourceRoot ) ) ; } } ImmutableSet < File > findGeneratedFilesInDirectory ( File directory ) throws IOException { } private long lastModified ( ImmutableSet < File > files ) { } private void checkParameters ( ) { } protected abstract File getThriftSourceRoot ( ) { } protected abstract List < Artifact > getDependencyArtifacts ( ) { } protected abstract File getOutputDirectory ( ) { } protected abstract void attachFiles ( ) { } private ImmutableSet < File > getDependencyArtifactFiles ( ) { } ImmutableSet < File > makeThriftPathFromJars ( File temporaryThriftFileDirectory , Iterable < File > classpathElementFiles ) throws IOException , MojoExecutionException { } ImmutableSet < File > findThriftFilesInDirectory ( File directory ) throws IOException { } ImmutableSet < File > findThriftFilesInDirectories ( Iterable < File > directories ) throws IOException { } String truncatePath ( final String jarPath ) throws MojoExecutionException { } private static final char [ ] HEX_CHARS = "0123456789abcdef" . toCharArray ( ) ; public static String toHexString ( byte [ ] byteArray ) { } }

Fix:
throw new MojoExecutionException ( "An<seq2seq4repair_space>IO<seq2seq4repair_space>error<seq2seq4repair_space>occurred" , e ) ;