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)