Github user nickwallen commented on a diff in the pull request:

    https://github.com/apache/metron/pull/1190#discussion_r222420697
  
    --- Diff: 
metron-platform/metron-indexing/src/main/java/org/apache/metron/indexing/dao/MultiIndexDao.java
 ---
    @@ -282,4 +276,27 @@ public Document getLatest(final String guid, String 
sensorType) throws IOExcepti
       public List<IndexDao> getIndices() {
         return indices;
       }
    +
    +  private Document getDocument(List<DocumentContainer> documentContainers) 
throws IOException {
    +    Document ret = null;
    +    List<String> error = new ArrayList<>();
    +    for(DocumentContainer dc : documentContainers) {
    +      if(dc.getException().isPresent()) {
    +        Throwable e = dc.getException().get();
    +        error.add(e.getMessage() + "\n" + ExceptionUtils.getStackTrace(e));
    +      }
    +      else {
    +        if(dc.getDocument().isPresent()) {
    +          Document d = dc.getDocument().get();
    +          if(ret == null || ret.getTimestamp() < d.getTimestamp()) {
    +            ret = d;
    +          }
    +        }
    +      }
    +    }
    --- End diff --
    
    Hmm. Interesting.  I don't really understand what happens in that else 
condition then.  
    
    The OCD side of me wants to make sure I understand this to ensure there is 
not a pre-existing bug.  But at the same time I can't fault you for this.  All 
you did was refactor this code out into a method.
    
    It seems that a `DocumentContainer` should either have an exception 
(`dc.getException().isPresent()`) or it should have a document 
(`dc.getDocument.isPresent()`).  We would hit the else when neither of those 
are the case.  So under what conditions would a `DocumentContainer` have 
neither of those?  
    
    I guess a `null` Document or null Throwable is added to the 
`DocumentContainer`?  I hope this is what we expect to happen.
    
    ```
    if(dc.getException().isPresent()) { 
      ..
    } else if(dc.getDocument.isPresent()) {
      ..
    } else {
     // when does this occur? what do we expect to happen?
    }
    ```


---

Reply via email to