[ https://issues.apache.org/jira/browse/PHOENIX-956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13987287#comment-13987287
]
James Taylor commented on PHOENIX-956:
--------------------------------------
+1 - thanks for the quick turnaround on this fix, [~samarth.jain@gmail.com], and thanks for
reporting the issue, [~cristian_armaselu].
> 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
> 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)
|