You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2013/01/08 04:40:37 UTC

svn commit: r1430130 [4/27] - in /lucene/dev/branches/lucene4547: ./ dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/ dev-tools/maven/ dev-tools/maven/solr/ dev-tools/maven/solr/contrib/analysis-extras/ dev-tools/maven/solr/contrib/cluster...

Modified: lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java Tue Jan  8 03:40:16 2013
@@ -46,7 +46,6 @@ import org.apache.lucene.analysis.Analyz
 import org.apache.lucene.analysis.BaseTokenStreamTestCase;
 import org.apache.lucene.analysis.CachingTokenFilter;
 import org.apache.lucene.analysis.CharFilter;
-import org.apache.lucene.analysis.EmptyTokenizer;
 import org.apache.lucene.analysis.MockGraphTokenFilter;
 import org.apache.lucene.analysis.MockRandomLookaheadTokenFilter;
 import org.apache.lucene.analysis.MockTokenFilter;
@@ -110,8 +109,6 @@ public class TestRandomChains extends Ba
     // TODO: can we promote some of these to be only
     // offsets offenders?
     Collections.<Class<?>>addAll(brokenComponents,
-      // TODO: fix basetokenstreamtestcase not to trip because this one has no CharTermAtt
-      EmptyTokenizer.class,
       // doesn't actual reset itself!
       CachingTokenFilter.class,
       // doesn't consume whole stream!

Modified: lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/hunspell/HunspellDictionaryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/hunspell/HunspellDictionaryTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/hunspell/HunspellDictionaryTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/hunspell/HunspellDictionaryTest.java Tue Jan  8 03:40:16 2013
@@ -38,51 +38,63 @@ public class HunspellDictionaryTest exte
       this.delegate = delegate;
     }
 
+    @Override
     public int read() throws IOException {
       return delegate.read();
     }
 
+    @Override
     public int hashCode() {
       return delegate.hashCode();
     }
 
+    @Override
     public int read(byte[] b) throws IOException {
       return delegate.read(b);
     }
 
+    @Override
     public boolean equals(Object obj) {
       return delegate.equals(obj);
     }
 
+    @Override
     public int read(byte[] b, int off, int len) throws IOException {
       return delegate.read(b, off, len);
     }
 
+    @Override
     public long skip(long n) throws IOException {
       return delegate.skip(n);
     }
 
+    @Override
     public String toString() {
       return delegate.toString();
     }
 
+    @Override
     public int available() throws IOException {
       return delegate.available();
     }
 
+    @Override
     public void close() throws IOException {
       this.closed = true;
       delegate.close();
     }
 
+    @Override
     public void mark(int readlimit) {
       delegate.mark(readlimit);
     }
 
+    @Override
     public void reset() throws IOException {
       delegate.reset();
     }
 
+    @Override
     public boolean markSupported() {
       return delegate.markSupported();
     }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestEmptyTokenStream.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestEmptyTokenStream.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestEmptyTokenStream.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestEmptyTokenStream.java Tue Jan  8 03:40:16 2013
@@ -20,15 +20,55 @@ package org.apache.lucene.analysis.misce
 import java.io.IOException;
 
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.analysis.tokenattributes.TermToBytesRefAttribute;
+import org.apache.lucene.analysis.BaseTokenStreamTestCase;
 import org.apache.lucene.analysis.TokenStream;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.store.Directory;
 
-public class TestEmptyTokenStream extends LuceneTestCase {
+public class TestEmptyTokenStream extends BaseTokenStreamTestCase {
 
-  public void test() throws IOException {
+  public void testConsume() throws IOException {
     TokenStream ts = new EmptyTokenStream();
+    ts.reset();
     assertFalse(ts.incrementToken());
+    ts.end();
+    ts.close();
+    // try again with reuse:
     ts.reset();
     assertFalse(ts.incrementToken());
+    ts.end();
+    ts.close();
+  }
+  
+  public void testConsume2() throws IOException {
+    BaseTokenStreamTestCase.assertTokenStreamContents(new EmptyTokenStream(), new String[0]);
+  }
+
+  public void testIndexWriter_LUCENE4656() throws IOException {
+    Directory directory = newDirectory();
+    IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(
+        TEST_VERSION_CURRENT, null));
+
+    TokenStream ts = new EmptyTokenStream();
+    assertFalse(ts.hasAttribute(TermToBytesRefAttribute.class));
+
+    Document doc = new Document();
+    doc.add(new StringField("id", "0", Field.Store.YES));
+    doc.add(new TextField("description", ts));
+    
+    // this should not fail because we have no TermToBytesRefAttribute
+    writer.addDocument(doc);
+    
+    assertEquals(1, writer.numDocs());
+
+    writer.close();
+    directory.close();
   }
 
 }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/StringMockResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/StringMockResourceLoader.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/StringMockResourceLoader.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/StringMockResourceLoader.java Tue Jan  8 03:40:16 2013
@@ -29,6 +29,7 @@ public class StringMockResourceLoader im
     this.text = text;
   }
 
+  @Override
   public <T> T newInstance(String cname, Class<T> expectedType) {
     try {
       Class<? extends T> clazz = Class.forName(cname).asSubclass(expectedType);
@@ -38,6 +39,7 @@ public class StringMockResourceLoader im
     }
   }
 
+  @Override
   public InputStream openResource(String resource) throws IOException {
     return new ByteArrayInputStream(text.getBytes("UTF-8"));
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/icu/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/icu/build.xml?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/icu/build.xml (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/icu/build.xml Tue Jan  8 03:40:16 2013
@@ -26,7 +26,7 @@
   <import file="../analysis-module-build.xml"/>
 
   <path id="icujar">
-     <pathelement location="lib/icu4j-49.1.jar"/>
+     <fileset dir="lib"/>
   </path>
 
   <path id="classpath">

Modified: lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUFoldingFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUFoldingFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUFoldingFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUFoldingFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -34,6 +34,7 @@ public class ICUFoldingFilterFactory ext
     return new ICUFoldingFilter(input);
   }
 
+  @Override
   public AbstractAnalysisFactory getMultiTermComponent() {
     return this;
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2FilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2FilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2FilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2FilterFactory.java Tue Jan  8 03:40:16 2013
@@ -79,10 +79,12 @@ public class ICUNormalizer2FilterFactory
     }
   }
   
+  @Override
   public TokenStream create(TokenStream input) {
     return new ICUNormalizer2Filter(input, normalizer);
   }
 
+  @Override
   public AbstractAnalysisFactory getMultiTermComponent() {
     return this;
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilter.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilter.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilter.java Tue Jan  8 03:40:16 2013
@@ -124,32 +124,39 @@ public final class ICUTransformFilter ex
       this.length = token.length();
     }
 
+    @Override
     public int char32At(int pos) {
       return UTF16.charAt(buffer, 0, length, pos);
     }
 
+    @Override
     public char charAt(int pos) {
       return buffer[pos];
     }
 
+    @Override
     public void copy(int start, int limit, int dest) {
       char text[] = new char[limit - start];
       getChars(start, limit, text, 0);
       replace(dest, dest, text, 0, limit - start);
     }
 
