Github user joshelser commented on a diff in the pull request:
https://github.com/apache/accumulo/pull/159#discussion_r88687963
--- Diff:
core/src/main/java/org/apache/accumulo/core/iterators/SortedKeyValueIterator.java
---
@@ -147,4 +147,13 @@
* if not supported.
*/
SortedKeyValueIterator<K,V> deepCopy(IteratorEnvironment env);
+
+ /**
+ * Closes the Iterator. This should be overridden by the implementing
class that has access to <tt>SortedKeyValueIterator source</tt> provided in the
--- End diff --
In advance, thanks for working with me on this. I know this is difficult.
> We don't want to say MUST since there may not be anything to close.
Isn't there always the `source` passed in via `init(...)` that should be
closed?
> I don't mention Exceptions because I wasn't sure what to say. Sometimes
we eat, log and continue and sometimes we throw. Do we have best practices for
handling exceptions?
I would expect this would be something that you would know what to do with
it :). You must have modified the code invoking `close()` on the iterator
stack, so I assumed this was something that you had thought through :)
> such as source provided in the init method
This is still not sitting right with me. It's still coming across as "well,
sometimes you need to close the `source`" without defining when that actually
is. Is the following equivalent to what you're trying to phrase: "If init is
called on this iterator, the provided `source` must be closed by this iterator"?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---