jpountz commented on code in PR #11998: URL: https://github.com/apache/lucene/pull/11998#discussion_r1045086896
########## lucene/test-framework/src/java/org/apache/lucene/tests/index/AssertingLeafReader.java: ########## @@ -113,34 +116,84 @@ public Fields getTermVectors(int docID) throws IOException { return fields == null ? null : new AssertingFields(fields); } + @Override + public TermVectors termVectors() throws IOException { + return new AssertingTermVectors(super.termVectors()); + } + + @Override + public StoredFields storedFields() throws IOException { + return new AssertingStoredFields(super.storedFields()); + } + + /** Wraps a StoredFields but with additional asserts */ + public static class AssertingStoredFields extends StoredFields { + private final StoredFields in; + private final Thread creationThread = Thread.currentThread(); + + public AssertingStoredFields(StoredFields in) { + this.in = in; + } + + @Override + public void document(int docID, StoredFieldVisitor visitor) throws IOException { + assertThread("StoredFields", creationThread); + in.document(docID, visitor); + } + } + + /** Wraps a TermVectors but with additional asserts */ + public static class AssertingTermVectors extends TermVectors { + private final TermVectors in; + private final Thread creationThread = Thread.currentThread(); + + public AssertingTermVectors(TermVectors in) { + this.in = in; + } + + @Override + public Fields get(int doc) throws IOException { + assertThread("TermVectors", creationThread); + Fields fields = in.get(doc); + return fields == null ? null : new AssertingFields(fields); + } + } + /** Wraps a Fields but with additional asserts */ public static class AssertingFields extends FilterFields { + private final Thread creationThread = Thread.currentThread(); Review Comment: +1 to check Terms and Fields too. Most instances returned by codecs should be thread-safe but it's still good to make sure consumers don't share them across threads for consistency with other codec APIs. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org