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)