Program: 29154
Project: 29154
Buggy source:
@Test public void dateDifferenceFunctionExtension() throws InterruptedException {
  log.info("String_Node_Str");
  SiddhiManager siddhiManager=new SiddhiManager();
  String inStreamDefinition="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  String query=("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
  ExecutionPlanRuntime executionPlanRuntime=siddhiManager.createExecutionPlanRuntime(inStreamDefinition + query);
  executionPlanRuntime.addCallback("String_Node_Str",new QueryCallback(){
    @Override public void receive(    long timeStamp,    Event[] inEvents,    Event[] removeEvents){
      EventPrinter.print(timeStamp,inEvents,removeEvents);
      eventArrived=true;
      for (int cnt=0; cnt < inEvents.length; cnt++) {
        count++;
        log.info("String_Node_Str" + count + "String_Node_Str"+ inEvents[cnt].getData(1)+ "String_Node_Str"+ "String_Node_Str"+ inEvents[cnt].getData(2));
      }
    }
  }
);
  InputHandler inputHandler=executionPlanRuntime.getInputHandler("String_Node_Str");
  executionPlanRuntime.start();
  inputHandler.send(new Object[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",1415692424000L,1415519624000L});
  inputHandler.send(new Object[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",1415692424000L,1412841224000L});
  inputHandler.send(new Object[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",1415692424000L,1384156424000L});
  Thread.sleep(100);
  Assert.assertEquals(3,count);
  Assert.assertTrue(eventArrived);
  executionPlanRuntime.shutdown();
}

Fixed version (ground truth):
@Test public void dateDifferenceFunctionExtension() throws InterruptedException {
  log.info("String_Node_Str");
  SiddhiManager siddhiManager=new SiddhiManager();
  String inStreamDefinition="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  String query=("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
  ExecutionPlanRuntime executionPlanRuntime=siddhiManager.createExecutionPlanRuntime(inStreamDefinition + query);
  executionPlanRuntime.addCallback("String_Node_Str",new QueryCallback(){
    @Override public void receive(    long timeStamp,    Event[] inEvents,    Event[] removeEvents){
      EventPrinter.print(timeStamp,inEvents,removeEvents);
      eventArrived=true;
      for (int cnt=0; cnt < inEvents.length; cnt++) {
        count++;
        log.info("String_Node_Str" + count + "String_Node_Str"+ inEvents[cnt].getData(1)+ "String_Node_Str"+ "String_Node_Str"+ inEvents[cnt].getData(2));
      }
    }
  }
);
  InputHandler inputHandler=executionPlanRuntime.getInputHandler("String_Node_Str");
  executionPlanRuntime.start();
  inputHandler.send(new Object[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",1415692424000L,1415519624000L});
  inputHandler.send(new Object[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",1415692424000L,1412841224000L});
  inputHandler.send(new Object[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",1415692424000L,1384156424000L});
  Thread.sleep(1000);
  Assert.assertEquals(3,count);
  Assert.assertTrue(eventArrived);
  executionPlanRuntime.shutdown();
}