Program: 34588
Project: 34588
Buggy source:
/** 
 * Update the configured value of the writeInterval attribute while the server is running.
 */
@Test public void testWriteInterval() throws Exception {
  List<String> session=new ArrayList<>();
  FATSuite.run(server,APP_NAME + '/' + SERVLET_NAME,"String_Node_Str",session);
  FATSuite.run(server,APP_NAME + '/' + SERVLET_NAME,"String_Node_Str",session);
  ServerConfiguration config=server.getServerConfiguration();
  HttpSessionCache httpSessionCache=config.getHttpSessionCaches().get(0);
  httpSessionCache.setWriteFrequency("String_Node_Str");
  httpSessionCache.setWriteInterval("String_Node_Str");
  server.setMarkToEndOfLog();
  server.updateServerConfiguration(config);
  server.waitForConfigUpdateInLogUsingMark(APP_NAMES,EMPTY_RECYCLE_LIST);
  String previousValue="String_Node_Str";
  String newValue=null;
  for (int numAttempts=1; numAttempts < 20; numAttempts++) {
    newValue=numAttempts + "String_Node_Str";
    FATSuite.run(server,APP_NAME + '/' + SERVLET_NAME,"String_Node_Str" + newValue,session);
    String response=FATSuite.run(server,APP_NAME + '/' + SERVLET_NAME,"String_Node_Str",session);
    int start=response.indexOf("String_Node_Str") + 19;
    String cachedValue=response.substring(start,response.indexOf(']',start));
    if (!previousValue.equals(cachedValue))     break;
    previousValue=newValue;
  }
  assertFalse("String_Node_Str" + "String_Node_Str",previousValue.equals(newValue));
  String response=FATSuite.run(server,APP_NAME + '/' + SERVLET_NAME,"String_Node_Str",session);
  int start=response.indexOf("String_Node_Str") + 13;
  String sessionId=response.substring(start,response.indexOf(']',start));
  FATSuite.run(server,APP_NAME + '/' + SERVLET_NAME,"String_Node_Str" + newValue + "String_Node_Str"+ sessionId,null);
  FATSuite.run(server,APP_NAME + '/' + SERVLET_NAME,"String_Node_Str",session);
}

Fixed version (ground truth):
/** 
 * Update the configured value of the writeInterval attribute while the server is running.
 */
@Test public void testWriteInterval() throws Exception {
  List<String> session=new ArrayList<>();
  run("String_Node_Str",session);
  run("String_Node_Str",session);
  ServerConfiguration config=server.getServerConfiguration();
  HttpSessionCache httpSessionCache=config.getHttpSessionCaches().get(0);
  httpSessionCache.setWriteFrequency("String_Node_Str");
  httpSessionCache.setWriteInterval("String_Node_Str");
  server.setMarkToEndOfLog();
  server.updateServerConfiguration(config);
  server.waitForConfigUpdateInLogUsingMark(APP_NAMES,EMPTY_RECYCLE_LIST);
  String previousValue="String_Node_Str";
  String newValue=null;
  for (int numAttempts=1; numAttempts < 20; numAttempts++) {
    newValue=numAttempts + "String_Node_Str";
    run("String_Node_Str" + newValue,session);
    String response=run("String_Node_Str",session);
    int start=response.indexOf("String_Node_Str") + 19;
    String cachedValue=response.substring(start,response.indexOf(']',start));
    if (!previousValue.equals(cachedValue))     break;
    previousValue=newValue;
  }
  assertFalse("String_Node_Str" + "String_Node_Str",previousValue.equals(newValue));
  String response=run("String_Node_Str",session);
  int start=response.indexOf("String_Node_Str") + 13;
  String sessionId=response.substring(start,response.indexOf(']',start));
  run("String_Node_Str" + newValue + "String_Node_Str"+ sessionId,null);
  run("String_Node_Str",session);
}