Program: 31265
Project: 31265
Buggy source:
@Test public void testGenericPublish() throws Exception {
  JournalWriter w=factory.writer(new JournalStructure("String_Node_Str"){
{
      $sym("String_Node_Str").index();
      $int("String_Node_Str");
      $double("String_Node_Str");
      $ts();
      partitionBy(PartitionType.DAY);
    }
  }
);
  JournalServer server=new JournalServer(new ServerConfig(){
{
      addNode(new ServerNode(1,"String_Node_Str"));
      setHeartbeatFrequency(100);
      setEnableMultiCast(false);
    }
  }
,factory);
  server.publish(w);
  server.start();
  final CountDownLatch ready=new CountDownLatch(1);
  JournalClient client=new JournalClient(new ClientConfig("String_Node_Str"){
{
      setEnableMultiCast(false);
    }
  }
,factory);
  client.subscribe(new JournalKey("String_Node_Str"),new JournalKey("String_Node_Str"),new TxListener(){
    @Override public void onCommit(){
      ready.countDown();
    }
    @Override public void onError(){
    }
  }
);
  client.start();
  Rnd rnd=new Rnd();
  for (int i=0; i < 100; i++) {
    JournalEntryWriter ew=w.entryWriter();
    ew.putSym(0,rnd.nextString(10));
    ew.putInt(1,rnd.nextInt());
    ew.putDouble(2,rnd.nextDouble());
    ew.append();
  }
  w.commit();
  Assert.assertTrue(ready.await(1,TimeUnit.SECONDS));
  StringSink sink=new StringSink();
  RecordSourcePrinter p=new RecordSourcePrinter(sink);
  p.printCursor(compiler.compileSource(factory,"String_Node_Str"),factory);
  final String expected="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"+ "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"+ "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"+ "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"+ "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"+ "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"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  Assert.assertEquals(expected,sink.toString());
  client.halt();
  server.halt();
}

Fixed version (ground truth):
@Test public void testGenericPublish() throws Exception {
  JournalWriter w=factory.writer(new JournalStructure("String_Node_Str"){
{
      $sym("String_Node_Str").index();
      $int("String_Node_Str");
      $double("String_Node_Str");
      $ts();
      partitionBy(PartitionType.DAY);
    }
  }
);
  JournalServer server=new JournalServer(new ServerConfig(){
{
      addNode(new ServerNode(1,"String_Node_Str"));
      setHeartbeatFrequency(100);
      setEnableMultiCast(false);
    }
  }
,factory);
  server.publish(w);
  server.start();
  final CountDownLatch ready=new CountDownLatch(1);
  JournalClient client=new JournalClient(new ClientConfig("String_Node_Str"){
{
      setEnableMultiCast(false);
    }
  }
,factory);
  client.subscribe(new JournalKey("String_Node_Str"),new JournalKey("String_Node_Str"),new TxListener(){
    @Override public void onCommit(){
      ready.countDown();
    }
    @Override public void onError(){
    }
  }
);
  client.start();
  Rnd rnd=new Rnd();
  for (int i=0; i < 100; i++) {
    JournalEntryWriter ew=w.entryWriter();
    ew.putSym(0,rnd.nextString(10));
    ew.putInt(1,rnd.nextInt());
    ew.putDouble(2,rnd.nextDouble());
    ew.append();
  }
  w.commit();
  Assert.assertTrue(ready.await(1,TimeUnit.SECONDS));
  StringSink sink=new StringSink();
  RecordSourcePrinter p=new RecordSourcePrinter(sink);
  p.print(compiler.compileSource(factory,"String_Node_Str"),factory);
  final String expected="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"+ "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"+ "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"+ "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"+ "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"+ "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"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  Assert.assertEquals(expected,sink.toString());
  client.halt();
  server.halt();
}