git commit: Work around initialization problem

2014-05-22 Thread slebresne
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 1147ee3a8 - 36cc02ca7


Work around initialization problem


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/36cc02ca
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/36cc02ca
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/36cc02ca

Branch: refs/heads/cassandra-2.1
Commit: 36cc02ca76fa11b6b1d2cb24fb068d2a5dfaa842
Parents: 1147ee3
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Thu May 22 16:02:23 2014 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Thu May 22 16:02:23 2014 +0200

--
 .../apache/cassandra/cql3/QueryProcessor.java   | 46 +---
 1 file changed, 31 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/36cc02ca/src/java/org/apache/cassandra/cql3/QueryProcessor.java
--
diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java 
b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
index fca9c42..fd6e6ce 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -82,7 +82,6 @@ public class QueryProcessor implements QueryHandler
 // A map for prepared statements used internally (which we don't want to 
mix with user statement, in particular we don't
 // bother with expiration on those.
 private static final ConcurrentMapString, ParsedStatement.Prepared 
internalStatements = new ConcurrentHashMap();
-private static final QueryState internalQueryState;
 
 static
 {
@@ -95,16 +94,33 @@ public class QueryProcessor implements QueryHandler
.weigher(thriftMemoryUsageWeigher)
.build();
 
-ClientState state = ClientState.forInternalCalls();
-try
-{
-state.setKeyspace(Keyspace.SYSTEM_KS);
-}
-catch (InvalidRequestException e)
+}
+
+// Work aound initialization dependency
+private static enum InternalStateInstance
+{
+INSTANCE;
+
+private final QueryState queryState;
+
+InternalStateInstance()
 {
-throw new RuntimeException();
+ClientState state = ClientState.forInternalCalls();
+try
+{
+state.setKeyspace(Keyspace.SYSTEM_KS);
+}
+catch (InvalidRequestException e)
+{
+throw new RuntimeException();
+}
+this.queryState = new QueryState(state);
 }
-internalQueryState = new QueryState(state);
+}
+
+private static QueryState internalQueryState()
+{
+return InternalStateInstance.INSTANCE.queryState;
 }
 
 private QueryProcessor()
@@ -233,8 +249,8 @@ public class QueryProcessor implements QueryHandler
 return prepared;
 
 // Note: if 2 threads prepare the same query, we'll live so don't 
bother synchronizing
-prepared = parseStatement(query, internalQueryState);
-prepared.statement.validate(internalQueryState.getClientState());
+prepared = parseStatement(query, internalQueryState());
+prepared.statement.validate(internalQueryState().getClientState());
 internalStatements.putIfAbsent(query, prepared);
 return prepared;
 }
