[
https://issues.apache.org/jira/browse/PHOENIX-901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13950360#comment-13950360
]
Hudson commented on PHOENIX-901:
--------------------------------
SUCCESS: Integrated in Apache Phoenix - Branch:3.0 #59 (See
[https://builds.apache.org/job/Phoenix-3.0/59/])
PHOENIX-901 Ensure ConnectionQueryServices only initialized once (JamesTaylor)
(jamestaylor: rev efe25292f48dd1a925b26c6e32b74b1635bc8d38)
*
phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
*
phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionlessQueryServicesImpl.java
* phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDriver.java
PHOENIX-901 Ensure ConnectionQueryServices only initialized once (JamesTaylor)
(jamestaylor: rev 10235e6dbd08df59b3051f83890acdb2d33fbdfb)
*
phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionlessQueryServicesImpl.java
*
phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
> Ensure ConnectionQueryServices only initialized once
> ----------------------------------------------------
>
> Key: PHOENIX-901
> URL: https://issues.apache.org/jira/browse/PHOENIX-901
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: James Taylor
> Attachments: phoenix.patch, phoenix_2.patch, phoenix_3.patch,
> phoenix_4.patch
>
>
> We should call connectionQueryServices#init in the else block of this code:
> {code}
> @Override
> protected ConnectionQueryServices getConnectionQueryServices(String url,
> Properties info) throws SQLException {
> checkClosed();
> ConnectionInfo connInfo = ConnectionInfo.create(url);
> ConnectionInfo normalizedConnInfo =
> connInfo.normalize(getQueryServices().getProps());
> ConnectionQueryServices connectionQueryServices =
> connectionQueryServicesMap.get(normalizedConnInfo);
> if (connectionQueryServices == null) {
> if (normalizedConnInfo.isConnectionless()) {
> connectionQueryServices = new
> ConnectionlessQueryServicesImpl(getQueryServices());
> } else {
> connectionQueryServices = new
> ConnectionQueryServicesImpl(getQueryServices(), normalizedConnInfo);
> }
> connectionQueryServices.init(url, info);
> ConnectionQueryServices prevValue =
> connectionQueryServicesMap.putIfAbsent(normalizedConnInfo,
> connectionQueryServices);
> if (prevValue != null) {
> connectionQueryServices = prevValue;
> }
> }
> return connectionQueryServices;
> }
> {code}
> like this instead:
> {code}
> @Override
> protected ConnectionQueryServices getConnectionQueryServices(String url,
> Properties info) throws SQLException {
> checkClosed();
> ConnectionInfo connInfo = ConnectionInfo.create(url);
> ConnectionInfo normalizedConnInfo =
> connInfo.normalize(getQueryServices().getProps());
> ConnectionQueryServices connectionQueryServices =
> connectionQueryServicesMap.get(normalizedConnInfo);
> if (connectionQueryServices == null) {
> if (normalizedConnInfo.isConnectionless()) {
> connectionQueryServices = new
> ConnectionlessQueryServicesImpl(getQueryServices());
> } else {
> connectionQueryServices = new
> ConnectionQueryServicesImpl(getQueryServices(), normalizedConnInfo);
> }
> ConnectionQueryServices prevValue =
> connectionQueryServicesMap.putIfAbsent(normalizedConnInfo,
> connectionQueryServices);
> if (prevValue != null) {
> connectionQueryServices = prevValue;
> } else {
> connectionQueryServices.init(url, info);
> }
> }
> return connectionQueryServices;
> }
> {code}
> This has the potential to open multiple HConnections, but it's unclear if
> this causes harm, as the same, original ConnectionQueryService is returned
> and used.
--
This message was sent by Atlassian JIRA
(v6.2#6252)