Program: 28955
Project: 28955
Buggy source:
private static FindableProcessor insertJoinProcessorsAndGetFindable(JoinProcessor postJoinProcessor,SingleStreamRuntime streamRuntime,ExecutionPlanContext executionPlanContext,boolean outputExpectsExpiredEvents){
  Processor lastProcessor=streamRuntime.getProcessorChain();
  Processor prevLastProcessor=null;
  if (lastProcessor != null) {
    while (lastProcessor.getNextProcessor() != null) {
      prevLastProcessor=lastProcessor;
      lastProcessor=lastProcessor.getNextProcessor();
    }
  }
  if (lastProcessor == null) {
    WindowProcessor windowProcessor=new LengthWindowProcessor();
    ExpressionExecutor[] expressionExecutors=new ExpressionExecutor[1];
    expressionExecutors[0]=new ConstantExpressionExecutor(0,Attribute.Type.INT);
    windowProcessor.initProcessor(((MetaStreamEvent)streamRuntime.getMetaComplexEvent()).getLastInputDefinition(),expressionExecutors,executionPlanContext,outputExpectsExpiredEvents);
    lastProcessor=windowProcessor;
  }
  if (lastProcessor instanceof FindableProcessor) {
    if (prevLastProcessor == null) {
      streamRuntime.setProcessorChain(lastProcessor);
    }
    lastProcessor.setNextProcessor(postJoinProcessor);
    return (FindableProcessor)lastProcessor;
  }
 else {
    throw new OperationNotSupportedException("String_Node_Str" + ((MetaStreamEvent)streamRuntime.getMetaComplexEvent()).getLastInputDefinition().getId() + "String_Node_Str"+ lastProcessor.getClass().getCanonicalName()+ "String_Node_Str"+ FindableProcessor.class.getCanonicalName()+ "String_Node_Str");
  }
}

Fixed version (ground truth):
private static FindableProcessor insertJoinProcessorsAndGetFindable(JoinProcessor preJoinProcessor,JoinProcessor postJoinProcessor,SingleStreamRuntime streamRuntime,ExecutionPlanContext executionPlanContext,boolean outputExpectsExpiredEvents){
  Processor lastProcessor=streamRuntime.getProcessorChain();
  Processor prevLastProcessor=null;
  if (lastProcessor != null) {
    while (lastProcessor.getNextProcessor() != null) {
      prevLastProcessor=lastProcessor;
      lastProcessor=lastProcessor.getNextProcessor();
    }
  }
  if (lastProcessor == null) {
    WindowProcessor windowProcessor=new LengthWindowProcessor();
    ExpressionExecutor[] expressionExecutors=new ExpressionExecutor[1];
    expressionExecutors[0]=new ConstantExpressionExecutor(0,Attribute.Type.INT);
    windowProcessor.initProcessor(((MetaStreamEvent)streamRuntime.getMetaComplexEvent()).getLastInputDefinition(),expressionExecutors,executionPlanContext,outputExpectsExpiredEvents);
    lastProcessor=windowProcessor;
  }
  if (lastProcessor instanceof FindableProcessor) {
    if (prevLastProcessor != null) {
      prevLastProcessor.setNextProcessor(preJoinProcessor);
    }
 else {
      streamRuntime.setProcessorChain(preJoinProcessor);
    }
    preJoinProcessor.setNextProcessor(lastProcessor);
    lastProcessor.setNextProcessor(postJoinProcessor);
    return (FindableProcessor)lastProcessor;
  }
 else {
    throw new OperationNotSupportedException("String_Node_Str" + ((MetaStreamEvent)streamRuntime.getMetaComplexEvent()).getLastInputDefinition().getId() + "String_Node_Str"+ lastProcessor.getClass().getCanonicalName()+ "String_Node_Str"+ FindableProcessor.class.getCanonicalName()+ "String_Node_Str");
  }
}