From 5df5df9ec37c9fbaca9c0629482a95fb90c8d33b Mon Sep 17 00:00:00 2001 From: Erick Erickson Date: Sun, 11 Aug 2019 11:49:54 -0400 Subject: [PATCH] SOLR-13568: Precommit fail Java var until 9x. Fail var... (cherry picked from commit f6f1b4244c40e5665b20a2a8ef9852c6dd827cb2) --- lucene/tools/src/groovy/check-source-patterns.groovy | 12 ++++++++++++ solr/CHANGES.txt | 2 ++ .../apache/solr/client/solrj/SolrExampleTests.java | 5 ++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lucene/tools/src/groovy/check-source-patterns.groovy b/lucene/tools/src/groovy/check-source-patterns.groovy index 779496331e3..62565e67d49 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, '', xmlTagPattern, xmlCommentPattern, text, ratDocument); diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 491fdc00014..972255c946f 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -114,6 +114,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 5391b898be0..ad707872c94 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 @@ -70,7 +70,6 @@ import org.apache.solr.common.params.AnalysisParams; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.FacetParams; import org.apache.solr.common.params.ModifiableSolrParams; -import org.apache.solr.common.util.ContentStream; import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.Pair; @@ -697,8 +696,8 @@ abstract public class SolrExampleTests extends SolrExampleTestsBase boolean assertClosed = random().nextBoolean(); if (assertClosed) { byte[] allBytes = Files.readAllBytes(file.toPath()); - - ContentStream contentStreamMock = new ContentStreamBase.ByteArrayStream(allBytes, "solrj/books.csv", "application/csv") { + + ContentStreamBase.ByteArrayStream contentStreamMock = new ContentStreamBase.ByteArrayStream(allBytes, "solrj/books.csv", "application/csv") { @Override public InputStream getStream() throws IOException { opened [0]++;