Buggy code:
public class QualityCenterResultArchiver extends Recorder implements MatrixAggregatable , Serializable { @ DataBoundConstructor public QualityCenterResultArchiver ( ) { } @ Override public boolean perform ( AbstractBuild build , Launcher launcher , BuildListener listener ) throws IOException , InterruptedException { TestResultAction action ; List < Builder > builders = ( ( hudson . model . Project ) ( build . getProject ( ) ) ) . getBuilders ( ) ; final List < String > names = new ArrayList < String > ( ) ; for ( Builder builder : builders ) { if ( builder instanceof QualityCenter ) { <START_BUG> names . add ( ( ( QualityCenter ) ( builder ) ) . getParsedQcTSLogFile ( ) ) ; <END_BUG> } } if ( names . isEmpty ( ) ) { listener . getLogger ( ) . println ( Messages . QualityCenterResultArchiver_NoBuilderSet ( ) ) ; return true ; } try { final long buildTime = build . getTimestamp ( ) . getTimeInMillis ( ) ; final long nowMaster = System . currentTimeMillis ( ) ; TestResult result = build . getWorkspace ( ) . act ( new hudson . FilePath . FileCallable < TestResult > ( ) { public TestResult invoke ( File ws , VirtualChannel channel ) throws IOException { final long nowSlave = System . currentTimeMillis ( ) ; List < String > files = new ArrayList < String > ( ) ; DirectoryScanner ds = new DirectoryScanner ( ) ; ds . setBasedir ( ws ) ; for ( String name : names ) { if ( name != null ) { File file = new File ( ws , name ) ; if ( file . exists ( ) ) { files . add ( file . getName ( ) ) ; } } } Object [ ] objectArray = new String [ files . size ( ) ] ; files . toArray ( objectArray ) ; ds . setIncludes ( ( ( String [ ] ) ( objectArray ) ) ) ; ds . scan ( ) ; if ( ( ds . getIncludedFilesCount ( ) ) == 0 ) { throw new AbortException ( "Report<seq2seq4repair_space>not<seq2seq4repair_space>found" ) ; } return new TestResult ( ( buildTime + ( nowSlave - nowMaster ) ) , ds , true ) ; } } ) ; action = new TestResultAction ( build , result , listener ) ; if ( ( ( result . getPassCount ( ) ) == 0 ) && ( ( result . getFailCount ( ) ) == 0 ) ) { throw new AbortException ( "Result<seq2seq4repair_space>is<seq2seq4repair_space>empty" ) ; } } catch ( AbortException e ) { if ( ( build . getResult ( ) ) == ( Result . FAILURE ) ) { return true ; } listener . getLogger ( ) . println ( e . getMessage ( ) ) ; build . setResult ( FAILURE ) ; return true ; } catch ( IOException e ) { e . printStackTrace ( listener . error ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>archive<seq2seq4repair_space>QC<seq2seq4repair_space>reports" ) ) ; build . setResult ( FAILURE ) ; return true ; } build . getActions ( ) . add ( action ) ; if ( ( action . getResult ( ) . getFailCount ( ) ) > 0 ) { build . setResult ( UNSTABLE ) ; } return true ; } @ Override public Action getProjectAction ( AbstractProject < ? , ? > project ) { } public MatrixAggregator createAggregator ( MatrixBuild build , Launcher launcher , BuildListener listener ) { } public BuildStepMonitor getRequiredMonitorService ( ) { } @ Extension public static class DescriptorImpl extends BuildStepDescriptor < Publisher > { public String getDisplayName ( ) { } public boolean isApplicable ( Class < ? extends AbstractProject > jobType ) { } } }

Fix:
names . addAll ( ( ( QualityCenter ) ( builder ) ) . getTestSetLogFiles ( ) ) ;