+    @Override
     public void getChars(int srcStart, int srcLimit, char[] dst, int dstStart) {
       System.arraycopy(buffer, srcStart, dst, dstStart, srcLimit - srcStart);
     }
 
+    @Override
     public boolean hasMetaData() {
       return false;
     }
 
+    @Override
     public int length() {
       return length;
     }
 
+    @Override
     public void replace(int start, int limit, String text) {
       final int charsLen = text.length();
       final int newLength = shiftForReplace(start, limit, charsLen);
@@ -158,6 +165,7 @@ public final class ICUTransformFilter ex
       token.setLength(length = newLength);
     }
 
+    @Override
     public void replace(int start, int limit, char[] text, int charsStart,
         int charsLen) {
       // shift text if necessary for the replacement

Modified: lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -64,6 +64,7 @@ public class ICUTransformFilterFactory e
     transliterator = Transliterator.getInstance(id, dir);
   }
 
+  @Override
   public TokenStream create(TokenStream input) {
     return new ICUTransformFilter(input, transliterator);
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/segmentation/CharArrayIterator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/segmentation/CharArrayIterator.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/segmentation/CharArrayIterator.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/segmentation/CharArrayIterator.java Tue Jan  8 03:40:16 2013
@@ -57,32 +57,39 @@ final class CharArrayIterator implements
     this.limit = start + length;
   }
 
+  @Override
   public char current() {
     return (index == limit) ? DONE : array[index];
   }
 
+  @Override
   public char first() {
     index = start;
     return current();
   }
 
+  @Override
   public int getBeginIndex() {
     return 0;
   }
 
+  @Override
   public int getEndIndex() {
     return length;
   }
 
+  @Override
   public int getIndex() {
     return index - start;
   }
 
+  @Override
   public char last() {
     index = (limit == start) ? limit : limit - 1;
     return current();
   }
 
+  @Override
   public char next() {
     if (++index >= limit) {
       index = limit;
@@ -92,6 +99,7 @@ final class CharArrayIterator implements
     }
   }
 
+  @Override
   public char previous() {
     if (--index < start) {
       index = start;
@@ -101,6 +109,7 @@ final class CharArrayIterator implements
     }
   }
 
