You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2015/09/02 15:06:22 UTC

svn commit: r1700800 [2/24] - in /lucene/dev/branches/lucene6699: ./ dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/ dev-tools/scripts/ lucene/ lucene/analysis/ lucene/analysis/common/ lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ ...

Modified: lucene/dev/branches/lucene6699/dev-tools/idea/.idea/projectCodeStyle.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/dev-tools/idea/.idea/projectCodeStyle.xml?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/dev-tools/idea/.idea/projectCodeStyle.xml (original)
+++ lucene/dev/branches/lucene6699/dev-tools/idea/.idea/projectCodeStyle.xml Wed Sep  2 13:06:13 2015
@@ -21,7 +21,7 @@
         <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
           <value />
         </option>
-	<option name="IMPORT_LAYOUT_TABLE">
+        <option name="IMPORT_LAYOUT_TABLE">
           <value>
             <package name="javax" withSubpackages="true" static="false" />
             <package name="java" withSubpackages="true" static="false" />

Modified: lucene/dev/branches/lucene6699/dev-tools/scripts/smokeTestRelease.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/dev-tools/scripts/smokeTestRelease.py?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/dev-tools/scripts/smokeTestRelease.py (original)
+++ lucene/dev/branches/lucene6699/dev-tools/scripts/smokeTestRelease.py Wed Sep  2 13:06:13 2015
@@ -793,36 +793,15 @@ def testSolrExample(unpackPath, javaPath
   except:
       print('      Stop failed due to: '+sys.exc_info()[0])
 
-  print('      starting Solr on port 8983 from %s' % unpackPath)
-  server = subprocess.Popen(['bin/solr', '-f', '-p', '8983'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, env=env)
-
-  startupEvent = threading.Event()
-  failureEvent = threading.Event()
-  serverThread = threading.Thread(target=readSolrOutput, args=(server, startupEvent, failureEvent, logFile))
-  serverThread.setDaemon(True)
-  serverThread.start()
-
+  print('      Running techproducts example on port 8983 from %s' % unpackPath)
   try:
+    runExampleStatus = subprocess.call(['bin/solr','-e','techproducts'])
+    if runExampleStatus != 0:
+      raise RuntimeError('Failed to run the techproducts example, check log for previous errors.')
 
-    # Make sure Solr finishes startup:
-    if not startupEvent.wait(1800):
-      raise RuntimeError('startup took more than 30 minutes')
-
-    if failureEvent.isSet():
-      logFile = os.path.abspath(logFile)
-      print
-      print('Startup failed; see log %s' % logFile)
-      printFileContents(logFile)
-      raise RuntimeError('failure on startup; see log %s' % logFile)
-
-    print('      startup done')
-    # Create the techproducts config (used to be collection1)
-    subprocess.call(['bin/solr','create_core','-c','techproducts','-d','sample_techproducts_configs'])
     os.chdir('example')
     print('      test utf8...')
     run('sh ./exampledocs/test_utf8.sh http://localhost:8983/solr/techproducts', 'utf8.log')
-    print('      index example docs...')
-    run('java -Durl=http://localhost:8983/solr/techproducts/update -jar ./exampledocs/post.jar ./exampledocs/*.xml', 'post-example-docs.log')
     print('      run query...')
     s = load('http://localhost:8983/solr/techproducts/select/?q=video')
     if s.find('<result name="response" numFound="3" start="0">') == -1:
@@ -837,23 +816,6 @@ def testSolrExample(unpackPath, javaPath
       os.chdir(unpackPath)
     subprocess.call(['bin/solr','stop','-p','8983'])
 
-    # Give it 10 seconds to gracefully shut down
-    serverThread.join(10.0)
-
-    if serverThread.isAlive():
-      # Kill server:
-      print('***WARNING***: Solr instance didn\'t respond to SIGINT; using SIGKILL now...')
-      os.kill(server.pid, signal.SIGKILL)
-
-      serverThread.join(10.0)
-
-      if serverThread.isAlive():
-        # Shouldn't happen unless something is seriously wrong...
-        print('***WARNING***: Solr instance didn\'t respond to SIGKILL; ignoring...')
-
-  if failureEvent.isSet():
-    raise RuntimeError('exception while reading Solr output')
-
   if isSrc:
     os.chdir(unpackPath+'/solr')
   else:

Modified: lucene/dev/branches/lucene6699/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/CHANGES.txt?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene6699/lucene/CHANGES.txt Wed Sep  2 13:06:13 2015
@@ -15,10 +15,23 @@ System Requirements
 
 New Features
 
+* LUCENE-6747: FingerprintFilter is a TokenFilter that outputs a single
+  token which is a concatenation of the sorted and de-duplicated set of 
+  input tokens. Useful for normalizing short text in clustering/linking 
+  tasks. (Mark Harwood, Adrien Grand)
+
 * LUCENE-5735: NumberRangePrefixTreeStrategy now includes interval/range faceting
   for counting ranges that align with the underlying terms as defined by the
   NumberRangePrefixTree (e.g. familiar date units like days).  (David Smiley)
 
+* LUCENE-6711: Use CollectionStatistics.docCount() for IDF and average field
+  length computations, to avoid skew from documents that don't have the field.
+  (Ahmet Arslan via Robert Muir)
+
+* SOLR-7876: The QueryTimeout interface now has a isTimeoutEnabled method
+  that can return false to exit from ExitableDirectoryReader wrapping at
+  the point fields() is called. (yonik)
+
 API Changes
 
 * LUCENE-3312: The API of oal.document was restructured to
@@ -53,6 +66,9 @@ New Features
 * LUCENE-6724: Add utility APIs to GeoHashUtils to compute neighbor
   geohash cells (Nick Knize via Mike McCandless).
 
+* LUCENE-6737: Add DecimalDigitFilter which folds unicode digits to basic latin.
+  (Robert Muir)
+
 Optimizations
 
 * LUCENE-6708: TopFieldCollector does not compute the score several times on the
@@ -61,14 +77,74 @@ Optimizations
 * LUCENE-6720: ValueSourceScorer, returned from
   FunctionValues.getRangeScorer(), now uses TwoPhaseIterator. (David Smiley)
 
+* LUCENE-6756: MatchAllDocsQuery now has a dedicated BulkScorer for better
+  performance when used as a top-level query. (Adrien Grand)
+
+* LUCENE-6746: DisjunctionMaxQuery, BoostingQuery and BoostedQuery now create
+  sub weights through IndexSearcher so that they can be cached. (Adrien Grand)
+
+Bug Fixes
+
+* LUCENE-6730: Hyper-parameter c is ignored in term frequency NormalizationH1.
+  (Ahmet Arslan via Robert Muir)
+
+* LUCENE-6742: Lovins & Finnish implementation of SnowballFilter was
+  fixed to behave exactly as specified. A bug in the snowball compiler
+  caused differences in output of the filter in comparison to the original
+  test data.  In addition, the performance of those filters was improved
+  significantly.  (Uwe Schindler, Robert Muir)
+
+* LUCENE-6748: UsageTrackingQueryCachingPolicy no longer caches trivial queries
+  like MatchAllDocsQuery. (Adrien Grand)
+
 Other
 
+* LUCENE-6174: Improve "ant eclipse" to select right JRE for building.
+  (Uwe Schindler, Dawid Weiss)
+
 * LUCENE-6417: Upgrade ANTLR used in expressions module to version 4.5.
   (Jack Conradson, Uwe Schindler)
 
 * LUCENE-6729: Upgrade ASM used in expressions module to version 5.0.4.
   (Uwe Schindler)
 
+* LUCENE-6738: remove IndexWriterConfig.[gs]etIndexingChain
+  (Christine Poerschke)
+
+* LUCENE-6755: more tests of ToChildBlockJoinScorer.advance (hossman)
+
+* LUCENE-6571: fix some private access level javadoc errors and warnings
+  (Cao Manh Dat, Christine Poerschke)
+
+* LUCENE-6768: AbstractFirstPassGroupingCollector.groupSort private member
+  is not needed. (Christine Poerschke)
+
+* LUCENE-6761: MatchAllDocsQuery's Scorers do not expose approximations
+  anymore. (Adrien Grand)
+
+Build
+
+* LUCENE-6732: Improve checker for invalid source patterns to also
+  detect javadoc-style license headers. Use Groovy to implement the
+  checks instead of plain Ant.  (Uwe Schindler)
+
+Tests
+
+* LUCENE-6752: Add Math#random() to forbiddenapis.  (Uwe Schindler,
+  Mikhail Khludnev, Andrei Beliakov)
+
+* LUCENE-6760, SOLR-7958: Move TestUtil#randomWhitespace to the only
+  Solr test that is using it. The method is not useful for Lucene tests
+  (and easily breaks, e.g., in Java 9 caused by Unicode version updates).
+  (Uwe Schindler)
+
+Changes in Backwards Compatibility Policy
+
+* LUCENE-6742: The Lovins & Finnish implementation of SnowballFilter
+  were fixed to now behave exactly like the original Snowball stemmer.
+  If you have indexed text using those stemmers you may need to reindex.
+  (Uwe Schindler, Robert Muir)
+
 ======================= Lucene 5.3.0 =======================
 
 New Features
@@ -360,6 +436,9 @@ Bug fixes
 * LUCENE-6723: Fix date parsing problems in Java 9 with date formats using
   English weekday/month names.  (Uwe Schindler)
 
+* LUCENE-6618: Properly set MMapDirectory.UNMAP_SUPPORTED when it is now allowed
+  by security policy. (Robert Muir)
+
 Changes in Runtime Behavior
 
 * LUCENE-6501: The subreader structure in ParallelCompositeReader
@@ -430,7 +509,7 @@ Optimizations
 * LUCENE-6585: Flatten conjunctions and conjunction approximations into
   parent conjunctions. For example a sloppy phrase query of "foo bar"~5
   with a filter of "baz" will internally leapfrog foo,bar,baz as one
-  conjunction. (Ryan Ernst, Robert Muir, Adrien Grande)
+  conjunction. (Ryan Ernst, Robert Muir, Adrien Grand)
 
 * LUCENE-6325: Reduce RAM usage of FieldInfos, and speed up lookup by
   number, by using an array instead of TreeMap except in very sparse
@@ -484,10 +563,13 @@ Build
   these updates: Tasks are now installed from root's build.xml.
   (Uwe Schindler)
 
+* LUCENE-6741: Fix jflex files to regenerate the java files correctly.
+  (Uwe Schindler)
+
 Test Framework
 
-* LUCENE-6637: Fix FSTTester to not violate file permissions on
-  -Dtests.verbose=true.  (Mesbah M. Alam, Uwe Schindler)
+* LUCENE-6637: Fix FSTTester to not violate file permissions
+  on -Dtests.verbose=true.  (Mesbah M. Alam, Uwe Schindler)
 
 * LUCENE-6542: LuceneTestCase now has runWithRestrictedPermissions() to run
   an action with reduced permissions. This can be used to simulate special
@@ -9097,7 +9179,7 @@ API Changes
     Finally, Weight#explain now takes a sub-reader and sub-docID, rather than
     a top level reader and docID.
     (Shai Erera, Chris Hostetter, Martin Ruckli, Mark Miller via Mike McCandless)
- 	
+   
  * LUCENE-1466, LUCENE-1906: Added CharFilter and MappingCharFilter, which allows
     chaining & mapping of characters before tokenizers run. CharStream (subclass of
     Reader) is the base class for custom java.io.Reader's, that support offset
@@ -9260,7 +9342,7 @@ Bug fixes
     readers (Mike McCandless)
     
  * LUCENE-1583: SpanOrQuery skipTo() doesn't always move forwards as Spans
-	documentation indicates it should.  (Moti Nisenson via Mark Miller)
+  documentation indicates it should.  (Moti Nisenson via Mark Miller)
 
  * LUCENE-1566: Sun JVM Bug
     http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6478546 causes
@@ -9819,7 +9901,7 @@ API Changes
 
  8. LUCENE-852: Let the SpellChecker caller specify IndexWriter mergeFactor
     and RAM buffer size.  (Otis Gospodnetic)
-	
+  
  9. LUCENE-1290: Deprecate org.apache.lucene.search.Hits, Hit and HitIterator
     and remove all references to these classes from the core. Also update demos
     and tutorials. (Michael Busch)
@@ -9939,7 +10021,7 @@ Bug fixes
 
 10. LUCENE-1046: Removed dead code in SpellChecker
     (Daniel Naber via Otis Gospodnetic)
-	
+  
 11. LUCENE-1189: Fixed the QueryParser to handle escaped characters within 
     quoted terms correctly. (Tomer Gabel via Michael Busch)
 
@@ -10043,7 +10125,7 @@ Optimizations
  2. LUCENE-1120: Speed up merging of term vectors by bulk-copying the
     raw bytes for each contiguous range of non-deleted documents.
     (Mike McCandless)
-	
+  
  3. LUCENE-1185: Avoid checking if the TermBuffer 'scratch' in 
     SegmentTermEnum is null for every call of scanTo().
     (Christian Kohlschuetter via Michael Busch)
@@ -10091,10 +10173,10 @@ Test Cases
  1. LUCENE-1238: Fixed intermittent failures of TestTimeLimitedCollector.testTimeoutMultiThreaded.
     Within this fix, "greedy" flag was added to TimeLimitedCollector, to allow the wrapped 
     collector to collect also the last doc, after allowed-tTime passed. (Doron Cohen)   
-	
+  
  2. LUCENE-1348: relax TestTimeLimitedCollector to not fail due to 
     timeout exceeded (just because test machine is very busy).
-	
+  
 ======================= Release 2.3.2 =======================
 
 Bug fixes
@@ -10123,7 +10205,7 @@ Bug fixes
 
  8. LUCENE-1222: Fix IndexWriter.doAfterFlush to always be called on
     flush (Mark Ferguson via Mike McCandless)
-	
+  
  9. LUCENE-1226: Fixed IndexWriter.addIndexes(IndexReader[]) to commit
     successfully created compound files. (Michael Busch)
 
@@ -10139,7 +10221,7 @@ Bug fixes
 12. LUCENE-1270: Fixed intermittent case where IndexWriter.close()
     would hang after IndexWriter.addIndexesNoOptimize had been
     called.  (Stu Hood via Mike McCandless)
-	
+  
 Build
 
  1. LUCENE-1230: Include *pom.xml* in source release files. (Michael Busch)
@@ -10162,14 +10244,14 @@ Bug fixes
  4. LUCENE-1163: Fixed bug in CharArraySet.contains(char[] buffer, int
     offset, int len) that was ignoring offset and thus giving the
     wrong answer.  (Thomas Peuss via Mike McCandless)
-	
+  
  5. LUCENE-1177: Fix rare case where IndexWriter.optimize might do too
     many merges at the end.  (Mike McCandless)
-	
+  
  6. LUCENE-1176: Fix corruption case when documents with no term
     vector fields are added before documents with term vector fields.
     (Mike McCandless)
-	
+  
  7. LUCENE-1179: Fixed assert statement that was incorrectly
     preventing Fields with empty-string field name from working.
     (Sergey Kabashnyuk via Mike McCandless)
@@ -10557,7 +10639,7 @@ Build
 
  7. LUCENE-935: Allow to deploy maven artifacts to a remote m2 repository
     via scp and ssh authentication. (Michael Busch)
-	
+  
  8. LUCENE-1123: Allow overriding the specification version for 
     MANIFEST.MF (Michael Busch)
 

Modified: lucene/dev/branches/lucene6699/lucene/JRE_VERSION_MIGRATION.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/JRE_VERSION_MIGRATION.txt?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/JRE_VERSION_MIGRATION.txt (original)
+++ lucene/dev/branches/lucene6699/lucene/JRE_VERSION_MIGRATION.txt Wed Sep  2 13:06:13 2015
@@ -17,6 +17,7 @@ For reference, JRE major versions with t
  * Java 6, Unicode 4.0
  * Java 7, Unicode 6.0
  * Java 8, Unicode 6.2
+ * Java 9 (not yet released / offcially supported by Lucene), Unicode 7.0
 
 In general, whether or not you need to re-index largely depends upon the data that
 you are searching, and what was changed in any given Unicode version. For example, 

Modified: lucene/dev/branches/lucene6699/lucene/LICENSE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/LICENSE.txt?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/LICENSE.txt (original)
+++ lucene/dev/branches/lucene6699/lucene/LICENSE.txt Wed Sep  2 13:06:13 2015
@@ -446,7 +446,7 @@ BSD-licensed dictionary of Polish (SGJP)
 http://sgjp.pl/morfeusz/
 
 Copyright © 2011 Zygmunt Saloni, Włodzimierz Gruszczyński, 
-	    	 Marcin Woliński, Robert Wołosz
+Marcin Woliński, Robert Wołosz
 
 All rights reserved.
 

Modified: lucene/dev/branches/lucene6699/lucene/MIGRATE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/MIGRATE.txt?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/MIGRATE.txt (original)
+++ lucene/dev/branches/lucene6699/lucene/MIGRATE.txt Wed Sep  2 13:06:13 2015
@@ -1,5 +1,22 @@
 # Apache Lucene Migration Guide
 
+## The way how number of document calculated is changed (LUCENE-6711)
+The number of documents (numDocs) is used to calculate term specificity (idf) and average document length (avdl).
+Prior to LUCENE-6711, collectionStats.maxDoc() was used for the statistics.
+Now, collectionStats.docCount() is used whenever possible, if not maxDocs() is used.
+
+Assume that a collection contains 100 documents, and 50 of them have "keywords" field.
+In this example, maxDocs is 100 while docCount is 50 for the "keywords" field.
+The total number of tokens for "keywords" field is divided by docCount to obtain avdl.
+Therefore, docCount which is the total number of documents that have at least one term for the field, is a more precise metric for optional fields.
+
+DefaultSimilarity does not leverage avdl, so this change would have relatively minor change in the result list.
+Because relative idf values of terms will remain same.
+However, when combined with other factors such as term frequency, relative ranking of documents could change.
+Some Similarity implementations (such as the ones instantiated with NormalizationH2 and BM25) take account into avdl and would have notable change in ranked list.
+Especially if you have a collection of documents with varying lengths.
+Because NormalizationH2 tends to punish documents longer than avdl.
+
 ## Separation of IndexDocument and StoredDocument (LUCENE-3312)
 
 The API of oal.document was restructured to differentiate between stored 

Modified: lucene/dev/branches/lucene6699/lucene/analysis/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/build.xml?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/build.xml (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/build.xml Wed Sep  2 13:06:13 2015
@@ -21,12 +21,12 @@
 
   <description>
     Additional Analyzers
-      - common:	Additional Analyzers
+      - common: Additional Analyzers
       - icu: Analyzers that use functionality from ICU
-      - kuromoji:       Japanese Morphological Analyzer
-      - morfologik:	Morfologik Stemmer
-      - smartcn:	Smart Analyzer for Simplified Chinese Text
-      - stempel:	Algorithmic Stemmer for Polish
+      - kuromoji: Japanese Morphological Analyzer
+      - morfologik: Morfologik Stemmer
+      - smartcn: Smart Analyzer for Simplified Chinese Text
+      - stempel: Algorithmic Stemmer for Polish
       - uima: UIMA Analysis module
   </description>
 
@@ -120,15 +120,15 @@
 
   <target name="-dist-maven">
     <forall-analyzers target="-dist-maven"/>
-  </target>  	
+  </target>
 
   <target name="-validate-maven-dependencies">
     <forall-analyzers target="-validate-maven-dependencies"/>
-  </target>  	
+  </target>
 
   <target name="javadocs">
     <forall-analyzers target="javadocs"/>
-  </target>  	
+  </target>
 
   <target name="javadocs-index.html">
     <forall-analyzers target="javadocs-index.html"/>
@@ -149,7 +149,7 @@
   <target name="-append-module-dependencies-properties">
     <forall-analyzers target="-append-module-dependencies-properties"/>
   </target>
-	
+  
   <target name="check-forbidden-apis">
     <forall-analyzers target="check-forbidden-apis"/>
   </target>

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/README.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/README.txt?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/README.txt (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/README.txt Wed Sep  2 13:06:13 2015
@@ -2,6 +2,7 @@ Lucene Analyzers README file
 
 This project provides pre-compiled version of the Snowball stemmers
 based on revision 502 of the Tartarus Snowball repository,
+now located at https://github.com/snowballstem/snowball/tree/e103b5c257383ee94a96e7fc58cab3c567bf079b (GitHub),
 together with classes integrating them with the Lucene search engine.
 
 A few changes has been made to the static Snowball code and compiled stemmers:
@@ -9,7 +10,11 @@ A few changes has been made to the stati
  * Class SnowballProgram is made abstract and contains new abstract method stem() to avoid reflection in Lucene filter class SnowballFilter.
  * All use of StringBuffers has been refactored to StringBuilder for speed.
  * Snowball BSD license header has been added to the Java classes to avoid having RAT adding new ASL headers.
+ * Uses Java 7 MethodHandles and fixes method visibility bug: http://article.gmane.org/gmane.comp.search.snowball/1139
 
+If you want to add new stemmers, use the exact revision / Git commit above to generate the Java class, place it
+in src/java/org/tartarus/snowball/ext, and finally execute "ant patch-snowball". The latter will change the APIs
+of the generated class to make it compatible. Already patched classes are not modified.
 
 IMPORTANT NOTICE ON BACKWARDS COMPATIBILITY!
 

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/build.xml?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/build.xml (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/build.xml Wed Sep  2 13:06:13 2015
@@ -28,7 +28,9 @@
   <property name="rat.additional-includes" value="src/tools/**"/>
 
   <import file="../analysis-module-build.xml"/>
-	
+  
+  <property name="snowball.programs.dir" location="src/java/org/tartarus/snowball/ext"/>  
+  
   <target name="jflex" depends="-install-jflex,clean-jflex,-jflex-StandardAnalyzer,-jflex-UAX29URLEmailTokenizer,
                                 -jflex-wiki-tokenizer,-jflex-HTMLStripCharFilter"/>
 
@@ -122,7 +124,7 @@
       fork="true"
       failonerror="true">
       <classpath>
-      	<pathelement location="${build.dir}/classes/tools"/>
+        <pathelement location="${build.dir}/classes/tools"/>
       </classpath>
       <arg value="${tld.zones}"/>
       <arg value="${tld.output}"/>
@@ -140,4 +142,15 @@
   <target name="javadocs" depends="module-build.javadocs"/>
 
   <target name="regenerate" depends="jflex"/>
+  
+  <target name="patch-snowball" description="Patches all snowball programs in '${snowball.programs.dir}' to make them work with MethodHandles">
+      <fileset id="snowball.programs" dir="${snowball.programs.dir}" includes="*Stemmer.java"/>
+      <replaceregexp match="^public class \w+Stemmer\b" replace="@SuppressWarnings(&quot;unused&quot;) \0" flags="m" encoding="UTF-8">
+        <fileset refid="snowball.programs"/>
+      </replaceregexp>
+      <replaceregexp match="private final static \w+Stemmer methodObject\b.*$" replace="/* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();" flags="m" encoding="UTF-8">
+        <fileset refid="snowball.programs"/>
+      </replaceregexp>
+      <fixcrlf srcdir="${snowball.programs.dir}" includes="*Stemmer.java" tab="remove" tablength="2" encoding="UTF-8" javafiles="yes" fixlast="yes"/>
+  </target>
 </project>

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicAnalyzer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicAnalyzer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicAnalyzer.java Wed Sep  2 13:06:13 2015
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.io.Reader;
 
 import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.core.DecimalDigitFilter;
 import org.apache.lucene.analysis.core.LowerCaseFilter;
 import org.apache.lucene.analysis.core.StopFilter;
 import org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter;
@@ -29,6 +30,7 @@ import org.apache.lucene.analysis.util.C
 import org.apache.lucene.analysis.util.StopwordAnalyzerBase;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.Tokenizer;
+import org.apache.lucene.util.Version;
 
 /**
  * {@link Analyzer} for Arabic. 
@@ -124,7 +126,7 @@ public final class ArabicAnalyzer extend
    * 
    * @return {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    *         built from an {@link StandardTokenizer} filtered with
-   *         {@link LowerCaseFilter}, {@link StopFilter},
+   *         {@link LowerCaseFilter}, {@link DecimalDigitFilter}, {@link StopFilter},
    *         {@link ArabicNormalizationFilter}, {@link SetKeywordMarkerFilter}
    *         if a stem exclusion set is provided and {@link ArabicStemFilter}.
    */
@@ -132,6 +134,9 @@ public final class ArabicAnalyzer extend
   protected TokenStreamComponents createComponents(String fieldName) {
     final Tokenizer source = new StandardTokenizer();
     TokenStream result = new LowerCaseFilter(source);
+    if (getVersion().onOrAfter(Version.LUCENE_5_4_0)) {
+      result = new DecimalDigitFilter(result);
+    }
     // the order here is important: the stopword list is not normalized!
     result = new StopFilter(result, stopwords);
     // TODO maybe we should make ArabicNormalization filter also KeywordAttribute aware?!

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLCharacterEntities.jflex
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLCharacterEntities.jflex?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLCharacterEntities.jflex (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLCharacterEntities.jflex Wed Sep  2 13:06:13 2015
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.java Wed Sep  2 13:06:13 2015
@@ -33,6 +33,7 @@ import org.apache.lucene.analysis.util.O
 /**
  * A CharFilter that wraps another Reader and attempts to strip out HTML constructs.
  */
+@SuppressWarnings("fallthrough")
 
 public final class HTMLStripCharFilter extends BaseCharFilter {
 

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.jflex
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.jflex?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.jflex (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.jflex Wed Sep  2 13:06:13 2015
@@ -31,6 +31,7 @@ import org.apache.lucene.analysis.util.O
 /**
  * A CharFilter that wraps another Reader and attempts to strip out HTML constructs.
  */
+@SuppressWarnings("fallthrough")
 %%
 
 %unicode 6.3

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/htmlentity.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/htmlentity.py?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/htmlentity.py (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/htmlentity.py Wed Sep  2 13:06:13 2015
@@ -516,7 +516,7 @@ You can download this version of this fi
   return text
 
 def get_apache_license():
-  license = r"""/**
+  license = r"""/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniAnalyzer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniAnalyzer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniAnalyzer.java Wed Sep  2 13:06:13 2015
@@ -22,6 +22,7 @@ import java.io.Reader;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.core.DecimalDigitFilter;
 import org.apache.lucene.analysis.core.LowerCaseFilter;
 import org.apache.lucene.analysis.core.StopFilter;
 import org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter;
@@ -33,6 +34,7 @@ import org.apache.lucene.analysis.util.C
 import org.apache.lucene.analysis.util.StopwordAnalyzerBase;
 import org.apache.lucene.analysis.util.WordlistLoader;
 import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.util.Version;
 
 /**
  * {@link Analyzer} for Sorani Kurdish.
@@ -108,7 +110,7 @@ public final class SoraniAnalyzer extend
    *         {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    *         built from an {@link StandardTokenizer} filtered with
    *         {@link StandardFilter}, {@link SoraniNormalizationFilter}, 
-   *         {@link LowerCaseFilter}, {@link StopFilter}
+   *         {@link LowerCaseFilter}, {@link DecimalDigitFilter}, {@link StopFilter}
    *         , {@link SetKeywordMarkerFilter} if a stem exclusion set is
    *         provided and {@link SoraniStemFilter}.
    */
@@ -118,6 +120,9 @@ public final class SoraniAnalyzer extend
     TokenStream result = new StandardFilter(source);
     result = new SoraniNormalizationFilter(result);
     result = new LowerCaseFilter(result);
+    if (getVersion().onOrAfter(Version.LUCENE_5_4_0)) {
+      result = new DecimalDigitFilter(result);
+    }
     result = new StopFilter(result, stopwords);
     if(!stemExclusionSet.isEmpty())
       result = new SetKeywordMarkerFilter(result, stemExclusionSet);

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/PatternParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/PatternParser.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/PatternParser.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/hyphenation/PatternParser.java Wed Sep  2 13:06:13 2015
@@ -292,7 +292,7 @@ public class PatternParser extends Defau
    *      java.lang.String, java.lang.String)
    */
   @Override
-  @SuppressWarnings("unchecked")
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void endElement(String uri, String local, String raw) {
 
     if (token.length() > 0) {
@@ -329,7 +329,7 @@ public class PatternParser extends Defau
   /**
    * @see org.xml.sax.ContentHandler#characters(char[], int, int)
    */
-  @SuppressWarnings("unchecked")
+  @SuppressWarnings({"unchecked", "rawtypes"})
   @Override
   public void characters(char ch[], int start, int length) {
     StringBuilder chars = new StringBuilder(length);

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekAnalyzer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekAnalyzer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekAnalyzer.java Wed Sep  2 13:06:13 2015
@@ -1,6 +1,6 @@
 package org.apache.lucene.analysis.el;
 
-/**
+/*
  * Copyright 2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekLowerCaseFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekLowerCaseFilter.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekLowerCaseFilter.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekLowerCaseFilter.java Wed Sep  2 13:06:13 2015
@@ -1,6 +1,6 @@
 package org.apache.lucene.analysis.el;
 
-/**
+/*
  * Copyright 2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianAnalyzer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianAnalyzer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianAnalyzer.java Wed Sep  2 13:06:13 2015
@@ -24,11 +24,13 @@ import org.apache.lucene.analysis.Analyz
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.Tokenizer;
 import org.apache.lucene.analysis.ar.ArabicNormalizationFilter;
+import org.apache.lucene.analysis.core.DecimalDigitFilter;
 import org.apache.lucene.analysis.core.LowerCaseFilter;
 import org.apache.lucene.analysis.core.StopFilter;
 import org.apache.lucene.analysis.standard.StandardTokenizer;
 import org.apache.lucene.analysis.util.CharArraySet;
 import org.apache.lucene.analysis.util.StopwordAnalyzerBase;
+import org.apache.lucene.util.Version;
 
 /**
  * {@link Analyzer} for Persian.
@@ -107,13 +109,16 @@ public final class PersianAnalyzer exten
    * 
    * @return {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    *         built from a {@link StandardTokenizer} filtered with
-   *         {@link LowerCaseFilter}, {@link ArabicNormalizationFilter},
+   *         {@link LowerCaseFilter}, {@link DecimalDigitFilter}, {@link ArabicNormalizationFilter},
    *         {@link PersianNormalizationFilter} and Persian Stop words
    */
   @Override
   protected TokenStreamComponents createComponents(String fieldName) {
     final Tokenizer source = new StandardTokenizer();
     TokenStream result = new LowerCaseFilter(source);
+    if (getVersion().onOrAfter(Version.LUCENE_5_4_0)) {
+      result = new DecimalDigitFilter(result);
+    }
     result = new ArabicNormalizationFilter(result);
     /* additional persian-specific normalization */
     result = new PersianNormalizationFilter(result);

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiAnalyzer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiAnalyzer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiAnalyzer.java Wed Sep  2 13:06:13 2015
@@ -26,9 +26,11 @@ import org.apache.lucene.analysis.util.C
 import org.apache.lucene.analysis.util.StopwordAnalyzerBase;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.Tokenizer;
+import org.apache.lucene.analysis.core.DecimalDigitFilter;
 import org.apache.lucene.analysis.core.LowerCaseFilter;
 import org.apache.lucene.analysis.core.StopFilter;
 import org.apache.lucene.analysis.in.IndicNormalizationFilter;
+import org.apache.lucene.util.Version;
 
 /**
  * Analyzer for Hindi.
@@ -106,7 +108,7 @@ public final class HindiAnalyzer extends
    * 
    * @return {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    *         built from a {@link StandardTokenizer} filtered with
-   *         {@link LowerCaseFilter}, {@link IndicNormalizationFilter},
+   *         {@link LowerCaseFilter}, {@link DecimalDigitFilter}, {@link IndicNormalizationFilter},
    *         {@link HindiNormalizationFilter}, {@link SetKeywordMarkerFilter}
    *         if a stem exclusion set is provided, {@link HindiStemFilter}, and
    *         Hindi Stop words
@@ -115,6 +117,9 @@ public final class HindiAnalyzer extends
   protected TokenStreamComponents createComponents(String fieldName) {
     final Tokenizer source = new StandardTokenizer();
     TokenStream result = new LowerCaseFilter(source);
+    if (getVersion().onOrAfter(Version.LUCENE_5_4_0)) {
+      result = new DecimalDigitFilter(result);
+    }
     if (!stemExclusionSet.isEmpty())
       result = new SetKeywordMarkerFilter(result, stemExclusionSet);
     result = new IndicNormalizationFilter(result);

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/Stemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/Stemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/Stemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/Stemmer.java Wed Sep  2 13:06:13 2015
@@ -266,11 +266,11 @@ final class Stemmer {
 
   // some state for traversing FSTs
   final FST.BytesReader prefixReaders[] = new FST.BytesReader[3];
-  @SuppressWarnings("unchecked")
+  @SuppressWarnings({"unchecked","rawtypes"})
   final FST.Arc<IntsRef> prefixArcs[] = new FST.Arc[3];
   
   final FST.BytesReader suffixReaders[] = new FST.BytesReader[3];
-  @SuppressWarnings("unchecked")
+  @SuppressWarnings({"unchecked","rawtypes"})
   final FST.Arc<IntsRef> suffixArcs[] = new FST.Arc[3];
 
   

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/sinks/TokenRangeSinkFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/sinks/TokenRangeSinkFilter.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/sinks/TokenRangeSinkFilter.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/sinks/TokenRangeSinkFilter.java Wed Sep  2 13:06:13 2015
@@ -1,6 +1,6 @@
 package org.apache.lucene.analysis.sinks;
 
-/**
+/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.java Wed Sep  2 13:06:13 2015
@@ -25,6 +25,7 @@ import org.apache.lucene.analysis.tokena
 /**
  * This class implements the classic lucene StandardTokenizer up until 3.0 
  */
+@SuppressWarnings("fallthrough")
 
 class ClassicTokenizerImpl {
 

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.jflex
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.jflex?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.jflex (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerImpl.jflex Wed Sep  2 13:06:13 2015
@@ -23,6 +23,7 @@ import org.apache.lucene.analysis.tokena
 /**
  * This class implements the classic lucene StandardTokenizer up until 3.0 
  */
+@SuppressWarnings("fallthrough")
 %%
 
 %class ClassicTokenizerImpl

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.java Wed Sep  2 13:06:13 2015
@@ -38,6 +38,7 @@ import org.apache.lucene.analysis.tokena
  *   <li>&lt;HANGUL&gt;: A sequence of Hangul characters</li>
  * </ul>
  */
+@SuppressWarnings("fallthrough")
 
 public final class StandardTokenizerImpl {
 

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.jflex
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.jflex?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.jflex (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.jflex Wed Sep  2 13:06:13 2015
@@ -36,6 +36,7 @@ import org.apache.lucene.analysis.tokena
  *   <li>&lt;HANGUL&gt;: A sequence of Hangul characters</li>
  * </ul>
  */
+@SuppressWarnings("fallthrough")
 %%
 
 %unicode 6.3

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.java Wed Sep  2 13:06:13 2015
@@ -41,6 +41,7 @@ import org.apache.lucene.analysis.tokena
  *   <li>&lt;HANGUL&gt;: A sequence of Hangul characters</li>
  * </ul>
  */
+@SuppressWarnings("fallthrough")
 
 public final class UAX29URLEmailTokenizerImpl {
 

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.jflex
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.jflex?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.jflex (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.jflex Wed Sep  2 13:06:13 2015
@@ -39,6 +39,7 @@ import org.apache.lucene.analysis.tokena
  *   <li>&lt;HANGUL&gt;: A sequence of Hangul characters</li>
  * </ul>
  */
+@SuppressWarnings("fallthrough")
 %%
 
 %unicode 6.3

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java Wed Sep  2 13:06:13 2015
@@ -1,6 +1,6 @@
 package org.apache.lucene.analysis.th;
 
-/**
+/*
  * Copyright 2006 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,10 +22,12 @@ import java.io.Reader;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.Tokenizer;
+import org.apache.lucene.analysis.core.DecimalDigitFilter;
 import org.apache.lucene.analysis.core.LowerCaseFilter;
 import org.apache.lucene.analysis.core.StopFilter;
 import org.apache.lucene.analysis.util.CharArraySet;
 import org.apache.lucene.analysis.util.StopwordAnalyzerBase;
+import org.apache.lucene.util.Version;
 
 /**
  * {@link Analyzer} for Thai language. It uses {@link java.text.BreakIterator} to break words.
@@ -90,12 +92,15 @@ public final class ThaiAnalyzer extends
    * 
    * @return {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    *         built from a {@link ThaiTokenizer} filtered with
-   *         {@link LowerCaseFilter} and {@link StopFilter}
+   *         {@link LowerCaseFilter}, {@link DecimalDigitFilter} and {@link StopFilter}
    */
   @Override
   protected TokenStreamComponents createComponents(String fieldName) {
     final Tokenizer source = new ThaiTokenizer();
     TokenStream result = new LowerCaseFilter(source);
+    if (getVersion().onOrAfter(Version.LUCENE_5_4_0)) {
+      result = new DecimalDigitFilter(result);
+    }
     result = new StopFilter(result, stopwords);
     return new TokenStreamComponents(source, result);
   }

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerImpl.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerImpl.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerImpl.java Wed Sep  2 13:06:13 2015
@@ -2,7 +2,7 @@
 
 package org.apache.lucene.analysis.wikipedia;
 
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -24,6 +24,7 @@ import org.apache.lucene.analysis.tokena
 /**
  * JFlex-generated tokenizer that is aware of Wikipedia syntax.
  */
+@SuppressWarnings("fallthrough")
 
 class WikipediaTokenizerImpl {
 

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerImpl.jflex
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerImpl.jflex?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerImpl.jflex (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerImpl.jflex Wed Sep  2 13:06:13 2015
@@ -1,6 +1,6 @@
 package org.apache.lucene.analysis.wikipedia;
 
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -22,6 +22,7 @@ import org.apache.lucene.analysis.tokena
 /**
  * JFlex-generated tokenizer that is aware of Wikipedia syntax.
  */
+@SuppressWarnings("fallthrough")
 %%
 
 %class WikipediaTokenizerImpl

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/collation/CollationDocValuesField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/collation/CollationDocValuesField.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/collation/CollationDocValuesField.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/apache/lucene/collation/CollationDocValuesField.java Wed Sep  2 13:06:13 2015
@@ -1,6 +1,6 @@
 package org.apache.lucene.collation;
 
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/Among.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/Among.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/Among.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/Among.java Wed Sep  2 13:06:13 2015
@@ -31,44 +31,53 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 
 package org.tartarus.snowball;
 
-import java.lang.reflect.Method;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
+import java.util.Locale;
 
 /**
  * This is the rev 502 of the Snowball SVN trunk,
+ * now located at <a target="_blank" href="https://github.com/snowballstem/snowball/tree/e103b5c257383ee94a96e7fc58cab3c567bf079b">GitHub</a>,
  * but modified:
- * made abstract and introduced abstract method stem to avoid expensive reflection in filter class.
- * refactored StringBuffers to StringBuilder
- * uses char[] as buffer instead of StringBuffer/StringBuilder
- * eq_s,eq_s_b,insert,replace_s take CharSequence like eq_v and eq_v_b
- * reflection calls (Lovins, etc) use EMPTY_ARGS/EMPTY_PARAMS
+ * <ul>
+ * <li>made abstract and introduced abstract method stem to avoid expensive reflection in filter class.
+ * <li>refactored StringBuffers to StringBuilder
+ * <li>uses char[] as buffer instead of StringBuffer/StringBuilder
+ * <li>eq_s,eq_s_b,insert,replace_s take CharSequence like eq_v and eq_v_b
+ * <li>use MethodHandles and fix <a target="_blank" href="http://article.gmane.org/gmane.comp.search.snowball/1139">method visibility bug</a>.
+ * </ul>
  */
-public class Among {
-  private static final Class<?>[] EMPTY_PARAMS = new Class[0];
-
+public final class Among {
+  
   public Among(String s, int substring_i, int result,
-               String methodname, SnowballProgram methodobject) {
+               String methodname, MethodHandles.Lookup methodobject) {
     this.s_size = s.length();
     this.s = s.toCharArray();
     this.substring_i = substring_i;
     this.result = result;
-    this.methodobject = methodobject;
-    if (methodname.length() == 0) {
+    if (methodname.isEmpty()) {
       this.method = null;
     } else {
+      final Class<? extends SnowballProgram> clazz = methodobject.lookupClass().asSubclass(SnowballProgram.class);
       try {
-        this.method = methodobject.getClass().
-            getDeclaredMethod(methodname, EMPTY_PARAMS);
-      } catch (NoSuchMethodException e) {
-        throw new RuntimeException(e);
+        this.method = methodobject.findVirtual(clazz, methodname, MethodType.methodType(boolean.class))
+            .asType(MethodType.methodType(boolean.class, SnowballProgram.class));
+      } catch (NoSuchMethodException | IllegalAccessException e) {
+        throw new RuntimeException(String.format(Locale.ENGLISH,
+            "Snowball program '%s' is broken, cannot access method: boolean %s()",
+            clazz.getSimpleName(), methodname
+        ), e);
       }
     }
   }
 
-    public final int s_size; /* search string */
-    public final char[] s; /* search string */
-    public final int substring_i; /* index to longest matching substring */
-    public final int result;      /* result of the lookup */
-    public final Method method; /* method to use if substring matches */
-    public final SnowballProgram methodobject; /* object to invoke method on */
-   
-};
+  final int s_size; /* search string */
+  final char[] s; /* search string */
+  final int substring_i; /* index to longest matching substring */
+  final int result;      /* result of the lookup */
+  
+  // Make sure this is not accessible outside package for Java security reasons!
+  final MethodHandle method; /* method to use if substring matches */
+  
+}
\ No newline at end of file

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/SnowballProgram.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/SnowballProgram.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/SnowballProgram.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/SnowballProgram.java Wed Sep  2 13:06:13 2015
@@ -32,22 +32,22 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 
 package org.tartarus.snowball;
 
-import java.lang.reflect.InvocationTargetException;
-
 import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.RamUsageEstimator;
 
 /**
  * This is the rev 502 of the Snowball SVN trunk,
+ * now located at <a target="_blank" href="https://github.com/snowballstem/snowball/tree/e103b5c257383ee94a96e7fc58cab3c567bf079b">GitHub</a>,
  * but modified:
- * made abstract and introduced abstract method stem to avoid expensive reflection in filter class.
- * refactored StringBuffers to StringBuilder
- * uses char[] as buffer instead of StringBuffer/StringBuilder
- * eq_s,eq_s_b,insert,replace_s take CharSequence like eq_v and eq_v_b
- * reflection calls (Lovins, etc) use EMPTY_ARGS/EMPTY_PARAMS
+ * <ul>
+ * <li>made abstract and introduced abstract method stem to avoid expensive reflection in filter class.
+ * <li>refactored StringBuffers to StringBuilder
+ * <li>uses char[] as buffer instead of StringBuffer/StringBuilder
+ * <li>eq_s,eq_s_b,insert,replace_s take CharSequence like eq_v and eq_v_b
+ * <li>use MethodHandles and fix <a target="_blank" href="http://article.gmane.org/gmane.comp.search.snowball/1139">method visibility bug</a>.
+ * </ul>
  */
 public abstract class SnowballProgram {
-    private static final Object[] EMPTY_ARGS = new Object[0];
 
     protected SnowballProgram()
     {
@@ -312,16 +312,11 @@ public abstract class SnowballProgram {
         if (common_i >= w.s_size) {
           cursor = c + w.s_size;
           if (w.method == null) return w.result;
-          boolean res;
+          boolean res = false;
           try {
-            Object resobj = w.method.invoke(w.methodobject, EMPTY_ARGS);
-            res = resobj.toString().equals("true");
-          } catch (InvocationTargetException e) {
-            res = false;
-            // FIXME - debug message
-          } catch (IllegalAccessException e) {
-            res = false;
-            // FIXME - debug message
+            res = (boolean) w.method.invokeExact(this);
+          } catch (Throwable e) {
+            rethrow(e);
           }
           cursor = c + w.s_size;
           if (res) return w.result;
@@ -380,16 +375,11 @@ public abstract class SnowballProgram {
           cursor = c - w.s_size;
           if (w.method == null) return w.result;
 
-          boolean res;
+          boolean res = false;
           try {
-            Object resobj = w.method.invoke(w.methodobject, EMPTY_ARGS);
-            res = resobj.toString().equals("true");
-          } catch (InvocationTargetException e) {
-            res = false;
-            // FIXME - debug message
-          } catch (IllegalAccessException e) {
-            res = false;
-            // FIXME - debug message
+            res = (boolean) w.method.invokeExact(this);
+          } catch (Throwable e) {
+            rethrow(e);
           }
           cursor = c - w.s_size;
           if (res) return w.result;
@@ -498,5 +488,14 @@ extern void debug(struct SN_env * z, int
 }
 */
 
+    // Hack to rethrow unknown Exceptions from {@link MethodHandle#invoke}:
+    private static void rethrow(Throwable t) {
+      SnowballProgram.<Error>rethrow0(t);
+    }
+    
+    @SuppressWarnings("unchecked")
+    private static <T extends Throwable> void rethrow0(Throwable t) throws T {
+      throw (T) t;
+    }
 };
 

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ArmenianStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ArmenianStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ArmenianStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ArmenianStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class ArmenianStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class ArmenianStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static ArmenianStemmer methodObject = new ArmenianStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "\u0580\u0578\u0580\u0564", -1, 1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/BasqueStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/BasqueStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/BasqueStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/BasqueStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class BasqueStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class BasqueStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static BasqueStemmer methodObject = new BasqueStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "idea", -1, 1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/CatalanStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/CatalanStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/CatalanStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/CatalanStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class CatalanStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class CatalanStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static CatalanStemmer methodObject = new CatalanStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "", -1, 13, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/DanishStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/DanishStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/DanishStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/DanishStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class DanishStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class DanishStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static DanishStemmer methodObject = new DanishStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "hed", -1, 1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/DutchStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/DutchStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/DutchStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/DutchStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class DutchStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class DutchStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static DutchStemmer methodObject = new DutchStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "", -1, 6, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/EnglishStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/EnglishStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/EnglishStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/EnglishStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class EnglishStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class EnglishStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static EnglishStemmer methodObject = new EnglishStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "arsen", -1, -1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FinnishStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FinnishStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FinnishStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FinnishStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class FinnishStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class FinnishStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static FinnishStemmer methodObject = new FinnishStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "pa", -1, 1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FrenchStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FrenchStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FrenchStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FrenchStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class FrenchStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class FrenchStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static FrenchStemmer methodObject = new FrenchStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "col", -1, -1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/German2Stemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/German2Stemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/German2Stemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/German2Stemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class German2Stemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class German2Stemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static German2Stemmer methodObject = new German2Stemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "", -1, 6, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/GermanStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/GermanStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/GermanStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/GermanStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class GermanStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class GermanStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static GermanStemmer methodObject = new GermanStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "", -1, 6, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/HungarianStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/HungarianStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/HungarianStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/HungarianStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class HungarianStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class HungarianStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static HungarianStemmer methodObject = new HungarianStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "cs", -1, -1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/IrishStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/IrishStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/IrishStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/IrishStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class IrishStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class IrishStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static IrishStemmer methodObject = new IrishStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "b'", -1, 4, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ItalianStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ItalianStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ItalianStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/ItalianStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class ItalianStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class ItalianStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static ItalianStemmer methodObject = new ItalianStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "", -1, 7, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/KpStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/KpStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/KpStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/KpStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class KpStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class KpStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static KpStemmer methodObject = new KpStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "nde", -1, 7, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LithuanianStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LithuanianStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LithuanianStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LithuanianStemmer.java Wed Sep  2 13:06:13 2015
@@ -9,11 +9,11 @@ import org.tartarus.snowball.Among;
  * It implements the stemming algorithm defined by a snowball script.
  */
 
-public class LithuanianStemmer extends org.tartarus.snowball.SnowballProgram {
+@SuppressWarnings("unused") public class LithuanianStemmer extends org.tartarus.snowball.SnowballProgram {
 
     private static final long serialVersionUID = 1L;
 
-    private final static LithuanianStemmer methodObject = new LithuanianStemmer ();
+    /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
     private final static Among a_0[] = {
             new Among ( "a", -1, -1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LovinsStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LovinsStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LovinsStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/LovinsStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class LovinsStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class LovinsStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static LovinsStemmer methodObject = new LovinsStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "d", -1, -1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/NorwegianStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/NorwegianStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/NorwegianStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/NorwegianStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class NorwegianStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class NorwegianStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static NorwegianStemmer methodObject = new NorwegianStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "a", -1, 1, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/PorterStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/PorterStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/PorterStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/PorterStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class PorterStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class PorterStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static PorterStemmer methodObject = new PorterStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "s", -1, 3, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/PortugueseStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/PortugueseStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/PortugueseStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/PortugueseStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class PortugueseStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class PortugueseStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static PortugueseStemmer methodObject = new PortugueseStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "", -1, 3, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/RomanianStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/RomanianStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/RomanianStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/RomanianStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class RomanianStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class RomanianStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static RomanianStemmer methodObject = new RomanianStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "", -1, 3, "", methodObject ),

Modified: lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/RussianStemmer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/RussianStemmer.java?rev=1700800&r1=1700799&r2=1700800&view=diff
==============================================================================
--- lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/RussianStemmer.java (original)
+++ lucene/dev/branches/lucene6699/lucene/analysis/common/src/java/org/tartarus/snowball/ext/RussianStemmer.java Wed Sep  2 13:06:13 2015
@@ -10,11 +10,11 @@ import org.tartarus.snowball.SnowballPro
   * It implements the stemming algorithm defined by a snowball script.
   */
 
-public class RussianStemmer extends SnowballProgram {
+@SuppressWarnings("unused") public class RussianStemmer extends SnowballProgram {
 
 private static final long serialVersionUID = 1L;
 
-        private final static RussianStemmer methodObject = new RussianStemmer ();
+        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
 
                 private final static Among a_0[] = {
                     new Among ( "\u0432", -1, 1, "", methodObject ),