Program: 160236
Project: 160236
Buggy source:
public void testViewWithCompoundKeys() throws CouchbaseLiteException {
  View view=database.getView("String_Node_Str");
  if (view != null) {
    view.setMap(new Mapper(){
      @Override public void map(      Map<String,Object> document,      Emitter emitter){
        if (document.get("String_Node_Str") != null && "String_Node_Str".equals(document.get("String_Node_Str")) && "String_Node_Str".equals(document.get("String_Node_Str")) && document.get("String_Node_Str") != null && document.get("String_Node_Str") != null && document.get("String_Node_Str") == null && document.get("String_Node_Str") != null) {
          HashMap<String,Object> value=new HashMap<String,Object>();
          value.put("String_Node_Str",document.get("String_Node_Str"));
          emitter.emit(Arrays.asList(document.get("String_Node_Str"),document.get("String_Node_Str")),null);
        }
      }
    }
,"String_Node_Str");
  }
  database.runInTransaction(new TransactionalTask(){
    @Override public boolean run(){
      try {
        for (int i=0; i < 500; i++) {
          Map<String,Object> props=new HashMap<String,Object>();
          props.put("String_Node_Str",new Date());
          props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",i));
          props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",i));
          props.put("String_Node_Str","String_Node_Str");
          props.put("String_Node_Str","String_Node_Str");
          props.put("String_Node_Str","String_Node_Str");
          props.put("String_Node_Str","String_Node_Str");
          Document doc=database.createDocument();
          doc.putProperties(props);
        }
        Map<String,Object> props=new HashMap<String,Object>();
        props.put("String_Node_Str",new Date());
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str","String_Node_Str");
        props.put("String_Node_Str","String_Node_Str");
        Document doc=database.createDocument();
        doc.putProperties(props);
        props=new HashMap<String,Object>();
        props.put("String_Node_Str",new Date());
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str","String_Node_Str");
        props.put("String_Node_Str","String_Node_Str");
        doc=database.createDocument();
        doc.putProperties(props);
        props=new HashMap<String,Object>();
        props.put("String_Node_Str",new Date());
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str","String_Node_Str");
        props.put("String_Node_Str","String_Node_Str");
        doc=database.createDocument();
        doc.putProperties(props);
      }
 catch (      CouchbaseLiteException e) {
        Log.e(TAG,"String_Node_Str",e);
        return false;
      }
      return true;
    }
  }
);
  for (int i=0; i < 2; i++) {
    String deviceIMEI="String_Node_Str";
    Query orderedQuery=view.createQuery();
    orderedQuery.setStartKey(Arrays.asList(deviceIMEI,null));
    orderedQuery.setEndKey(Arrays.asList(deviceIMEI,new HashMap<String,Object>()));
    Log.v(TAG,String.format(Locale.ENGLISH,"String_Node_Str"));
    QueryEnumerator results=orderedQuery.run();
    int counter=0;
    for (Iterator<QueryRow> it=results; it.hasNext(); ) {
      QueryRow row=it.next();
      Log.v(TAG,String.format(Locale.ENGLISH,"String_Node_Str",counter,row.getDocumentId(),"String_Node_Str"));
      counter++;
    }
    assertEquals(500,counter);
    Log.v(TAG,String.format(Locale.ENGLISH,"String_Node_Str"));
  }
}

Fixed version (ground truth):
public void testViewWithCompoundKeys() throws CouchbaseLiteException {
  View view=database.getView("String_Node_Str");
  if (view != null) {
    view.setMap(new Mapper(){
      @Override public void map(      Map<String,Object> document,      Emitter emitter){
        if (document.get("String_Node_Str") != null && "String_Node_Str".equals(document.get("String_Node_Str")) && "String_Node_Str".equals(document.get("String_Node_Str")) && document.get("String_Node_Str") != null && document.get("String_Node_Str") != null && document.get("String_Node_Str") == null && document.get("String_Node_Str") != null) {
          HashMap<String,Object> value=new HashMap<String,Object>();
          value.put("String_Node_Str",document.get("String_Node_Str"));
          emitter.emit(Arrays.asList(document.get("String_Node_Str"),document.get("String_Node_Str")),null);
        }
      }
    }
,"String_Node_Str");
  }
  final int num_docs=200;
  database.runInTransaction(new TransactionalTask(){
    @Override public boolean run(){
      try {
        for (int i=0; i < num_docs; i++) {
          Map<String,Object> props=new HashMap<String,Object>();
          props.put("String_Node_Str",new Date());
          props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",i));
          props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",i));
          props.put("String_Node_Str","String_Node_Str");
          props.put("String_Node_Str","String_Node_Str");
          props.put("String_Node_Str","String_Node_Str");
          props.put("String_Node_Str","String_Node_Str");
          Document doc=database.createDocument();
          doc.putProperties(props);
        }
        Map<String,Object> props=new HashMap<String,Object>();
        props.put("String_Node_Str",new Date());
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str","String_Node_Str");
        props.put("String_Node_Str","String_Node_Str");
        Document doc=database.createDocument();
        doc.putProperties(props);
        props=new HashMap<String,Object>();
        props.put("String_Node_Str",new Date());
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str","String_Node_Str");
        props.put("String_Node_Str","String_Node_Str");
        doc=database.createDocument();
        doc.putProperties(props);
        props=new HashMap<String,Object>();
        props.put("String_Node_Str",new Date());
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str",String.format(Locale.ENGLISH,"String_Node_Str",1));
        props.put("String_Node_Str","String_Node_Str");
        props.put("String_Node_Str","String_Node_Str");
        doc=database.createDocument();
        doc.putProperties(props);
      }
 catch (      CouchbaseLiteException e) {
        Log.e(TAG,"String_Node_Str",e);
        return false;
      }
      return true;
    }
  }
);
  for (int i=0; i < 2; i++) {
    String deviceIMEI="String_Node_Str";
    Query orderedQuery=view.createQuery();
    orderedQuery.setStartKey(Arrays.asList(deviceIMEI,null));
    orderedQuery.setEndKey(Arrays.asList(deviceIMEI,new HashMap<String,Object>()));
    Log.v(TAG,String.format(Locale.ENGLISH,"String_Node_Str"));
    QueryEnumerator results=orderedQuery.run();
    int counter=0;
    for (Iterator<QueryRow> it=results; it.hasNext(); ) {
      QueryRow row=it.next();
      Log.v(TAG,String.format(Locale.ENGLISH,"String_Node_Str",counter,row.getDocumentId(),"String_Node_Str"));
      counter++;
    }
    assertEquals(num_docs,counter);
    Log.v(TAG,String.format(Locale.ENGLISH,"String_Node_Str"));
  }
}