+  @Override
   public char setIndex(int position) {
     if (position < getBeginIndex() || position > getEndIndex())
       throw new IllegalArgumentException("Illegal Position: " + position);

Modified: lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/tokenattributes/ScriptAttributeImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/tokenattributes/ScriptAttributeImpl.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/tokenattributes/ScriptAttributeImpl.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/tokenattributes/ScriptAttributeImpl.java Tue Jan  8 03:40:16 2013
@@ -33,18 +33,22 @@ public class ScriptAttributeImpl extends
   /** Initializes this attribute with <code>UScript.COMMON</code> */
   public ScriptAttributeImpl() {}
   
+  @Override
   public int getCode() {
     return code;
   }
   
+  @Override
   public void setCode(int code) {
     this.code = code;
   }
 
+  @Override
   public String getName() {
     return UScript.getName(code);
   }
 
+  @Override
   public String getShortName() {
     return UScript.getShortName(code);
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/build.xml?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/build.xml (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/build.xml Tue Jan  8 03:40:16 2013
@@ -64,7 +64,7 @@
   </target>
 
   <path id="tools.dependencies">
-    <fileset dir="../icu/lib" includes="icu4j-49.1.jar"/>
+    <fileset dir="../icu/lib"/>
   </path>
 
   <path id="tools.classpath">

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseKatakanaStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseKatakanaStemFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseKatakanaStemFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseKatakanaStemFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -48,6 +48,7 @@ public class JapaneseKatakanaStemFilterF
     }
   }
 
+  @Override
   public TokenStream create(TokenStream input) {
     return new JapaneseKatakanaStemFilter(input, minimumLength);
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapanesePartOfSpeechStopFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapanesePartOfSpeechStopFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapanesePartOfSpeechStopFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapanesePartOfSpeechStopFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -42,6 +42,7 @@ public class JapanesePartOfSpeechStopFil
   private boolean enablePositionIncrements;
   private Set<String> stopTags;
 
+  @Override
   public void inform(ResourceLoader loader) throws IOException {
     String stopTagFiles = args.get("tags");
     enablePositionIncrements = getBoolean("enablePositionIncrements", false);
@@ -56,6 +57,7 @@ public class JapanesePartOfSpeechStopFil
     }
   }
 
+  @Override
   public TokenStream create(TokenStream stream) {
     // if stoptags is null, it means the file is empty
     return stopTags == null ? stream : new JapanesePartOfSpeechStopFilter(enablePositionIncrements, stream, stopTags);

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseReadingFormFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseReadingFormFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseReadingFormFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseReadingFormFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -45,6 +45,7 @@ public class JapaneseReadingFormFilterFa
     useRomaji = getBoolean(ROMAJI_PARAM, false);
   }
 
+  @Override
   public TokenStream create(TokenStream input) {
     return new JapaneseReadingFormFilter(input, useRomaji);
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/BaseFormAttributeImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/BaseFormAttributeImpl.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/BaseFormAttributeImpl.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/BaseFormAttributeImpl.java Tue Jan  8 03:40:16 2013
@@ -27,10 +27,12 @@ import org.apache.lucene.util.AttributeR
 public class BaseFormAttributeImpl extends AttributeImpl implements BaseFormAttribute, Cloneable {
   private Token token;
   
+  @Override
   public String getBaseForm() {
     return token == null ? null : token.getBaseForm();
   }
   
+  @Override
   public void setToken(Token token) {
     this.token = token;
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/InflectionAttributeImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/InflectionAttributeImpl.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/InflectionAttributeImpl.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/InflectionAttributeImpl.java Tue Jan  8 03:40:16 2013
@@ -28,14 +28,17 @@ import org.apache.lucene.util.AttributeR
 public class InflectionAttributeImpl extends AttributeImpl implements InflectionAttribute, Cloneable {
   private Token token;
   
+  @Override
   public String getInflectionType() {
     return token == null ? null : token.getInflectionType();
   }
   
+  @Override
   public String getInflectionForm() {
     return token == null ? null : token.getInflectionForm();
   }
   
+  @Override
   public void setToken(Token token) {
     this.token = token;
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/PartOfSpeechAttributeImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/PartOfSpeechAttributeImpl.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/PartOfSpeechAttributeImpl.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/PartOfSpeechAttributeImpl.java Tue Jan  8 03:40:16 2013
@@ -28,10 +28,12 @@ import org.apache.lucene.util.AttributeR
 public class PartOfSpeechAttributeImpl extends AttributeImpl implements PartOfSpeechAttribute, Cloneable {
   private Token token;
   
+  @Override
   public String getPartOfSpeech() {
     return token == null ? null : token.getPartOfSpeech();
   }
   
+  @Override
   public void setToken(Token token) {
     this.token = token;
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/ReadingAttributeImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/ReadingAttributeImpl.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/ReadingAttributeImpl.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/tokenattributes/ReadingAttributeImpl.java Tue Jan  8 03:40:16 2013
@@ -28,14 +28,17 @@ import org.apache.lucene.util.AttributeR
 public class ReadingAttributeImpl extends AttributeImpl implements ReadingAttribute, Cloneable {
   private Token token;
   
+  @Override
   public String getReading() {
     return token == null ? null : token.getReading();
   }
   
+  @Override
   public String getPronunciation() {
     return token == null ? null : token.getPronunciation();
   }
   
+  @Override
   public void setToken(Token token) {
     this.token = token;
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/resources/org/apache/lucene/analysis/ja/dict/TokenInfoDictionary$fst.dat
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/resources/org/apache/lucene/analysis/ja/dict/TokenInfoDictionary%24fst.dat?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/test/org/apache/lucene/analysis/ja/StringMockResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/test/org/apache/lucene/analysis/ja/StringMockResourceLoader.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/test/org/apache/lucene/analysis/ja/StringMockResourceLoader.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/test/org/apache/lucene/analysis/ja/StringMockResourceLoader.java Tue Jan  8 03:40:16 2013
@@ -33,6 +33,7 @@ class StringMockResourceLoader implement
     this.text = text;
   }
 
+  @Override
   public <T> T newInstance(String cname, Class<T> expectedType) {
     try {
       Class<? extends T> clazz = Class.forName(cname).asSubclass(expectedType);
@@ -42,6 +43,7 @@ class StringMockResourceLoader implement
     }
   }
 
+  @Override
   public InputStream openResource(String resource) throws IOException {
     return new ByteArrayInputStream(text.getBytes("UTF-8"));
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/tools/java/org/apache/lucene/analysis/ja/util/BinaryDictionaryWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/tools/java/org/apache/lucene/analysis/ja/util/BinaryDictionaryWriter.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/tools/java/org/apache/lucene/analysis/ja/util/BinaryDictionaryWriter.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/tools/java/org/apache/lucene/analysis/ja/util/BinaryDictionaryWriter.java Tue Jan  8 03:40:16 2013
@@ -232,7 +232,7 @@ public abstract class BinaryDictionaryWr
    * Write dictionary in file
    * Dictionary format is:
    * [Size of dictionary(int)], [entry:{left id(short)}{right id(short)}{word cost(short)}{length of pos info(short)}{pos info(char)}], [entry...], [entry...].....
-   * @throws IOException
+   * @throws IOException if an I/O error occurs writing the dictionary files
    */
   public void write(String baseDir) throws IOException {
     final String baseName = getBaseFileName(baseDir);

Modified: lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/tools/java/org/apache/lucene/analysis/ja/util/TokenInfoDictionaryBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/tools/java/org/apache/lucene/analysis/ja/util/TokenInfoDictionaryBuilder.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/tools/java/org/apache/lucene/analysis/ja/util/TokenInfoDictionaryBuilder.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/kuromoji/src/tools/java/org/apache/lucene/analysis/ja/util/TokenInfoDictionaryBuilder.java Tue Jan  8 03:40:16 2013
@@ -162,7 +162,7 @@ public class TokenInfoDictionaryBuilder 
       offset = next;
     }
     
-    final FST<Long> fst = fstBuilder.finish().pack(2, 100000, PackedInts.DEFAULT);
+    final FST<Long> fst = fstBuilder.finish();
     
     System.out.print("  " + fst.getNodeCount() + " nodes, " + fst.getArcCount() + " arcs, " + fst.sizeInBytes() + " bytes...  ");
     dictionary.setFST(fst);

Modified: lucene/dev/branches/lucene4547/lucene/analysis/morfologik/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/morfologik/build.xml?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/morfologik/build.xml (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/morfologik/build.xml Tue Jan  8 03:40:16 2013
@@ -27,9 +27,7 @@
 
   <path id="classpath">
     <pathelement path="${analyzers-common.jar}"/>
-    <pathelement path="lib/morfologik-fsa-1.5.3.jar"/>
-    <pathelement path="lib/morfologik-polish-1.5.3.jar"/>
-    <pathelement path="lib/morfologik-stemming-1.5.3.jar"/>
+    <fileset dir="lib"/>
     <path refid="base.classpath"/>
   </path>
 

Modified: lucene/dev/branches/lucene4547/lucene/analysis/morfologik/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/morfologik/ivy.xml?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/morfologik/ivy.xml (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/morfologik/ivy.xml Tue Jan  8 03:40:16 2013
@@ -19,9 +19,9 @@
 <ivy-module version="2.0">
     <info organisation="org.apache.lucene" module="analyzers-morfologik"/>
     <dependencies>
-      <dependency org="org.carrot2" name="morfologik-polish" rev="1.5.3" transitive="false"/>
-      <dependency org="org.carrot2" name="morfologik-fsa" rev="1.5.3" transitive="false"/>
-      <dependency org="org.carrot2" name="morfologik-stemming" rev="1.5.3" transitive="false"/>
+      <dependency org="org.carrot2" name="morfologik-polish" rev="1.5.5" transitive="false"/>
+      <dependency org="org.carrot2" name="morfologik-fsa" rev="1.5.5" transitive="false"/>
+      <dependency org="org.carrot2" name="morfologik-stemming" rev="1.5.5" transitive="false"/>
       <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
     </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/lucene4547/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorphosyntacticTagsAttributeImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorphosyntacticTagsAttributeImpl.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorphosyntacticTagsAttributeImpl.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorphosyntacticTagsAttributeImpl.java Tue Jan  8 03:40:16 2013
@@ -47,10 +47,12 @@ public class MorphosyntacticTagsAttribut
     return tags;
   }
 
+  @Override
   public void clear() {
     tags = null;
   }
 
+  @Override
   public boolean equals(Object other) {
     if (other instanceof MorphosyntacticTagsAttribute) {
       return equal(this.getTags(), ((MorphosyntacticTagsAttribute) other).getTags());
@@ -62,6 +64,7 @@ public class MorphosyntacticTagsAttribut
     return l1 == null ? (l2 == null) : (l1.equals(l2));
   }
 
+  @Override
   public int hashCode() {
     return this.tags == null ? 0 : tags.hashCode();
   }
@@ -75,6 +78,7 @@ public class MorphosyntacticTagsAttribut
     this.tags = tags;
   }
 
+  @Override
   public void copyTo(AttributeImpl target) {
     List<StringBuilder> cloned = null;
     if (tags != null) {
@@ -86,6 +90,7 @@ public class MorphosyntacticTagsAttribut
     ((MorphosyntacticTagsAttribute) target).setTags(cloned);
   }
 
+  @Override
   public MorphosyntacticTagsAttributeImpl clone() {
     MorphosyntacticTagsAttributeImpl cloned = new MorphosyntacticTagsAttributeImpl();
     this.copyTo(cloned);

Modified: lucene/dev/branches/lucene4547/lucene/analysis/phonetic/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/phonetic/build.xml?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/phonetic/build.xml (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/phonetic/build.xml Tue Jan  8 03:40:16 2013
@@ -27,7 +27,7 @@
 
   <path id="classpath">
     <pathelement path="${analyzers-common.jar}"/>
-    <pathelement path="lib/commons-codec-1.7.jar"/>
+    <fileset dir="lib"/>
     <path refid="base.classpath"/>
   </path>
 

Modified: lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -51,6 +51,7 @@ public class BeiderMorseFilterFactory ex
   /** Sole constructor. See {@link AbstractAnalysisFactory} for initialization lifecycle. */
   public BeiderMorseFilterFactory() {}
   
+  @Override
   public void init(Map<String,String> args) {
     super.init(args);
     

Modified: lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DoubleMetaphoneFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DoubleMetaphoneFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DoubleMetaphoneFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DoubleMetaphoneFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -61,6 +61,7 @@ public class DoubleMetaphoneFilterFactor
     }
   }
 
+  @Override
   public DoubleMetaphoneFilter create(TokenStream input) {
     return new DoubleMetaphoneFilter(input, maxCodeLength, inject);
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -148,6 +148,7 @@ public class PhoneticFilterFactory exten
     }
   }
 
+  @Override
   public PhoneticFilter create(TokenStream input) {
     return new PhoneticFilter(input, getEncoder(), inject);
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseSentenceTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseSentenceTokenizerFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseSentenceTokenizerFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseSentenceTokenizerFactory.java Tue Jan  8 03:40:16 2013
@@ -28,6 +28,7 @@ import org.apache.lucene.analysis.util.T
  * @lucene.experimental
  */
 public class SmartChineseSentenceTokenizerFactory extends TokenizerFactory {
+  @Override
   public Tokenizer create(Reader input) {
     return new SentenceTokenizer(input);
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseWordTokenFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseWordTokenFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseWordTokenFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseWordTokenFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -32,6 +32,7 @@ import org.apache.lucene.analysis.util.T
  * @lucene.experimental
  */
 public class SmartChineseWordTokenFilterFactory extends TokenFilterFactory {
+  @Override
   public TokenFilter create(TokenStream input) {
       return new WordTokenFilter(input);
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/PathNode.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/PathNode.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/PathNode.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/PathNode.java Tue Jan  8 03:40:16 2013
@@ -29,6 +29,7 @@ class PathNode implements Comparable<Pat
 
   public int preNode;
 
+  @Override
   public int compareTo(PathNode pn) {
     if (weight < pn.weight)
       return -1;

Modified: lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java Tue Jan  8 03:40:16 2013
@@ -32,6 +32,7 @@ public class StempelPolishStemFilterFact
   /** Sole constructor. See {@link AbstractAnalysisFactory} for initialization lifecycle. */
   public StempelPolishStemFilterFactory() {}
 
+  @Override
   public TokenStream create(TokenStream input) {
     return new StempelFilter(input, new StempelStemmer(PolishAnalyzer.getDefaultTable()));
   }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/java/org/egothor/stemmer/Compile.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/java/org/egothor/stemmer/Compile.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/java/org/egothor/stemmer/Compile.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/java/org/egothor/stemmer/Compile.java Tue Jan  8 03:40:16 2013
@@ -148,6 +148,7 @@ public class Compile {
           // no base token (stem) on a line
         }
       }
+      in.close();
       
       Optimizer o = new Optimizer();
       Optimizer2 o2 = new Optimizer2();

Modified: lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java Tue Jan  8 03:40:16 2013
@@ -60,7 +60,9 @@ import java.io.BufferedReader;
 import java.io.DataInputStream;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.LineNumberReader;
 import java.net.URI;
@@ -69,12 +71,18 @@ import java.util.StringTokenizer;
 
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
 
 public class TestCompile extends LuceneTestCase {
   
   public void testCompile() throws Exception {
-    URI uri = getClass().getResource("testRules.txt").toURI();
-    String path = uri.getPath();
+    File dir = _TestUtil.getTempDir("testCompile");
+    dir.mkdirs();
+    InputStream input = getClass().getResourceAsStream("testRules.txt");
+    File output = new File(dir, "testRules.txt");
+    copy(input, output);
+    input.close();
+    String path = output.getAbsolutePath();
     Compile.main(new String[] {"test", path});
     String compiled = path + ".out";
     Trie trie = loadTrie(compiled);
@@ -84,8 +92,13 @@ public class TestCompile extends LuceneT
   }
   
   public void testCompileBackwards() throws Exception {
-    URI uri = getClass().getResource("testRules.txt").toURI();
-    String path = uri.getPath();
+    File dir = _TestUtil.getTempDir("testCompile");
+    dir.mkdirs();
+    InputStream input = getClass().getResourceAsStream("testRules.txt");
+    File output = new File(dir, "testRules.txt");
+    copy(input, output);
+    input.close();
+    String path = output.getAbsolutePath();
     Compile.main(new String[] {"-test", path});
     String compiled = path + ".out";
     Trie trie = loadTrie(compiled);
@@ -95,8 +108,13 @@ public class TestCompile extends LuceneT
   }
   
   public void testCompileMulti() throws Exception {
-    URI uri = getClass().getResource("testRules.txt").toURI();
-    String path = uri.getPath();
+    File dir = _TestUtil.getTempDir("testCompile");
+    dir.mkdirs();
+    InputStream input = getClass().getResourceAsStream("testRules.txt");
+    File output = new File(dir, "testRules.txt");
+    copy(input, output);
+    input.close();
+    String path = output.getAbsolutePath();
     Compile.main(new String[] {"Mtest", path});
     String compiled = path + ".out";
     Trie trie = loadTrie(compiled);
@@ -151,5 +169,20 @@ public class TestCompile extends LuceneT
         // no base token (stem) on a line
       }
     }
+    
+    in.close();
+  }
+  
+  private static void copy(InputStream input, File output) throws IOException {
+    FileOutputStream os = new FileOutputStream(output);
+    try {
+      byte buffer[] = new byte[1024];
+      int len;
+      while ((len = input.read(buffer)) > 0) {
+        os.write(buffer, 0, len);
+      }
+    } finally {
+      os.close();
+    }
   }
 }

Modified: lucene/dev/branches/lucene4547/lucene/analysis/uima/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/uima/build.xml?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/uima/build.xml (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/uima/build.xml Tue Jan  8 03:40:16 2013
@@ -27,9 +27,7 @@
   <property name="tests.jvms.override" value="1" />
 
   <path id="uimajars">
-    <pathelement path="lib/uimaj-core-2.3.1.jar"/>
-    <pathelement path="lib/Tagger-2.3.1.jar"/>
-    <pathelement path="lib/WhitespaceTokenizer-2.3.1.jar"/>
+    <fileset dir="lib"/>
   </path>
 
   <import file="../analysis-module-build.xml"/>

Modified: lucene/dev/branches/lucene4547/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMAAnnotationsTokenizer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMAAnnotationsTokenizer.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMAAnnotationsTokenizer.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMAAnnotationsTokenizer.java Tue Jan  8 03:40:16 2013
@@ -47,6 +47,7 @@ public final class UIMAAnnotationsTokeni
     this.offsetAttr = addAttribute(OffsetAttribute.class);
   }
 
+  @Override
   protected void initializeIterator() throws IOException {
     try {
       analyzeInput();

Modified: lucene/dev/branches/lucene4547/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMATypeAwareAnnotationsTokenizer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMATypeAwareAnnotationsTokenizer.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMATypeAwareAnnotationsTokenizer.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/uima/src/java/org/apache/lucene/analysis/uima/UIMATypeAwareAnnotationsTokenizer.java Tue Jan  8 03:40:16 2013
@@ -59,6 +59,7 @@ public final class UIMATypeAwareAnnotati
     this.typeAttributeFeaturePath = typeAttributeFeaturePath;
   }
 
+  @Override
   protected void initializeIterator() throws IOException {
     try {
       analyzeInput();

Modified: lucene/dev/branches/lucene4547/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java Tue Jan  8 03:40:16 2013
@@ -44,12 +44,14 @@ public class UIMABaseAnalyzerTest extend
 
   private UIMABaseAnalyzer analyzer;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
     analyzer = new UIMABaseAnalyzer("/uima/AggregateSentenceAE.xml", "org.apache.uima.TokenAnnotation");
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     analyzer.close();

Modified: lucene/dev/branches/lucene4547/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java Tue Jan  8 03:40:16 2013
@@ -32,6 +32,7 @@ public class UIMATypeAwareAnalyzerTest e
 
   private UIMATypeAwareAnalyzer analyzer;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -39,6 +40,7 @@ public class UIMATypeAwareAnalyzerTest e
         "org.apache.uima.TokenAnnotation", "posTag");
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     analyzer.close();

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/build.xml?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/build.xml (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/build.xml Tue Jan  8 03:40:16 2013
@@ -147,13 +147,9 @@
       <pathelement path="${analyzers-common.jar}"/>
       <pathelement path="${queryparser.jar}"/>
       <pathelement path="${facet.jar}"/>
-      <fileset dir="${common.dir}/analysis/icu/lib" includes="icu4j-49.1.jar"/>
+      <fileset dir="${common.dir}/analysis/icu/lib"/>
       <path refid="base.classpath"/>
-    	<fileset dir="lib">
-    	  <include name="commons-compress-1.4.1.jar"/>
-    	  <include name="xercesImpl-2.9.1.jar"/>
-    	  <include name="nekohtml-1.9.17.jar"/>
-    	</fileset>
+      <fileset dir="lib"/>
     </path>
     <path id="run.classpath">
         <path refid="classpath"/>
@@ -204,8 +200,8 @@
 	
 	<path id="collation.runtime.classpath">
 	  <path refid="run.classpath"/>
-    <pathelement path="${analyzers-icu.jar}"/>
-    <fileset dir="${common.dir}/analysis/icu/lib" includes="icu4j-49.1.jar"/>
+      <pathelement path="${analyzers-icu.jar}"/>
+      <fileset dir="${common.dir}/analysis/icu/lib"/>
 	</path>
 	
 	<target name="collation" depends="compile,jar-analyzers-icu,top-100k-wiki-word-files">

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/AbstractQueryMaker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/AbstractQueryMaker.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/AbstractQueryMaker.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/AbstractQueryMaker.java Tue Jan  8 03:40:16 2013
@@ -28,17 +28,20 @@ public abstract class AbstractQueryMaker
   protected Query[] queries;
   protected Config config;
 
+  @Override
   public void resetInputs() {
     qnum = 0;
   }
 
   protected abstract Query[] prepareQueries() throws Exception;
 
+  @Override
   public void setConfig(Config config) throws Exception {
     this.config = config;
     queries = prepareQueries();
   }
 
+  @Override
   public String printQueries() {
     String newline = System.getProperty("line.separator");
     StringBuilder sb = new StringBuilder();
@@ -51,6 +54,7 @@ public abstract class AbstractQueryMaker
     return sb.toString();
   }
 
+  @Override
   public Query makeQuery() throws Exception {
     return queries[nextQnum()];
   }
@@ -66,6 +70,7 @@ public abstract class AbstractQueryMaker
   *  (non-Javadoc)
   * @see org.apache.lucene.benchmark.byTask.feeds.QueryMaker#makeQuery(int)
   */
+  @Override
   public Query makeQuery(int size) throws Exception {
     throw new Exception(this+".makeQuery(int size) is not supported!");
   }

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ContentItemsSource.java Tue Jan  8 03:40:16 2013
@@ -107,6 +107,7 @@ public abstract class ContentItemsSource
   }
 
   /** Called when reading from this content source is no longer required. */
+  @Override
   public abstract void close() throws IOException;
   
   /** Returns the number of bytes generated since last reset. */

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DirContentSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DirContentSource.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DirContentSource.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DirContentSource.java Tue Jan  8 03:40:16 2013
@@ -57,6 +57,7 @@ public class DirContentSource extends Co
   public static class Iterator implements java.util.Iterator<File> {
 
     static class Comparator implements java.util.Comparator<File> {
+      @Override
       public int compare(File _a, File _b) {
         String a = _a.toString();
         String b = _b.toString();
@@ -106,12 +107,14 @@ public class DirContentSource extends Co
     void push(File f) {
       push(f.listFiles(new FileFilter() {
 
+        @Override
         public boolean accept(File file) {
           return file.isDirectory();
         }
       }));
       push(f.listFiles(new FileFilter() {
 
+        @Override
         public boolean accept(File file) {
           return file.getName().endsWith(".txt");
         }
@@ -131,10 +134,12 @@ public class DirContentSource extends Co
       return count;
     }
 
+    @Override
     public boolean hasNext() {
       return stack.size() > 0;
     }
     
+    @Override
     public File next() {
       assert hasNext();
       count++;
@@ -144,6 +149,7 @@ public class DirContentSource extends Co
       return object;
     }
 
+    @Override
     public void remove() {
       throw new RuntimeException("cannot");
     }

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/EnwikiContentSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/EnwikiContentSource.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/EnwikiContentSource.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/EnwikiContentSource.java Tue Jan  8 03:40:16 2013
@@ -170,6 +170,7 @@ public class EnwikiContentSource extends
       }
     }
 
+    @Override
     public void run() {
 
       try {

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/FacetSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/FacetSource.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/FacetSource.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/FacetSource.java Tue Jan  8 03:40:16 2013
@@ -19,7 +19,7 @@ package org.apache.lucene.benchmark.byTa
 
 import java.io.IOException;
 
-import org.apache.lucene.facet.index.CategoryContainer;
+import org.apache.lucene.facet.associations.CategoryAssociationsContainer;
 
 /**
  * Source items for facets.
@@ -28,11 +28,13 @@ import org.apache.lucene.facet.index.Cat
  */
 public abstract class FacetSource extends ContentItemsSource {
 
-  /** Returns the next {@link CategoryContainer facets content item}. 
-   * Implementations must account for multi-threading, as multiple threads 
-   * can call this method simultaneously. 
+  /**
+   * Returns the next {@link CategoryAssociationsContainer facets content item}.
+   * Implementations must account for multi-threading, as multiple threads can
+   * call this method simultaneously.
    */
-  public abstract CategoryContainer getNextFacets(CategoryContainer facets) throws NoMoreDataException, IOException;
+  public abstract CategoryAssociationsContainer getNextFacets(CategoryAssociationsContainer facets) 
+      throws NoMoreDataException, IOException;
 
   @Override
   public void resetInputs() throws IOException {

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/LineDocSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/LineDocSource.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/LineDocSource.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/LineDocSource.java Tue Jan  8 03:40:16 2013
@@ -72,6 +72,7 @@ public class LineDocSource extends Conte
     public SimpleLineParser(String[] header) {
       super(header);
     }
+    @Override
     public void parseLine(DocData docData, String line) {
       int k1 = 0;
       int k2 = line.indexOf(WriteLineDocTask.SEP, k1);
@@ -122,6 +123,7 @@ public class LineDocSource extends Conte
       }
     }
     
+    @Override
     public void parseLine(DocData docData, String line) {
       int n = 0;
       int k1 = 0;

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/LongToEnglishQueryMaker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/LongToEnglishQueryMaker.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/LongToEnglishQueryMaker.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/LongToEnglishQueryMaker.java Tue Jan  8 03:40:16 2013
@@ -40,10 +40,12 @@ public class LongToEnglishQueryMaker imp
   private final RuleBasedNumberFormat rnbf = new RuleBasedNumberFormat(Locale.ROOT,
                                                                        RuleBasedNumberFormat.SPELLOUT);
 
+  @Override
   public Query makeQuery(int size) throws Exception {
     throw new UnsupportedOperationException();
   }
 
+  @Override
   public synchronized Query makeQuery() throws Exception {
     return parser.parse("" + rnbf.format(getNextCounter()) + "");
   }
@@ -55,15 +57,18 @@ public class LongToEnglishQueryMaker imp
     return counter++;
   }
 
+  @Override
   public void setConfig(Config config) throws Exception {
     Analyzer anlzr = NewAnalyzerTask.createAnalyzer(config.get("analyzer", StandardAnalyzer.class.getName()));
     parser = new QueryParser(Version.LUCENE_CURRENT, DocMaker.BODY_FIELD, anlzr);
   }
 
+  @Override
   public void resetInputs() {
     counter = Long.MIN_VALUE + 10;
   }
 
+  @Override
   public String printQueries() {
     return "LongToEnglish: [" + Long.MIN_VALUE + " TO " + counter + "]";
   }

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/RandomFacetSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/RandomFacetSource.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/RandomFacetSource.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/RandomFacetSource.java Tue Jan  8 03:40:16 2013
@@ -21,7 +21,7 @@ import java.io.IOException;
 import java.util.Random;
 
 import org.apache.lucene.benchmark.byTask.utils.Config;
-import org.apache.lucene.facet.index.CategoryContainer;
+import org.apache.lucene.facet.associations.CategoryAssociationsContainer;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 
 /**
@@ -45,21 +45,23 @@ public class RandomFacetSource extends F
   private int maxValue = maxDocFacets * maxFacetDepth;
   
   @Override
-  public CategoryContainer getNextFacets(CategoryContainer facets) throws NoMoreDataException, IOException {
+  public CategoryAssociationsContainer getNextFacets(CategoryAssociationsContainer facets) 
+      throws NoMoreDataException, IOException {
     if (facets == null) {
-      facets = new CategoryContainer();
+      facets = new CategoryAssociationsContainer();
     } else {
       facets.clear();
     }
     int numFacets = 1 + random.nextInt(maxDocFacets-1); // at least one facet to each doc
-    for (int i=0; i<numFacets; i++) {
-      CategoryPath cp = new CategoryPath();
-      int depth = 1 + random.nextInt(maxFacetDepth-1); // depth 0 is not useful
-      for (int k=0; k<depth; k++) {
-        cp.add(Integer.toString(random.nextInt(maxValue)));
+    for (int i = 0; i < numFacets; i++) {
+      int depth = 1 + random.nextInt(maxFacetDepth - 1); // depth 0 is not useful
+      String[] components = new String[depth];
+      for (int k = 0; k < depth; k++) {
+        components[k] = Integer.toString(random.nextInt(maxValue));
         addItem();
       }
-      facets.addCategory(cp);
+      CategoryPath cp = new CategoryPath(components);
+      facets.setAssociation(cp, null);
       addBytes(cp.toString().length()); // very rough approximation
     }
     return facets;

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AddFacetedDocTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AddFacetedDocTask.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AddFacetedDocTask.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AddFacetedDocTask.java Tue Jan  8 03:40:16 2013
@@ -19,8 +19,8 @@ package org.apache.lucene.benchmark.byTa
 
 import org.apache.lucene.benchmark.byTask.PerfRunData;
 import org.apache.lucene.benchmark.byTask.feeds.FacetSource;
-import org.apache.lucene.facet.index.CategoryContainer;
-import org.apache.lucene.facet.index.CategoryDocumentBuilder;
+import org.apache.lucene.facet.associations.CategoryAssociationsContainer;
+import org.apache.lucene.facet.index.FacetFields;
 
 /**
  * Add a faceted document.
@@ -42,8 +42,8 @@ public class AddFacetedDocTask extends A
     super(runData);
   }
 
-  private CategoryContainer facets = null;
-  private CategoryDocumentBuilder categoryDocBuilder = null;
+  private CategoryAssociationsContainer facets = null;
+  private FacetFields facetFields = null;
   private boolean withFacets = true;
   
   @Override
@@ -53,8 +53,7 @@ public class AddFacetedDocTask extends A
     facets = getRunData().getFacetSource().getNextFacets(facets);  
     withFacets = getRunData().getConfig().get("with.facets", true);
     if (withFacets) {
-      categoryDocBuilder = new CategoryDocumentBuilder(getRunData().getTaxonomyWriter());
-      categoryDocBuilder.setCategories(facets);
+      facetFields = new FacetFields(getRunData().getTaxonomyWriter());
     }
   }
 
@@ -69,7 +68,7 @@ public class AddFacetedDocTask extends A
   @Override
   public int doLogic() throws Exception {
     if (withFacets) {
-      categoryDocBuilder.build(doc);
+      facetFields.addFields(doc, facets);
     }
     return super.doLogic();
   }

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/QualityQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/QualityQuery.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/QualityQuery.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/QualityQuery.java Tue Jan  8 03:40:16 2013
@@ -71,6 +71,7 @@ public class QualityQuery implements Com
 
   /* for a nicer sort of input queries before running them.
    * Try first as ints, fall back to string if not int. */ 
+  @Override
   public int compareTo(QualityQuery other) {
     try {
       // compare as ints when ids ints

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/trec/TrecJudge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/trec/TrecJudge.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/trec/TrecJudge.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/trec/TrecJudge.java Tue Jan  8 03:40:16 2013
@@ -83,6 +83,7 @@ public class TrecJudge implements Judge 
   }
   
   // inherit javadocs
+  @Override
   public boolean isRelevant(String docName, QualityQuery query) {
     QRelJudgement qrj = judgements.get(query.getQueryID());
     return qrj!=null && qrj.isRelevant(docName);
@@ -112,6 +113,7 @@ public class TrecJudge implements Judge 
   }
 
   // inherit javadocs
+  @Override
   public boolean validateData(QualityQuery[] qq, PrintWriter logger) {
     HashMap<String,QRelJudgement> missingQueries = new HashMap<String, QRelJudgement>(judgements);
     ArrayList<String> missingJudgements = new ArrayList<String>();
@@ -146,6 +148,7 @@ public class TrecJudge implements Judge 
   }
 
   // inherit javadocs
+  @Override
   public int maxRecall(QualityQuery query) {
     QRelJudgement qrj = judgements.get(query.getQueryID());
     if (qrj!=null) {

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/SimpleQQParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/SimpleQQParser.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/SimpleQQParser.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/SimpleQQParser.java Tue Jan  8 03:40:16 2013
@@ -59,6 +59,7 @@ public class SimpleQQParser implements Q
   /* (non-Javadoc)
    * @see org.apache.lucene.benchmark.quality.QualityQueryParser#parse(org.apache.lucene.benchmark.quality.QualityQuery)
    */
+  @Override
   public Query parse(QualityQuery qq) throws ParseException {
     QueryParser qp = queryParser.get();
     if (qp==null) {

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/utils/ExtractReuters.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/utils/ExtractReuters.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/utils/ExtractReuters.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/java/org/apache/lucene/benchmark/utils/ExtractReuters.java Tue Jan  8 03:40:16 2013
@@ -51,6 +51,7 @@ public class ExtractReuters {
 
   public void extract() {
     File[] sgmFiles = reutersDir.listFiles(new FileFilter() {
+      @Override
       public boolean accept(File file) {
         return file.getName().endsWith(".sgm");
       }

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java Tue Jan  8 03:40:16 2013
@@ -94,14 +94,17 @@ public class TestPerfTasksParse extends 
   }
   
   public static class MockContentSource extends ContentSource {
+    @Override
     public DocData getNextDocData(DocData docData)
         throws NoMoreDataException, IOException {
       return docData;
     }
+    @Override
     public void close() throws IOException { }
   }
 
   public static class MockQueryMaker extends AbstractQueryMaker {
+    @Override
     protected Query[] prepareQueries() throws Exception {
       return new Query[0];
     }
@@ -113,6 +116,7 @@ public class TestPerfTasksParse extends 
     boolean foundFiles = false;
     final File examplesDir = new File(ConfLoader.class.getResource(".").toURI());
     for (File algFile : examplesDir.listFiles(new FileFilter() {
+      @Override
       public boolean accept(File pathname) { return pathname.isFile() && pathname.getName().endsWith(".alg"); }
     })) {
       try {

Modified: lucene/dev/branches/lucene4547/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/utils/StreamUtilsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/utils/StreamUtilsTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/utils/StreamUtilsTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/utils/StreamUtilsTest.java Tue Jan  8 03:40:16 2013
@@ -133,6 +133,7 @@ public class StreamUtilsTest extends Ben
     r.close();
   }
   
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -141,6 +142,7 @@ public class StreamUtilsTest extends Ben
     assertTrue(testDir.mkdirs());
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     _TestUtil.rmDir(testDir);

Modified: lucene/dev/branches/lucene4547/lucene/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/build.xml?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/build.xml (original)
+++ lucene/dev/branches/lucene4547/lucene/build.xml Tue Jan  8 03:40:16 2013
@@ -133,7 +133,7 @@
           -->
       <test-macro 
         dataDir="${backwards.dir}/core/src/test" 
-        tempDir="${build.dir.backwards}/test" 
+        workDir="${build.dir.backwards}/test" 
         junit.classpath="backwards.junit.classpath" 
         junit.output.dir="${junit.output.dir.backwards}" 
         tests.nightly="false"

Modified: lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/ClassificationResult.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/ClassificationResult.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/ClassificationResult.java (original)
+++ lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/ClassificationResult.java Tue Jan  8 03:40:16 2013
@@ -17,29 +17,29 @@
 package org.apache.lucene.classification;
 
 /**
- * The result of a call to {@link Classifier#assignClass(String)} holding an assigned class and a score.
+ * The result of a call to {@link Classifier#assignClass(String)} holding an assigned class of type <code>T</code> and a score.
  * @lucene.experimental
  */
-public class ClassificationResult {
+public class ClassificationResult<T> {
 
-  private String assignedClass;
+  private T assignedClass;
   private double score;
 
   /**
    * Constructor
-   * @param assignedClass the class <code>String</code> assigned by a {@link Classifier}
+   * @param assignedClass the class <code>T</code> assigned by a {@link Classifier}
    * @param score the score for the assignedClass as a <code>double</code>
    */
-  public ClassificationResult(String assignedClass, double score) {
+  public ClassificationResult(T assignedClass, double score) {
     this.assignedClass = assignedClass;
     this.score = score;
   }
 
   /**
    * retrieve the result class
-   * @return a <code>String</code> representing an assigned class
+   * @return a <code>T</code> representing an assigned class
    */
-  public String getAssignedClass() {
+  public T getAssignedClass() {
     return assignedClass;
   }
 

Modified: lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/Classifier.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/Classifier.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/Classifier.java (original)
+++ lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/Classifier.java Tue Jan  8 03:40:16 2013
@@ -22,18 +22,19 @@ import org.apache.lucene.index.AtomicRea
 import java.io.IOException;
 
 /**
- * A classifier, see <code>http://en.wikipedia.org/wiki/Classifier_(mathematics)</code>
+ * A classifier, see <code>http://en.wikipedia.org/wiki/Classifier_(mathematics)</code>, which assign classes of type
+ * <code>T</code>
  * @lucene.experimental
  */
-public interface Classifier {
+public interface Classifier<T> {
 
   /**
    * Assign a class (with score) to the given text String
    * @param text a String containing text to be classified
-   * @return a {@link ClassificationResult} holding assigned class and score
+   * @return a {@link ClassificationResult} holding assigned class of type <code>T</code> and score
    * @throws IOException If there is a low-level I/O error.
    */
-  public ClassificationResult assignClass(String text) throws IOException;
+  public ClassificationResult<T> assignClass(String text) throws IOException;
 
   /**
    * Train the classifier using the underlying Lucene index

Modified: lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/KNearestNeighborClassifier.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/KNearestNeighborClassifier.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/KNearestNeighborClassifier.java (original)
+++ lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/KNearestNeighborClassifier.java Tue Jan  8 03:40:16 2013
@@ -23,6 +23,7 @@ import org.apache.lucene.search.IndexSea
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.util.BytesRef;
 
 import java.io.IOException;
 import java.io.StringReader;
@@ -35,7 +36,7 @@ import java.util.Map;
  *
  * @lucene.experimental
  */
-public class KNearestNeighborClassifier implements Classifier {
+public class KNearestNeighborClassifier implements Classifier<BytesRef> {
 
   private MoreLikeThis mlt;
   private String textFieldName;
@@ -56,35 +57,37 @@ public class KNearestNeighborClassifier 
    * {@inheritDoc}
    */
   @Override
-  public ClassificationResult assignClass(String text) throws IOException {
+  public ClassificationResult<BytesRef> assignClass(String text) throws IOException {
     Query q = mlt.like(new StringReader(text), textFieldName);
     TopDocs topDocs = indexSearcher.search(q, k);
     return selectClassFromNeighbors(topDocs);
   }
 
-  private ClassificationResult selectClassFromNeighbors(TopDocs topDocs) throws IOException {
+  private ClassificationResult<BytesRef> selectClassFromNeighbors(TopDocs topDocs) throws IOException {
     // TODO : improve the nearest neighbor selection
-    Map<String, Integer> classCounts = new HashMap<String, Integer>();
+    Map<BytesRef, Integer> classCounts = new HashMap<BytesRef, Integer>();
     for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
-      String cl = indexSearcher.doc(scoreDoc.doc).getField(classFieldName).stringValue();
-      Integer count = classCounts.get(cl);
-      if (count != null) {
-        classCounts.put(cl, count + 1);
-      } else {
-        classCounts.put(cl, 1);
+      BytesRef cl = new BytesRef(indexSearcher.doc(scoreDoc.doc).getField(classFieldName).stringValue());
+      if (cl != null) {
+        Integer count = classCounts.get(cl);
+        if (count != null) {
+          classCounts.put(cl, count + 1);
+        } else {
+          classCounts.put(cl, 1);
+        }
       }
     }
     double max = 0;
-    String assignedClass = null;
-    for (String cl : classCounts.keySet()) {
+    BytesRef assignedClass = new BytesRef();
+    for (BytesRef cl : classCounts.keySet()) {
       Integer count = classCounts.get(cl);
       if (count > max) {
         max = count;
-        assignedClass = cl;
+        assignedClass = cl.clone();
       }
     }
     double score = max / (double) k;
-    return new ClassificationResult(assignedClass, score);
+    return new ClassificationResult<BytesRef>(assignedClass, score);
   }
 
   /**

Modified: lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/SimpleNaiveBayesClassifier.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/SimpleNaiveBayesClassifier.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/SimpleNaiveBayesClassifier.java (original)
+++ lucene/dev/branches/lucene4547/lucene/classification/src/java/org/apache/lucene/classification/SimpleNaiveBayesClassifier.java Tue Jan  8 03:40:16 2013
@@ -41,7 +41,7 @@ import java.util.LinkedList;
  *
  * @lucene.experimental
  */
-public class SimpleNaiveBayesClassifier implements Classifier {
+public class SimpleNaiveBayesClassifier implements Classifier<BytesRef> {
 
   private AtomicReader atomicReader;
   private String textFieldName;
@@ -89,12 +89,12 @@ public class SimpleNaiveBayesClassifier 
    * {@inheritDoc}
    */
   @Override
-  public ClassificationResult assignClass(String inputDocument) throws IOException {
+  public ClassificationResult<BytesRef> assignClass(String inputDocument) throws IOException {
     if (atomicReader == null) {
       throw new RuntimeException("need to train the classifier first");
     }
     double max = 0d;
-    String foundClass = null;
+    BytesRef foundClass = new BytesRef();
 
     Terms terms = MultiFields.getTerms(atomicReader, classFieldName);
     TermsEnum termsEnum = terms.iterator(null);
@@ -105,10 +105,10 @@ public class SimpleNaiveBayesClassifier 
       double clVal = calculatePrior(next) * calculateLikelihood(tokenizedDoc, next);
       if (clVal > max) {
         max = clVal;
-        foundClass = next.utf8ToString();
+        foundClass = next.clone();
       }
     }
-    return new ClassificationResult(foundClass, max);
+    return new ClassificationResult<BytesRef>(foundClass, max);
   }
 
 

Modified: lucene/dev/branches/lucene4547/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java (original)
+++ lucene/dev/branches/lucene4547/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java Tue Jan  8 03:40:16 2013
@@ -24,6 +24,7 @@ import org.apache.lucene.document.TextFi
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
 import org.junit.After;
 import org.junit.Before;
@@ -38,6 +39,7 @@ public abstract class ClassificationTest
   private String classFieldName;
   private Directory dir;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -47,6 +49,7 @@ public abstract class ClassificationTest
     classFieldName = "cat";
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
@@ -54,15 +57,17 @@ public abstract class ClassificationTest
     dir.close();
   }
 
-  protected void checkCorrectClassification(Classifier classifier, Analyzer analyzer) throws Exception {
+
+  protected void checkCorrectClassification(Classifier<BytesRef> classifier, Analyzer analyzer) throws Exception {
     SlowCompositeReaderWrapper compositeReaderWrapper = null;
     try {
       populateIndex(analyzer);
       compositeReaderWrapper = new SlowCompositeReaderWrapper(indexWriter.getReader());
       classifier.train(compositeReaderWrapper, textFieldName, classFieldName, analyzer);
       String newText = "Much is made of what the likes of Facebook, Google and Apple know about users. Truth is, Amazon may know more.";
-      ClassificationResult classificationResult = classifier.assignClass(newText);
-      assertEquals("technology", classificationResult.getAssignedClass());
+      ClassificationResult<BytesRef> classificationResult = classifier.assignClass(newText);
+      assertNotNull(classificationResult.getAssignedClass());
+      assertEquals(new BytesRef("technology"), classificationResult.getAssignedClass());
       assertTrue(classificationResult.getScore() > 0);
     } finally {
       if (compositeReaderWrapper != null)

Modified: lucene/dev/branches/lucene4547/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java Tue Jan  8 03:40:16 2013
@@ -52,6 +52,7 @@ public class DataSplitterTest extends Lu
   private String classFieldName = "class";
   private String idFieldName = "id";
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -81,6 +82,7 @@ public class DataSplitterTest extends Lu
 
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     originalIndex.close();

Modified: lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/FixedGapTermsIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/FixedGapTermsIndexWriter.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/FixedGapTermsIndexWriter.java (original)
+++ lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/FixedGapTermsIndexWriter.java Tue Jan  8 03:40:16 2013
@@ -212,6 +212,7 @@ public class FixedGapTermsIndexWriter ex
     }
   }
 
+  @Override
   public void close() throws IOException {
     boolean success = false;
     try {

Modified: lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/TermsIndexReaderBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/TermsIndexReaderBase.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/TermsIndexReaderBase.java (original)
+++ lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/TermsIndexReaderBase.java Tue Jan  8 03:40:16 2013
@@ -42,6 +42,7 @@ public abstract class TermsIndexReaderBa
 
   public abstract FieldIndexEnum getFieldEnum(FieldInfo fieldInfo);
 
+  @Override
   public abstract void close() throws IOException;
 
   public abstract boolean supportsOrd();

Modified: lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/VariableGapTermsIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/VariableGapTermsIndexWriter.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/VariableGapTermsIndexWriter.java (original)
+++ lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/VariableGapTermsIndexWriter.java Tue Jan  8 03:40:16 2013
@@ -288,6 +288,7 @@ public class VariableGapTermsIndexWriter
     }
   }
 
+  @Override
   public void close() throws IOException {
     try {
     final long dirStart = out.getFilePointer();