Merge branch 'stable-2.12'

* stable-2.12:
  Make VelocityRuntimeProvider singleton, not RuntimeInstance
  Throw QueryParseException if the created phrase query is null

Change-Id: I2ca604abd6bc0c14b95ea67fee4e63f8088621ca
diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/QueryBuilder.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/QueryBuilder.java
index ab06edc..a993b49 100644
--- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/QueryBuilder.java
+++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/QueryBuilder.java
@@ -241,7 +241,12 @@
       throw new QueryParseException(
           "Full-text search over empty string not supported");
     }
-    return queryBuilder.createPhraseQuery(p.getField().getName(), value);
+    Query query = queryBuilder.createPhraseQuery(p.getField().getName(), value);
+    if (query == null) {
+      throw new QueryParseException(
+          "Cannot create full-text query with value: " + value);
+    }
+    return query;
   }
 
   public int toIndexTimeInMinutes(Date ts) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java b/gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java
index e80c613..7ef964c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java
@@ -271,8 +271,7 @@
     bind(ApprovalsUtil.class);
 
     bind(RuntimeInstance.class)
-        .toProvider(VelocityRuntimeProvider.class)
-        .in(SINGLETON);
+        .toProvider(VelocityRuntimeProvider.class);
     bind(FromAddressGenerator.class).toProvider(
         FromAddressGeneratorProvider.class).in(SINGLETON);
     bind(Boolean.class).annotatedWith(DisableReverseDnsLookup.class)
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/VelocityRuntimeProvider.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/VelocityRuntimeProvider.java
index 101aaac..3fdc550 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/VelocityRuntimeProvider.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/VelocityRuntimeProvider.java
@@ -18,6 +18,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 import com.google.inject.ProvisionException;
+import com.google.inject.Singleton;
 
 import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.runtime.RuntimeInstance;
@@ -30,6 +31,7 @@
 import java.util.Properties;
 
 /** Configures Velocity template engine for sending email. */
+@Singleton
 public class VelocityRuntimeProvider implements Provider<RuntimeInstance> {
   private final SitePaths site;