You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Sergey Soldatov (JIRA)" <ji...@apache.org> on 2017/11/17 09:49:11 UTC
[jira] [Resolved] (PHOENIX-4369) ArrayIndexOutOfBounds when
upserting to table using ROW_TIMESTAMP
[ https://issues.apache.org/jira/browse/PHOENIX-4369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergey Soldatov resolved PHOENIX-4369.
--------------------------------------
Resolution: Duplicate
> ArrayIndexOutOfBounds when upserting to table using ROW_TIMESTAMP
> -----------------------------------------------------------------
>
> Key: PHOENIX-4369
> URL: https://issues.apache.org/jira/browse/PHOENIX-4369
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.10.0
> Environment: Ubuntu 16.04, JRE 1.8.0_102_x64
> Reporter: Alex Field
> Labels: SFDC
>
> Used this DDL to create a table which uses ROW_TIMESTAMP
> CREATE TABLE IF NOT EXISTS FOO (
> TENANT_ID CHAR(15) NOT NULL,
> PK_BAR VARCHAR(80) NOT NULL, -- NAME
> PK_ROW_TIMESTAMP TIMESTAMP NOT NULL,
> FIZZ TIMESTAMP,
> BUZZ VARCHAR(255), -- LABEL
> BAZZ CHAR(15), -- VERSION_ID
> QUX INTEGER,
> HODOR VARCHAR(100000) -- A json blob.
> CONSTRAINT PK PRIMARY KEY (TENANT_ID, PK_BAR, PK_ROW_TIMESTAMP ROW_TIMESTAMP)
> ) VERSIONS=3,MULTI_TENANT=true,REPLICATION_SCOPE=1
> Upsert causes this exception:
> java.lang.ArrayIndexOutOfBoundsException: 8
> at org.apache.phoenix.execute.MutationState.getNewRowKeyWithRowTimestamp(MutationState.java:554)
> at org.apache.phoenix.execute.MutationState.generateMutations(MutationState.java:640)
> at org.apache.phoenix.execute.MutationState.addRowMutations(MutationState.java:572)
> at org.apache.phoenix.execute.MutationState.send(MutationState.java:1003)
> at org.apache.phoenix.execute.MutationState.send(MutationState.java:1469)
> at org.apache.phoenix.execute.MutationState.commit(MutationState.java:1301)
> at org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:533)
> at org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:530)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at org.apache.phoenix.jdbc.PhoenixConnection.commit(PhoenixConnection.java:530)
> Here's a copy of the test driver:
> @Test
> public void testSomething() throws Exception {
> String sql = "UPSERT INTO FOO (BUZZ, BAZZ, PK_BAR) VALUES (?, ?, ?)";
> try (PreparedStatement stmt = conn.prepareStatement(sql)) {
> stmt.setString(1, "blah blah");
> stmt.setString(2, null);
> stmt.setString(3, "blah");
> stmt.execute();
> conn.commit();
> }
> }
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)