Github user robertdale commented on the issue:
https://github.com/apache/tinkerpop/pull/745
@mpollmeier Sorry, I thought that `putIfAbsent()` returned the current map
but it returns old mapping or `null` hence the `NPEs`. Should be:
```java
protected void put(final String key, final Object value, final T
element) {
Map<Object, Set<T>> keyMap = this.index.get(key);
if (null == keyMap) {
Map<Object, Set<T>> tmpMap = new ConcurrentHashMap<>();
this.index.putIfAbsent(key, tmpMap);
keyMap = this.index.get(key);
}
Set<T> objects = keyMap.get(value);
if (null == objects) {
Set<T> tmpObjects = ConcurrentHashMap.newKeySet();
keyMap.putIfAbsent(value, tmpObjects);
objects = keyMap.get(value);
}
objects.add(element);
}
```
---