[ https://issues.apache.org/jira/browse/PHOENIX-577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gabriel Reid resolved PHOENIX-577. ---------------------------------- Resolution: Fixed Bulk resolve of closed issues imported from GitHub. This status was reached by first re-opening all closed imported issues and then resolving them in bulk. > NullPointerException in IndexMaintainer > --------------------------------------- > > Key: PHOENIX-577 > URL: https://issues.apache.org/jira/browse/PHOENIX-577 > Project: Phoenix > Issue Type: Task > Affects Versions: 2.1.0-Release > Reporter: Artur Denysenko > Labels: bug > > I work with UUID 16 bytes columns: > ```sql > CREATE TABLE IF NOT EXISTS log ( > id BINARY(16) NOT NULL PRIMARY KEY, > c BINARY(16) NOT NULL, > t BINARY(16) NOT NULL > e VARCHAR(255) NOT NULL) > IMMUTABLE_ROWS=true; > CREATE INDEX IF NOT EXISTS log_idx_t ON log(t); > CREATE INDEX IF NOT EXISTS log_idx_c ON log(c); > ``` > I have this exception: > ``` > java.lang.NullPointerException > at > com.salesforce.phoenix.index.IndexMaintainer.buildRowKey(IndexMaintainer.java:269) > at > com.salesforce.phoenix.index.IndexMaintainer.buildUpdateMutation(IndexMaintainer.java:306) > at > com.salesforce.phoenix.util.IndexUtil.generateIndexData(IndexUtil.java:171) > at > com.salesforce.phoenix.execute.MutationState$1.next(MutationState.java:203) > at > com.salesforce.phoenix.execute.MutationState$1.next(MutationState.java:186) > at > com.salesforce.phoenix.execute.MutationState.commit(MutationState.java:335) > at > com.salesforce.phoenix.jdbc.PhoenixConnection.commit(PhoenixConnection.java:249) > at > com.salesforce.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:187) > at > com.salesforce.phoenix.jdbc.PhoenixStatement.access$600(PhoenixStatement.java:74) > at > com.salesforce.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.executeUpdate(PhoenixStatement.java:217) > at > com.salesforce.phoenix.jdbc.PhoenixPreparedStatement.executeUpdate(PhoenixPreparedStatement.java:103) > ``` > And it happens then we try to use null [indexColumnType] resulted from > [IndexUtil.getIndexColumnDataType(isNullable=true, dataColumnType="BYTE")] > ```java > boolean isNullable = true; > ... > if (dataPkPosition[i] == -1) { > dataColumnType = indexedColumnTypes.get(j); > ImmutableBytesPtr value = valueGetter.getLatestValue(iterator.next()); > if (value == null) { > ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); > } else { > ptr.set(value.copyBytesIfNecessary()); > } > j++; > } else { > // does not execute in our case > } > PDataType indexColumnType = IndexUtil.getIndexColumnDataType(isNullable, > dataColumnType); > ``` -- This message was sent by Atlassian JIRA (v6.2#6252)