Program: 92267
Project: 92267
Buggy source:
@SuppressWarnings("String_Node_Str") private void selectExperiment(TmfExperiment<?> experiment){
  fStartTime=Long.MAX_VALUE;
  fEndTime=Long.MIN_VALUE;
  fSelectedExperiment=(TmfExperiment<ITmfEvent>)experiment;
  ArrayList<TraceEntry> entryList=new ArrayList<TraceEntry>();
  for (  ITmfTrace<?> trace : experiment.getTraces()) {
    if (trace instanceof CtfKernelTrace) {
      CtfKernelTrace ctfKernelTrace=(CtfKernelTrace)trace;
      IStateSystemQuerier ssq=ctfKernelTrace.getStateSystem();
      long startTime=ssq.getStartTime();
      long endTime=ssq.getCurrentEndTime() + 1;
      TraceEntry groupEntry=new TraceEntry(ctfKernelTrace,trace.getName(),startTime,endTime);
      entryList.add(groupEntry);
      fStartTime=Math.min(fStartTime,startTime);
      fEndTime=Math.max(fEndTime,endTime);
      List<Integer> cpuQuarks=ssq.getQuarks(Attributes.CPUS,"String_Node_Str");
      ResourcesEntry[] cpuEntries=new ResourcesEntry[cpuQuarks.size()];
      for (int i=0; i < cpuQuarks.size(); i++) {
        int cpuQuark=cpuQuarks.get(i);
        int cpu=Integer.parseInt(ssq.getAttributeName(cpuQuark));
        ResourcesEntry entry=new ResourcesEntry(cpuQuark,ctfKernelTrace,Type.CPU,cpu);
        groupEntry.addChild(entry);
        cpuEntries[i]=entry;
      }
      List<Integer> irqQuarks=ssq.getQuarks(Attributes.RESOURCES,Attributes.IRQS,"String_Node_Str");
      ResourcesEntry[] irqEntries=new ResourcesEntry[irqQuarks.size()];
      for (int i=0; i < irqQuarks.size(); i++) {
        int irqQuark=irqQuarks.get(i);
        int irq=Integer.parseInt(ssq.getAttributeName(irqQuark));
        ResourcesEntry entry=new ResourcesEntry(irqQuark,ctfKernelTrace,Type.IRQ,irq);
        groupEntry.addChild(entry);
        irqEntries[i]=entry;
      }
      List<Integer> softIrqQuarks=ssq.getQuarks(Attributes.RESOURCES,Attributes.SOFT_IRQS,"String_Node_Str");
      ResourcesEntry[] softIrqEntries=new ResourcesEntry[softIrqQuarks.size()];
      for (int i=0; i < softIrqQuarks.size(); i++) {
        int softIrqQuark=softIrqQuarks.get(i);
        int softIrq=Integer.parseInt(ssq.getAttributeName(softIrqQuark));
        ResourcesEntry entry=new ResourcesEntry(softIrqQuark,ctfKernelTrace,Type.SOFT_IRQ,softIrq);
        groupEntry.addChild(entry);
        softIrqEntries[i]=entry;
      }
    }
  }
  fEntryList=entryList;
  refresh(INITIAL_WINDOW_OFFSET);
  for (  TraceEntry traceEntry : fEntryList) {
    CtfKernelTrace ctfKernelTrace=((TraceEntry)traceEntry).getTrace();
    IStateSystemQuerier ssq=ctfKernelTrace.getStateSystem();
    long startTime=ssq.getStartTime();
    long endTime=ssq.getCurrentEndTime() + 1;
    long resolution=(endTime - startTime) / fDisplayWidth;
    for (    ResourcesEntry entry : traceEntry.getChildren()) {
      List<ITimeEvent> eventList=getEventList(entry,startTime,endTime,resolution,false,new NullProgressMonitor());
      entry.setEventList(eventList);
      redraw();
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") private void selectExperiment(TmfExperiment<?> experiment){
  fStartTime=Long.MAX_VALUE;
  fEndTime=Long.MIN_VALUE;
  fSelectedExperiment=(TmfExperiment<ITmfEvent>)experiment;
  ArrayList<TraceEntry> entryList=new ArrayList<TraceEntry>();
  for (  ITmfTrace<?> trace : experiment.getTraces()) {
    if (trace instanceof CtfKernelTrace) {
      CtfKernelTrace ctfKernelTrace=(CtfKernelTrace)trace;
      IStateSystemQuerier ssq=ctfKernelTrace.getStateSystem();
      long startTime=ssq.getStartTime();
      long endTime=ssq.getCurrentEndTime() + 1;
      TraceEntry groupEntry=new TraceEntry(ctfKernelTrace,trace.getName(),startTime,endTime);
      entryList.add(groupEntry);
      fStartTime=Math.min(fStartTime,startTime);
      fEndTime=Math.max(fEndTime,endTime);
      List<Integer> cpuQuarks=ssq.getQuarks(Attributes.CPUS,"String_Node_Str");
      ResourcesEntry[] cpuEntries=new ResourcesEntry[cpuQuarks.size()];
      for (int i=0; i < cpuQuarks.size(); i++) {
        int cpuQuark=cpuQuarks.get(i);
        int cpu=Integer.parseInt(ssq.getAttributeName(cpuQuark));
        ResourcesEntry entry=new ResourcesEntry(cpuQuark,ctfKernelTrace,Type.CPU,cpu);
        groupEntry.addChild(entry);
        cpuEntries[i]=entry;
      }
      List<Integer> irqQuarks=ssq.getQuarks(Attributes.RESOURCES,Attributes.IRQS,"String_Node_Str");
      ResourcesEntry[] irqEntries=new ResourcesEntry[irqQuarks.size()];
      for (int i=0; i < irqQuarks.size(); i++) {
        int irqQuark=irqQuarks.get(i);
        int irq=Integer.parseInt(ssq.getAttributeName(irqQuark));
        ResourcesEntry entry=new ResourcesEntry(irqQuark,ctfKernelTrace,Type.IRQ,irq);
        groupEntry.addChild(entry);
        irqEntries[i]=entry;
      }
      List<Integer> softIrqQuarks=ssq.getQuarks(Attributes.RESOURCES,Attributes.SOFT_IRQS,"String_Node_Str");
      ResourcesEntry[] softIrqEntries=new ResourcesEntry[softIrqQuarks.size()];
      for (int i=0; i < softIrqQuarks.size(); i++) {
        int softIrqQuark=softIrqQuarks.get(i);
        int softIrq=Integer.parseInt(ssq.getAttributeName(softIrqQuark));
        ResourcesEntry entry=new ResourcesEntry(softIrqQuark,ctfKernelTrace,Type.SOFT_IRQ,softIrq);
        groupEntry.addChild(entry);
        softIrqEntries[i]=entry;
      }
    }
  }
synchronized (fEntryListSyncObj) {
    fEntryList=(ArrayList<TraceEntry>)entryList.clone();
  }
  refresh(INITIAL_WINDOW_OFFSET);
  for (  TraceEntry traceEntry : entryList) {
    CtfKernelTrace ctfKernelTrace=((TraceEntry)traceEntry).getTrace();
    IStateSystemQuerier ssq=ctfKernelTrace.getStateSystem();
    long startTime=ssq.getStartTime();
    long endTime=ssq.getCurrentEndTime() + 1;
    long resolution=(endTime - startTime) / fDisplayWidth;
    for (    ResourcesEntry entry : traceEntry.getChildren()) {
      List<ITimeEvent> eventList=getEventList(entry,startTime,endTime,resolution,false,new NullProgressMonitor());
      entry.setEventList(eventList);
      redraw();
    }
  }
}