@@ -244,7 +260,7 @@ public class QueryProcessor implements QueryHandler
 try
 {
 ParsedStatement.Prepared prepared = prepareInternal(query);
-ResultMessage result = 
prepared.statement.executeInternal(internalQueryState, 
makeInternalOptions(prepared, values));
+ResultMessage result = 
prepared.statement.executeInternal(internalQueryState(), 
makeInternalOptions(prepared, values));
 if (result instanceof ResultMessage.Rows)
 return 
UntypedResultSet.create(((ResultMessage.Rows)result).result);
 else
@@ -286,9 +302,9 @@ public class QueryProcessor implements QueryHandler
 {
 try
 {
-ParsedStatement.Prepared prepared = parseStatement(query, 
internalQueryState);
-prepared.statement.validate(internalQueryState.getClientState());
-ResultMessage result = 
prepared.statement.executeInternal(internalQueryState, 
makeInternalOptions(prepared, values));
+ParsedStatement.Prepared prepared = parseStatement(query, 
internalQueryState());
+prepared.statement.validate(internalQueryState().getClientState());
+ResultMessage result = 
prepared.statement.executeInternal(internalQueryState(), 
makeInternalOptions(prepared, values));
 if (result instanceof 

[1/4] git commit: Work around initialization problem

2014-05-22 Thread brandonwilliams
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 36cc02ca7 - 9bd388780
  refs/heads/trunk 5f643ffcc - 864865da9


Work around initialization problem


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/36cc02ca
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/36cc02ca
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/36cc02ca

Branch: refs/heads/trunk
Commit: 36cc02ca76fa11b6b1d2cb24fb068d2a5dfaa842
Parents: 1147ee3
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Thu May 22 16:02:23 2014 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Thu May 22 16:02:23 2014 +0200

--
 .../apache/cassandra/cql3/QueryProcessor.java   | 46 +---
 1 file changed, 31 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/36cc02ca/src/java/org/apache/cassandra/cql3/QueryProcessor.java
--
diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java 
b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
index fca9c42..fd6e6ce 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -82,7 +82,6 @@ public class QueryProcessor implements QueryHandler
 // A map for prepared statements used internally (which we don't want to 
mix with user statement, in particular we don't
 // bother with expiration on those.
 private static final ConcurrentMapString, ParsedStatement.Prepared 
internalStatements = new ConcurrentHashMap();
-private static final QueryState internalQueryState;
 
 static
 {
@@ -95,16 +94,33 @@ public class QueryProcessor implements QueryHandler
.weigher(thriftMemoryUsageWeigher)
.build();
 
-ClientState state = ClientState.forInternalCalls();
-try
-{
-state.setKeyspace(Keyspace.SYSTEM_KS);
-}
-catch (InvalidRequestException e)
+}
+
+// Work aound initialization dependency
+private static enum InternalStateInstance
+{
+INSTANCE;
+
+private final QueryState queryState;
+
+InternalStateInstance()
 {
-throw new RuntimeException();
+ClientState state = ClientState.forInternalCalls();
+try
+{
+state.setKeyspace(Keyspace.SYSTEM_KS);
+}
+catch (InvalidRequestException e)
+{
+throw new RuntimeException();
+}
+this.queryState = new QueryState(state);
 }
-internalQueryState = new QueryState(state);
+}
+
+private static QueryState internalQueryState()
+{
+return InternalStateInstance.INSTANCE.queryState;
 }
 
 private QueryProcessor()
@@ -233,8 +249,8 @@ public class QueryProcessor implements QueryHandler
 return prepared;
 
 // Note: if 2 threads prepare the same query, we'll live so don't 
bother synchronizing
-prepared = parseStatement(query, internalQueryState);
-prepared.statement.validate(internalQueryState.getClientState());
+prepared = parseStatement(query, internalQueryState());
+prepared.statement.validate(internalQueryState().getClientState());
 internalStatements.putIfAbsent(query, prepared);
 return prepared;
 }
@@ -244,7 +260,7 @@ public class QueryProcessor implements QueryHandler
 try
 {
 ParsedStatement.Prepared prepared = prepareInternal(query);
-ResultMessage result = 
prepared.statement.executeInternal(internalQueryState, 
makeInternalOptions(prepared, values));
+ResultMessage result = 
prepared.statement.executeInternal(internalQueryState(), 
makeInternalOptions(prepared, values));
 if (result instanceof ResultMessage.Rows)
 return 
UntypedResultSet.create(((ResultMessage.Rows)result).result);
 else
@@ -286,9 +302,9 @@ public class QueryProcessor implements QueryHandler
 {
 try
 {
-ParsedStatement.Prepared prepared = parseStatement(query, 
internalQueryState);
-prepared.statement.validate(internalQueryState.getClientState());
-ResultMessage result = 
prepared.statement.executeInternal(internalQueryState, 
makeInternalOptions(prepared, values));
+ParsedStatement.Prepared prepared = parseStatement(query, 
internalQueryState());
+prepared.statement.validate(internalQueryState().getClientState());
+ResultMessage result = 
prepared.statement.executeInternal(internalQueryState(), 
makeInternalOptions(prepared, values));