pawel-bugalski-dynatrace commented on a change in pull request #2429:
URL: https://github.com/apache/lucene-solr/pull/2429#discussion_r583527169



##########
File path: lucene/core/src/java/org/apache/lucene/util/BytesRefHash.java
##########
@@ -31,18 +31,21 @@
  * to the id is encapsulated inside {@link BytesRefHash} and is guaranteed to 
be increased for each
  * added {@link BytesRef}.
  *
+ * <p><strong>Note that this implementation is not synchronized.</strong> If 
multiple threads access
+ * a {@link BytesRefHash} instance concurrently, and at least one of the 
threads modifies it
+ * structurally, it <i>must</i> be synchronized externally. (A structural 
modification is any
+ * operation on the map except operations explicitly listed in {@link 
UnmodifiableBytesRefHash}
+ * interface).
+ *
  * <p>Note: The maximum capacity {@link BytesRef} instance passed to {@link 
#add(BytesRef)} must not
  * be longer than {@link ByteBlockPool#BYTE_BLOCK_SIZE}-2. The internal 
storage is limited to 2GB
  * total byte storage.
  *
  * @lucene.internal
  */
-public final class BytesRefHash implements Accountable {
+public final class BytesRefHash implements Accountable, 
UnmodifiableBytesRefHash {

Review comment:
       Definitely. I've replaced interface with a class that wraps 
BytesRefHash. For me it looks much better now, but I wander what you think 
about it.




----------------------------------------------------------------
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.

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

Reply via email to