Seaching through the source for SortedKeyIterator shows that it is
used in 15 files. The FindMax class seems to be a fine example of its
use:

    IteratorSetting cfg = new IteratorSetting(Integer.MAX_VALUE,
SortedKeyIterator.class);
    scanner.addScanIterator(cfg);

That seems simple enough but when I change my code according I get a message:

  Exception in thread "main" java.lang.IllegalArgumentException:
Iterator name is already in use SKI98
        at 
org.apache.accumulo.core.client.impl.ScannerOptions.addScanIterator(ScannerOptions.java:67)
        at com.codebits.accumulo.RowIdIterator.<init>(RowIdIterator.java:22)

My code change was trivial:

        Iterator<Entry<Key, Value>> iterator = null;

        public RowIdIterator(Scanner scanner) {
                super();
                this.scanner = scanner;
            IteratorSetting cfg = new IteratorSetting(Integer.MAX_VALUE,
"SKI98", SortedKeyIterator.class);
22 -->      scanner.addScanIterator(cfg);
                this.iterator = scanner.iterator();
        }

        @Override
        public String next() {
                Entry<Key, Value> entry = iterator.next();
                return entry.getKey().getRow().toString();
        }

As you can see its name is unlikely to be in use.

Reply via email to