You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Samarth Jain (JIRA)" <ji...@apache.org> on 2014/06/11 23:43:01 UTC

[jira] [Resolved] (PHOENIX-956) Connection properties ignored

     [ https://issues.apache.org/jira/browse/PHOENIX-956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Samarth Jain resolved PHOENIX-956.
----------------------------------

    Resolution: Fixed

Tests are passing fine now.

> Connection properties ignored
> -----------------------------
>
>                 Key: PHOENIX-956
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-956
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.0.0
>         Environment: Win 7
>            Reporter: Cristian Armaselu
>            Assignee: Samarth Jain
>             Fix For: 5.0.0, 3.1, 4.1
>
>         Attachments: PHOENIX-956_v2.patch
>
>
> Connection opened as:
>             Properties connectionProperties = new Properties();
>             connectionProperties.setProperty(QueryServices.MAX_MUTATION_SIZE_ATTRIB,"10000000");
>             connectionProperties.setProperty(QueryServices.IMMUTABLE_ROWS_ATTRIB,"10000000");
>             connection = DriverManager.getConnection("jdbc:phoenix:ulvdtlchd01:2181",connectionProperties);
> Executing:
> preparedStatement = connection.prepareStatement("upsert into cristi_test(id,name,other) values(?,?,?)");
> for (int i = 0; i < 10000000; i++) {
>                 preparedStatement.setString(1, "AAAA" + i);
>                 preparedStatement.setString(2, "BBBB" + i);
>                 preparedStatement.setString(3, "cccc" + i);
>                 preparedStatement.execute();
> }
> Getting:
> java.lang.IllegalArgumentException: MutationState size of 500001 is bigger than max allowed size of 500000
> 	at org.apache.phoenix.execute.MutationState.throwIfTooBig(MutationState.java:114)
> 	at org.apache.phoenix.execute.MutationState.join(MutationState.java:163)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:227)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:185)
> 	at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:146)
> 	at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:151)
> Because:
> In PhoenixConnection constructor :
> this.info = info == null ? new Properties() : new Properties(info);
> info passed to the constructor is size 3
> the above is not copying the properties so the below is executed
>         if (this.info.isEmpty() && tenantId == null) {
>             this.services = services;
> since this.info.isEmpty() is true
> That means the passed info connection properties are ignored and not wrapped in the DelegateConnectionQueryServices which follows the other branch of the if above



--
This message was sent by Atlassian JIRA
(v6.2#6252)