JanusGraph/janusgraph

updateIndex() should make error cases easier to understand

Open

#1378 aperta il 14 gen 2019

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)Java (1137 fork)batch import
help wantedkind/enhancement

Metriche repository

Star
 (4985 star)
Metriche merge PR
 (Merge medio 3g 18h) (12 PR mergiate in 30 g)

Descrizione

ManagementSystem.updateIndex() returns null if the provided SchemaAction is not applicable for the current status of the index:

if (!updateAction.isApplicableStatus(schemaVertex.getStatus()))
    return null;

Source

This is confusing and the API docs also don't mention this behaviour:

/**
 * Updates the provided index according to the given {@link SchemaAction}
 *
 * @param index
 * @param updateAction
 * @return a future that completes when the index action is done
 */
IndexJobFuture updateIndex(Index index, SchemaAction updateAction);

The method should either throw an exception in this case or at least document this behaviour in the API docs.

When a user doesn't know about this behaviour, then all they're getting is a NullPointerException by calling get() on the returned IndexJobFuture (see #1359).

Guida contributor