JanusGraph/janusgraph

updateIndex() should make error cases easier to understand

Open

#1.378 aberto em 14 de jan. de 2019

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)Java (1.137 forks)batch import
help wantedkind/enhancement

Métricas do repositório

Stars
 (4.985 stars)
Métricas de merge de PR
 (Mesclagem média 3d 18h) (12 fundiu PRs em 30d)

Description

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

Guia do colaborador