Program: 29101
Project: 29101
Buggy source:
@Test public void testToXMLFunctionExtension() throws InterruptedException {
  log.info("String_Node_Str");
  SiddhiManager siddhiManager=new SiddhiManager();
  siddhiManager.setExtension("String_Node_Str",ConcatFunctionExtension.class);
  String inStreamDefinition="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");
  ExecutionPlanRuntime executionPlanRuntime=siddhiManager.createExecutionPlanRuntime(inStreamDefinition + query);
  executionPlanRuntime.addCallback("String_Node_Str",new StreamCallback(){
    @Override public void receive(    Event[] inEvents){
      EventPrinter.print(inEvents);
      for (      Event event : inEvents) {
        count.incrementAndGet();
        if (count.get() == 1) {
          Assert.assertEquals("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str",event.getData(0));
          eventArrived=true;
        }
      }
    }
  }
);
  InputHandler inputHandler=executionPlanRuntime.getInputHandler("String_Node_Str");
  executionPlanRuntime.start();
  inputHandler.send(new Object[]{"String_Node_Str",100,100l});
  inputHandler.send(new Object[]{"String_Node_Str",200,200l});
  inputHandler.send(new Object[]{"String_Node_Str",300,200l});
  SiddhiTestHelper.waitForEvents(100,3,count,60000);
  Assert.assertEquals(3,count.get());
  Assert.assertTrue(eventArrived);
  executionPlanRuntime.shutdown();
}

Fixed version (ground truth):
@Test public void testToXMLFunctionExtension() throws InterruptedException {
  log.info("String_Node_Str");
  SiddhiManager siddhiManager=new SiddhiManager();
  siddhiManager.setExtension("String_Node_Str",ConcatFunctionExtension.class);
  String inStreamDefinition="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");
  ExecutionPlanRuntime executionPlanRuntime=siddhiManager.createExecutionPlanRuntime(inStreamDefinition + query);
  executionPlanRuntime.addCallback("String_Node_Str",new StreamCallback(){
    @Override public void receive(    Event[] inEvents){
      EventPrinter.print(inEvents);
      for (      Event event : inEvents) {
        count.incrementAndGet();
        if (count.get() == 1) {
          try {
            Assert.assertEquals(true,new XMLComparator().compare(AXIOMUtil.stringToOM("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),AXIOMUtil.stringToOM((String)event.getData(0))));
          }
 catch (          XMLStreamException e) {
            log.error("String_Node_Str" + e.getMessage(),e);
          }
catch (          XMLComparisonException e) {
            log.error("String_Node_Str" + e.getMessage(),e);
          }
          eventArrived=true;
        }
      }
    }
  }
);
  InputHandler inputHandler=executionPlanRuntime.getInputHandler("String_Node_Str");
  executionPlanRuntime.start();
  inputHandler.send(new Object[]{"String_Node_Str",100,100l});
  inputHandler.send(new Object[]{"String_Node_Str",200,200l});
  inputHandler.send(new Object[]{"String_Node_Str",300,200l});
  SiddhiTestHelper.waitForEvents(100,3,count,60000);
  Assert.assertEquals(3,count.get());
  Assert.assertTrue(eventArrived);
  executionPlanRuntime.shutdown();
}