You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2019/08/11 15:50:02 UTC

[lucene-solr] branch master updated: SOLR-13568: Precommit fail Java var until 9x. Fail var...

This is an automated email from the ASF dual-hosted git repository.

erick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/master by this push:
     new f6f1b42  SOLR-13568: Precommit fail Java var until 9x. Fail var...
f6f1b42 is described below

commit f6f1b4244c40e5665b20a2a8ef9852c6dd827cb2
Author: Erick Erickson <Er...@gmail.com>
AuthorDate: Sun Aug 11 11:49:54 2019 -0400

    SOLR-13568: Precommit fail Java var until 9x. Fail var...
---
 lucene/tools/src/groovy/check-source-patterns.groovy         | 12 ++++++++++++
 solr/CHANGES.txt                                             |  2 ++
 .../test/org/apache/solr/client/solrj/SolrExampleTests.java  | 11 ++++++-----
 3 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/lucene/tools/src/groovy/check-source-patterns.groovy b/lucene/tools/src/groovy/check-source-patterns.groovy
index 7794963..62565e6 100644
--- a/lucene/tools/src/groovy/check-source-patterns.groovy
+++ b/lucene/tools/src/groovy/check-source-patterns.groovy
@@ -49,6 +49,13 @@ def invalidPatterns = [
   (~$/import java\.lang\.\w+;/$) : 'java.lang import is unnecessary'
 ]
 
+// Python and others merrily use var declarations, this is a problem _only_ in Java at least for 8x where we're forbidding var declarations
+def invalidJavaOnlyPatterns = [
+  (~$/\n\s*var\s+.*=.*<>.*/$) : 'Diamond operators should not be used with var',
+  (~$/\n\s*var\s+/$) : 'var is not allowed in until we stop development on the 8x code line'
+]
+
+
 def baseDir = properties['basedir'];
 def baseDirLen = baseDir.length() + 1;
 
@@ -200,6 +207,11 @@ ant.fileScanner{
         reportViolation(f, "Solr test cases should extend SolrTestCase rather than LuceneTestCase");
       }
     }
+    invalidJavaOnlyPatterns.each { pattern,name ->
+      if (pattern.matcher(text).find()) {
+        reportViolation(f, name);
+      }
+    }
   }
   if (f.name.endsWith('.xml') || f.name.endsWith('.xml.template')) {
     checkLicenseHeaderPrecedes(f, '<tag>', xmlTagPattern, xmlCommentPattern, text, ratDocument);
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 833b489..afa9eb1 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -166,6 +166,8 @@ Other Changes
 
 * SOLR-13573: Add SolrRangeQuery getters for upper, lower bound (Brian Rhees via Jason Gerlowski)
 
+* SOLR-13658: Precommit fail Java "var" until 9x. Fail "var...<>" constructs entirely (Erick Erickson)
+
 ==================  8.2.0 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
index 67a3651..ad70787 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
@@ -18,6 +18,7 @@ package org.apache.solr.client.solrj;
 
 
 import java.io.ByteArrayInputStream;
+import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -688,15 +689,15 @@ abstract public class SolrExampleTests extends SolrExampleTestsBase
     Assert.assertEquals(0, rsp.getResults().getNumFound());
 
     ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update");
-    var file = getFile("solrj/books.csv");
+    File file = getFile("solrj/books.csv");
     final int opened[] =  new int[] {0};
     final int closed[] =  new int[] {0};
 
-    var assertClosed = random().nextBoolean();
+    boolean assertClosed = random().nextBoolean();
     if (assertClosed) {
-      var allBytes = Files.readAllBytes(file.toPath());
-      
-      var contentStreamMock = new ContentStreamBase.ByteArrayStream(allBytes, "solrj/books.csv", "application/csv") {
+      byte[] allBytes = Files.readAllBytes(file.toPath());
+
+      ContentStreamBase.ByteArrayStream contentStreamMock = new ContentStreamBase.ByteArrayStream(allBytes, "solrj/books.csv", "application/csv") {
         @Override
         public InputStream getStream() throws IOException {
           opened [0]++;