Program: 28713
Project: 28713
Buggy source:
@Test(dependsOnMethods={"String_Node_Str"}) public void incrementalStreamProcessorTest41() throws InterruptedException {
  LOG.info("String_Node_Str");
  SiddhiManager siddhiManager=new SiddhiManager();
  String stockStream="String_Node_Str" + "String_Node_Str";
  String query="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  SiddhiAppRuntime siddhiAppRuntime=siddhiManager.createSiddhiAppRuntime(stockStream + query);
  try {
    siddhiAppRuntime.addCallback("String_Node_Str",new QueryCallback(){
      @Override public void receive(      long timestamp,      Event[] inEvents,      Event[] removeEvents){
        if (inEvents != null) {
          EventPrinter.print(timestamp,inEvents,removeEvents);
          for (          Event event : inEvents) {
            inEventsList.add(event.getData());
            inEventCount.incrementAndGet();
          }
          eventArrived=true;
        }
        if (removeEvents != null) {
          EventPrinter.print(timestamp,inEvents,removeEvents);
          for (          Event event : removeEvents) {
            removeEventsList.add(event.getData());
            removeEventCount.incrementAndGet();
          }
        }
        eventArrived=true;
      }
    }
);
    InputHandler stockStreamInputHandler=siddhiAppRuntime.getInputHandler("String_Node_Str");
    InputHandler inputStreamInputHandler=siddhiAppRuntime.getInputHandler("String_Node_Str");
    siddhiAppRuntime.start();
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",50f,60f,90L,6,1496289950000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",70f,null,40L,10,1496289950000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",60f,44f,200L,56,1496289949000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",100f,null,200L,16,1496289949000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",100f,null,200L,26,1496289948000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",100f,null,200L,96,1496289948000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",900f,null,200L,60,1496289947000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",500f,null,200L,7,1496289947000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",400f,null,200L,9,1496289946000L});
    Thread.sleep(100);
    inputStreamInputHandler.send(new Object[]{"String_Node_Str",1,"String_Node_Str","String_Node_Str","String_Node_Str"});
    Thread.sleep(100);
    List<Object[]> expected=Arrays.asList(new Object[]{1496289947000L,600.0,1800.0,3600f,3L},new Object[]{1496289948000L,100.0,200.0,9600f,2L},new Object[]{1496289949000L,80.0,160.0,1600f,2L},new Object[]{1496289950000L,60.0,120.0,700f,2L});
    SiddhiTestHelper.waitForEvents(100,4,inEventCount,60000);
    AssertJUnit.assertEquals("String_Node_Str",true,SiddhiTestHelper.isEventsMatch(inEventsList,expected));
    AssertJUnit.assertEquals("String_Node_Str",true,SiddhiTestHelper.isEventsMatch(removeEventsList,expected));
    AssertJUnit.assertEquals("String_Node_Str",4,inEventCount.get());
    AssertJUnit.assertEquals("String_Node_Str",4,removeEventCount.get());
    AssertJUnit.assertEquals("String_Node_Str",true,eventArrived);
  }
  finally {
    siddhiAppRuntime.shutdown();
  }
}

Fixed version (ground truth):
@Test(dependsOnMethods={"String_Node_Str"}) public void incrementalStreamProcessorTest41() throws InterruptedException {
  LOG.info("String_Node_Str");
  SiddhiManager siddhiManager=new SiddhiManager();
  String stockStream="String_Node_Str" + "String_Node_Str";
  String query="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  SiddhiAppRuntime siddhiAppRuntime=siddhiManager.createSiddhiAppRuntime(stockStream + query);
  try {
    siddhiAppRuntime.addCallback("String_Node_Str",new QueryCallback(){
      @Override public void receive(      long timestamp,      Event[] inEvents,      Event[] removeEvents){
        if (inEvents != null) {
          EventPrinter.print(timestamp,inEvents,removeEvents);
          for (          Event event : inEvents) {
            inEventsList.add(event.getData());
            inEventCount.incrementAndGet();
          }
          eventArrived=true;
        }
        if (removeEvents != null) {
          EventPrinter.print(timestamp,inEvents,removeEvents);
          for (          Event event : removeEvents) {
            removeEventsList.add(event.getData());
            removeEventCount.incrementAndGet();
          }
        }
        eventArrived=true;
      }
    }
);
    InputHandler stockStreamInputHandler=siddhiAppRuntime.getInputHandler("String_Node_Str");
    InputHandler inputStreamInputHandler=siddhiAppRuntime.getInputHandler("String_Node_Str");
    siddhiAppRuntime.start();
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",50f,60f,90L,6,1496289950000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",70f,null,40L,10,1496289950000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",60f,44f,200L,56,1496289949000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",100f,null,200L,16,1496289949000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",100f,null,200L,26,1496289948000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",100f,null,200L,96,1496289948000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",900f,null,200L,60,1496289947000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",500f,null,200L,7,1496289947000L});
    stockStreamInputHandler.send(new Object[]{"String_Node_Str",400f,null,200L,9,1496289946000L});
    Thread.sleep(100);
    inputStreamInputHandler.send(new Object[]{"String_Node_Str",1,"String_Node_Str","String_Node_Str","String_Node_Str"});
    Thread.sleep(100);
    List<Object[]> expected=Arrays.asList(new Object[]{1496289947000L,600.0,1800.0,3600f,3L},new Object[]{1496289948000L,100.0,200.0,9600f,2L},new Object[]{1496289949000L,80.0,160.0,1600f,2L},new Object[]{1496289950000L,60.0,120.0,700f,2L});
    SiddhiTestHelper.waitForEvents(100,4,inEventCount,60000);
    AssertJUnit.assertEquals("String_Node_Str",true,SiddhiTestHelper.isEventsMatch(inEventsList,expected));
    AssertJUnit.assertEquals("String_Node_Str",true,SiddhiTestHelper.isEventsMatch(removeEventsList,expected));
    AssertJUnit.assertEquals("String_Node_Str",4,inEventCount.get());
    AssertJUnit.assertEquals("String_Node_Str",4,removeEventCount.get());
    AssertJUnit.assertEquals("String_Node_Str",true,eventArrived);
  }
  finally {
    siddhiAppRuntime.shutdown();
  }
}