You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2012/07/09 17:46:07 UTC

svn commit: r1359229 [4/5] - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/analysis/ lucene/analysis/common/ lucene/analysis/common/src/java/org/apache/lucene/analysis/br/ lucene/analysis/common/src/java/org/apache/lucene/analysis/de/ lucene/ana...

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.java Mon Jul  9 15:45:58 2012
@@ -1,7 +1,7 @@
 /* Generated By:JavaCC: Do not edit this line. StandardSyntaxParser.java */
 package org.apache.lucene.queryparser.flexible.standard.parser;
 
-/*
+/**
  * 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.
@@ -49,14 +49,14 @@ public class StandardSyntaxParser implem
 
    // syntax parser constructor
    public StandardSyntaxParser() {
-        this(new StringReader(""));
+        this(new FastCharStream(new StringReader("")));
   }
      /** Parses a query string, returning a {@link org.apache.lucene.queryparser.flexible.core.nodes.QueryNode}.
      *  @param query  the query string to be parsed.
      *  @throws ParseException if the parsing fails
      */
     public QueryNode parse(CharSequence query, CharSequence field) throws QueryNodeParseException {
-      ReInit(new StringReader(query.toString()));
+      ReInit(new FastCharStream(new StringReader(query.toString())));
       try {
         // TopLevelQuery is a Query followed by the end-of-input (EOF)
         QueryNode querynode = TopLevelQuery(field);
@@ -844,7 +844,6 @@ public class StandardSyntaxParser implem
 
   /** Generated Token Manager. */
   public StandardSyntaxParserTokenManager token_source;
-  JavaCharStream jj_input_stream;
   /** Current token. */
   public Token token;
   /** Next token. */
@@ -870,14 +869,9 @@ public class StandardSyntaxParser implem
   private boolean jj_rescan = false;
   private int jj_gc = 0;
 
-  /** Constructor with InputStream. */
-  public StandardSyntaxParser(java.io.InputStream stream) {
-     this(stream, null);
-  }
-  /** Constructor with InputStream and supplied encoding */
-  public StandardSyntaxParser(java.io.InputStream stream, String encoding) {
-    try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
-    token_source = new StandardSyntaxParserTokenManager(jj_input_stream);
+  /** Constructor with user supplied CharStream. */
+  public StandardSyntaxParser(CharStream stream) {
+    token_source = new StandardSyntaxParserTokenManager(stream);
     token = new Token();
     jj_ntk = -1;
     jj_gen = 0;
@@ -886,35 +880,8 @@ public class StandardSyntaxParser implem
   }
 
   /** Reinitialise. */
-  public void ReInit(java.io.InputStream stream) {
-     ReInit(stream, null);
-  }
-  /** Reinitialise. */
-  public void ReInit(java.io.InputStream stream, String encoding) {
-    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
-    token_source.ReInit(jj_input_stream);
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 28; i++) jj_la1[i] = -1;
-    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
-  }
-
-  /** Constructor. */
-  public StandardSyntaxParser(java.io.Reader stream) {
-    jj_input_stream = new JavaCharStream(stream, 1, 1);
-    token_source = new StandardSyntaxParserTokenManager(jj_input_stream);
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 28; i++) jj_la1[i] = -1;
-    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
-  }
-
-  /** Reinitialise. */
-  public void ReInit(java.io.Reader stream) {
-    jj_input_stream.ReInit(stream, 1, 1);
-    token_source.ReInit(jj_input_stream);
+  public void ReInit(CharStream stream) {
+    token_source.ReInit(stream);
     token = new Token();
     jj_ntk = -1;
     jj_gen = 0;

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.jj
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.jj?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.jj (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParser.jj Mon Jul  9 15:45:58 2012
@@ -5,7 +5,7 @@
 options {
   STATIC=false;
   JAVA_UNICODE_ESCAPE=true;
-  USER_CHAR_STREAM=false;
+  USER_CHAR_STREAM=true;
   IGNORE_CASE=false;
   JDK_VERSION="1.5";
 }
@@ -61,14 +61,14 @@ public class StandardSyntaxParser implem
  
    // syntax parser constructor
    public StandardSyntaxParser() {
-   	this(new StringReader(""));
+   	this(new FastCharStream(new StringReader("")));
   }
      /** Parses a query string, returning a {@link org.apache.lucene.queryparser.flexible.core.nodes.QueryNode}.
      *  @param query  the query string to be parsed.
      *  @throws ParseException if the parsing fails
      */
     public QueryNode parse(CharSequence query, CharSequence field) throws QueryNodeParseException {
-      ReInit(new StringReader(query.toString()));
+      ReInit(new FastCharStream(new StringReader(query.toString())));
       try {
         // TopLevelQuery is a Query followed by the end-of-input (EOF)
         QueryNode querynode = TopLevelQuery(field);

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParserTokenManager.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParserTokenManager.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParserTokenManager.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/StandardSyntaxParserTokenManager.java Mon Jul  9 15:45:58 2012
@@ -1,6 +1,6 @@
 /* Generated By:JavaCC: Do not edit this line. StandardSyntaxParserTokenManager.java */
 package org.apache.lucene.queryparser.flexible.standard.parser;
-/*
+/**
  * 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.
@@ -781,25 +781,23 @@ static final long[] jjtoToken = {
 static final long[] jjtoSkip = {
    0x80L, 
 };
-protected JavaCharStream input_stream;
+protected CharStream input_stream;
 private final int[] jjrounds = new int[33];
 private final int[] jjstateSet = new int[66];
 protected char curChar;
 /** Constructor. */
-public StandardSyntaxParserTokenManager(JavaCharStream stream){
-   if (JavaCharStream.staticFlag)
-      throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+public StandardSyntaxParserTokenManager(CharStream stream){
    input_stream = stream;
 }
 
 /** Constructor. */
-public StandardSyntaxParserTokenManager(JavaCharStream stream, int lexState){
+public StandardSyntaxParserTokenManager(CharStream stream, int lexState){
    this(stream);
    SwitchTo(lexState);
 }
 
 /** Reinitialise parser. */
-public void ReInit(JavaCharStream stream)
+public void ReInit(CharStream stream)
 {
    jjmatchedPos = jjnewStateCnt = 0;
    curLexState = defaultLexState;
@@ -815,7 +813,7 @@ private void ReInitRounds()
 }
 
 /** Reinitialise parser. */
-public void ReInit(JavaCharStream stream, int lexState)
+public void ReInit(CharStream stream, int lexState)
 {
    ReInit(stream);
    SwitchTo(lexState);

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/Token.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/Token.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/Token.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/Token.java Mon Jul  9 15:45:58 2012
@@ -121,4 +121,4 @@ public class Token {
   }
 
 }
-/* JavaCC - OriginalChecksum=e9c55091ec11152bcd3a300ddff5c73a (do not edit this line) */
+/* JavaCC - OriginalChecksum=3b4fe6dcfcfa24a81f1c6ceffae5f73a (do not edit this line) */

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/TokenMgrError.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/TokenMgrError.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/TokenMgrError.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/parser/TokenMgrError.java Mon Jul  9 15:45:58 2012
@@ -138,4 +138,4 @@ public class TokenMgrError extends Error
       this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
    }
 }
-/* JavaCC - OriginalChecksum=76b513fd9c50f65248056bbeeff49277 (do not edit this line) */
+/* JavaCC - OriginalChecksum=1efb3d906925f2478637c66473b79bae (do not edit this line) */

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/LowercaseExpandedTermsQueryNodeProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/LowercaseExpandedTermsQueryNodeProcessor.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/LowercaseExpandedTermsQueryNodeProcessor.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/LowercaseExpandedTermsQueryNodeProcessor.java Mon Jul  9 15:45:58 2012
@@ -18,6 +18,7 @@ package org.apache.lucene.queryparser.fl
  */
 
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.lucene.queryparser.flexible.core.QueryNodeException;
 import org.apache.lucene.queryparser.flexible.core.config.QueryConfigHandler;
@@ -46,7 +47,6 @@ public class LowercaseExpandedTermsQuery
     QueryNodeProcessorImpl {
 
   public LowercaseExpandedTermsQueryNodeProcessor() {
-    // empty constructor
   }
 
   @Override
@@ -63,6 +63,11 @@ public class LowercaseExpandedTermsQuery
 
   @Override
   protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {
+    
+    Locale locale = getQueryConfigHandler().get(ConfigurationKeys.LOCALE);
+    if (locale == null) {
+      locale = Locale.getDefault();
+    }
 
     if (node instanceof WildcardQueryNode
         || node instanceof FuzzyQueryNode
@@ -71,7 +76,7 @@ public class LowercaseExpandedTermsQuery
 
       TextableQueryNode txtNode = (TextableQueryNode) node;
       CharSequence text = txtNode.getText();
-      txtNode.setText(text != null ? UnescapedCharSequence.toLowerCase(text) : null);
+      txtNode.setText(text != null ? UnescapedCharSequence.toLowerCase(text, locale) : null);
     }
 
     return node;

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/StandardQueryNodeProcessorPipeline.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/StandardQueryNodeProcessorPipeline.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/StandardQueryNodeProcessorPipeline.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/StandardQueryNodeProcessorPipeline.java Mon Jul  9 15:45:58 2012
@@ -17,12 +17,15 @@ package org.apache.lucene.queryparser.fl
  * limitations under the License.
  */
 
+import java.util.Locale;
+
 import org.apache.lucene.queryparser.flexible.core.config.QueryConfigHandler;
 import org.apache.lucene.queryparser.flexible.core.processors.NoChildOptimizationQueryNodeProcessor;
 import org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorPipeline;
 import org.apache.lucene.queryparser.flexible.core.processors.RemoveDeletedQueryNodesProcessor;
 import org.apache.lucene.queryparser.flexible.standard.builders.StandardQueryTreeBuilder;
 import org.apache.lucene.queryparser.flexible.standard.config.StandardQueryConfigHandler;
+import org.apache.lucene.queryparser.flexible.standard.config.StandardQueryConfigHandler.ConfigurationKeys;
 import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser;
 import org.apache.lucene.search.Query;
 

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java Mon Jul  9 15:45:58 2012
@@ -22,6 +22,7 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
+import java.util.TimeZone;
 
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.DateTools.Resolution;
@@ -76,6 +77,12 @@ public class TermRangeQueryNodeProcessor
         locale = Locale.getDefault();
       }
       
+      TimeZone timeZone = getQueryConfigHandler().get(ConfigurationKeys.TIMEZONE);
+      
+      if (timeZone == null) {
+        timeZone = TimeZone.getDefault();
+      }
+      
       CharSequence field = termRangeNode.getField();
       String fieldStr = null;
       
@@ -114,7 +121,7 @@ public class TermRangeQueryNodeProcessor
             // the time is set to the latest possible time of that date to
             // really
             // include all documents:
-            Calendar cal = Calendar.getInstance(locale);
+            Calendar cal = Calendar.getInstance(timeZone, locale);
             cal.setTime(d2);
             cal.set(Calendar.HOUR_OF_DAY, 23);
             cal.set(Calendar.MINUTE, 59);

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/surround/parser/FastCharStream.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/surround/parser/FastCharStream.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/surround/parser/FastCharStream.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/surround/parser/FastCharStream.java Mon Jul  9 15:45:58 2012
@@ -96,7 +96,6 @@ public final class FastCharStream implem
     try {
       input.close();
     } catch (IOException e) {
-      System.err.println("Caught: " + e + "; ignoring.");
     }
   }
 

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/QueryTemplateManager.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/QueryTemplateManager.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/QueryTemplateManager.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/QueryTemplateManager.java Mon Jul  9 15:45:58 2012
@@ -11,7 +11,7 @@ import javax.xml.transform.*;
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
-import java.io.ByteArrayOutputStream;
+import java.io.StringWriter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Enumeration;
@@ -98,10 +98,11 @@ public class QueryTemplateManager {
    */
   public static String getQueryAsXmlString(Properties formProperties, Templates template)
       throws ParserConfigurationException, TransformerException {
-    ByteArrayOutputStream baos = new ByteArrayOutputStream();
-    StreamResult result = new StreamResult(baos);
+    // TODO: Suppress XML header with encoding (as Strings have no encoding)
+    StringWriter writer = new StringWriter();
+    StreamResult result = new StreamResult(writer);
     transformCriteria(formProperties, template, result);
-    return baos.toString();
+    return writer.toString();
   }
 
   /**
@@ -109,10 +110,11 @@ public class QueryTemplateManager {
    */
   public static String getQueryAsXmlString(Properties formProperties, InputStream xslIs)
       throws SAXException, IOException, ParserConfigurationException, TransformerException {
-    ByteArrayOutputStream baos = new ByteArrayOutputStream();
-    StreamResult result = new StreamResult(baos);
+    // TODO: Suppress XML header with encoding (as Strings have no encoding)
+    StringWriter writer = new StringWriter();
+    StreamResult result = new StreamResult(writer);
     transformCriteria(formProperties, xslIs, result);
-    return baos.toString();
+    return writer.toString();
   }
 
 

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/ext/TestExtendableQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/ext/TestExtendableQueryParser.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/ext/TestExtendableQueryParser.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/ext/TestExtendableQueryParser.java Mon Jul  9 15:45:58 2012
@@ -17,6 +17,8 @@ package org.apache.lucene.queryparser.ex
  * limitations under the License.
  */
 
+import java.util.Locale;
+
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
@@ -70,7 +72,7 @@ public class TestExtendableQueryParser e
       ExtendableQueryParser parser = (ExtendableQueryParser) getParser(null,
           ext);
       String field = ext.buildExtensionField("testExt", "aField");
-      Query query = parser.parse(String.format("%s:foo bar", field));
+      Query query = parser.parse(String.format(Locale.ROOT, "%s:foo bar", field));
       assertTrue("expected instance of BooleanQuery but was "
           + query.getClass(), query instanceof BooleanQuery);
       BooleanQuery bquery = (BooleanQuery) query;
@@ -102,7 +104,7 @@ public class TestExtendableQueryParser e
       ExtendableQueryParser parser = (ExtendableQueryParser) getParser(null,
           ext);
       String field = ext.buildExtensionField("testExt");
-      Query parse = parser.parse(String.format("%s:\"foo \\& bar\"", field));
+      Query parse = parser.parse(String.format(Locale.ROOT, "%s:\"foo \\& bar\"", field));
       assertTrue("expected instance of TermQuery but was " + parse.getClass(),
           parse instanceof TermQuery);
       TermQuery tquery = (TermQuery) parse;
@@ -122,7 +124,7 @@ public class TestExtendableQueryParser e
       ExtendableQueryParser parser = (ExtendableQueryParser) getParser(null,
           ext);
       String field = ext.buildExtensionField("testExt", "afield");
-      Query parse = parser.parse(String.format("%s:\"foo \\& bar\"", field));
+      Query parse = parser.parse(String.format(Locale.ROOT, "%s:\"foo \\& bar\"", field));
       assertTrue("expected instance of TermQuery but was " + parse.getClass(),
           parse instanceof TermQuery);
       TermQuery tquery = (TermQuery) parse;

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/precedence/TestPrecedenceQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/precedence/TestPrecedenceQueryParser.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/precedence/TestPrecedenceQueryParser.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/precedence/TestPrecedenceQueryParser.java Mon Jul  9 15:45:58 2012
@@ -24,7 +24,9 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
+import java.util.TimeZone;
 
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
@@ -385,14 +387,16 @@ public class TestPrecedenceQueryParser e
   }
 
   public String getDate(String s) throws Exception {
-    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
+    // we use the default Locale since LuceneTestCase randomizes it
+    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
     return DateTools.dateToString(df.parse(s), DateTools.Resolution.DAY);
   }
 
   private String getLocalizedDate(int year, int month, int day,
       boolean extendLastDate) {
-    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
-    Calendar calendar = new GregorianCalendar();
+    // we use the default Locale/TZ since LuceneTestCase randomizes it
+    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
+    Calendar calendar = new GregorianCalendar(TimeZone.getDefault(), Locale.getDefault());
     calendar.set(year, month, day);
     if (extendLastDate) {
       calendar.set(Calendar.HOUR_OF_DAY, 23);
@@ -406,7 +410,8 @@ public class TestPrecedenceQueryParser e
   public void testDateRange() throws Exception {
     String startDate = getLocalizedDate(2002, 1, 1, false);
     String endDate = getLocalizedDate(2002, 1, 4, false);
-    Calendar endDateExpected = new GregorianCalendar();
+    // we use the default Locale/TZ since LuceneTestCase randomizes it
+    Calendar endDateExpected = new GregorianCalendar(TimeZone.getDefault(), Locale.getDefault());
     endDateExpected.set(2002, 1, 4, 23, 59, 59);
     endDateExpected.set(Calendar.MILLISECOND, 999);
     final String defaultField = "default";
@@ -441,7 +446,8 @@ public class TestPrecedenceQueryParser e
 
   /** for testing DateTools support */
   private String getDate(String s, DateTools.Resolution resolution) throws Exception {
-    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
+    // we use the default Locale since LuceneTestCase randomizes it
+    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
     return getDate(df.parse(s), resolution);
   }
 

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java Mon Jul  9 15:45:58 2012
@@ -27,6 +27,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.TimeZone;
 
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
@@ -675,7 +676,8 @@ public class TestQPHelper extends Lucene
   /** for testing DateTools support */
   private String getDate(String s, DateTools.Resolution resolution)
       throws Exception {
-    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
+    // we use the default Locale since LuceneTestCase randomizes it
+    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
     return getDate(df.parse(s), resolution);
   }
 
@@ -693,8 +695,9 @@ public class TestQPHelper extends Lucene
   }
 
   private String getLocalizedDate(int year, int month, int day) {
-    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
-    Calendar calendar = new GregorianCalendar();
+    // we use the default Locale/TZ since LuceneTestCase randomizes it
+    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
+    Calendar calendar = new GregorianCalendar(TimeZone.getDefault(), Locale.getDefault());
     calendar.clear();
     calendar.set(year, month, day);
     calendar.set(Calendar.HOUR_OF_DAY, 23);
@@ -707,7 +710,8 @@ public class TestQPHelper extends Lucene
   public void testDateRange() throws Exception {
     String startDate = getLocalizedDate(2002, 1, 1);
     String endDate = getLocalizedDate(2002, 1, 4);
-    Calendar endDateExpected = new GregorianCalendar();
+    // we use the default Locale/TZ since LuceneTestCase randomizes it
+    Calendar endDateExpected = new GregorianCalendar(TimeZone.getDefault(), Locale.getDefault());
     endDateExpected.clear();
     endDateExpected.set(2002, 1, 4, 23, 59, 59);
     endDateExpected.set(Calendar.MILLISECOND, 999);

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java Mon Jul  9 15:45:58 2012
@@ -24,6 +24,7 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.Locale;
+import java.util.TimeZone;
 
 import org.apache.lucene.analysis.*;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
@@ -581,7 +582,8 @@ public abstract class QueryParserTestBas
   
   /** for testing DateTools support */
   private String getDate(String s, DateTools.Resolution resolution) throws Exception {
-    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
+    // we use the default Locale since LuceneTestCase randomizes it
+    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
     return getDate(df.parse(s), resolution);      
   }
   
@@ -591,8 +593,9 @@ public abstract class QueryParserTestBas
   }
   
   private String getLocalizedDate(int year, int month, int day) {
-    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
-    Calendar calendar = new GregorianCalendar();
+    // we use the default Locale/TZ since LuceneTestCase randomizes it
+    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
+    Calendar calendar = new GregorianCalendar(TimeZone.getDefault(), Locale.getDefault());
     calendar.clear();
     calendar.set(year, month, day);
     calendar.set(Calendar.HOUR_OF_DAY, 23);
@@ -605,7 +608,8 @@ public abstract class QueryParserTestBas
   public void testDateRange() throws Exception {
     String startDate = getLocalizedDate(2002, 1, 1);
     String endDate = getLocalizedDate(2002, 1, 4);
-    Calendar endDateExpected = new GregorianCalendar();
+    // we use the default Locale/TZ since LuceneTestCase randomizes it
+    Calendar endDateExpected = new GregorianCalendar(TimeZone.getDefault(), Locale.getDefault());
     endDateExpected.clear();
     endDateExpected.set(2002, 1, 4, 23, 59, 59);
     endDateExpected.set(Calendar.MILLISECOND, 999);

Modified: lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java Mon Jul  9 15:45:58 2012
@@ -203,7 +203,7 @@ public class TestNumericRangeFilterBuild
 
   private static Document getDocumentFromString(String str)
       throws SAXException, IOException, ParserConfigurationException {
-    InputStream is = new ByteArrayInputStream(str.getBytes());
+    InputStream is = new ByteArrayInputStream(str.getBytes("UTF-8"));
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     factory.setNamespaceAware(true);
     DocumentBuilder builder = factory.newDocumentBuilder();

Modified: lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java (original)
+++ lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java Mon Jul  9 15:45:58 2012
@@ -28,6 +28,7 @@ import java.text.NumberFormat;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Locale;
 
 /**
  * @lucene.experimental
@@ -107,7 +108,7 @@ public class QuadPrefixTree extends Spat
   }
 
   public void printInfo() {
-    NumberFormat nf = NumberFormat.getNumberInstance();
+    NumberFormat nf = NumberFormat.getNumberInstance(Locale.ROOT);
     nf.setMaximumFractionDigits(5);
     nf.setMinimumFractionDigits(5);
     nf.setMinimumIntegerDigits(3);

Modified: lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgs.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgs.java (original)
+++ lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/query/SpatialArgs.java Mon Jul  9 15:45:58 2012
@@ -17,6 +17,8 @@ package org.apache.lucene.spatial.query;
  * limitations under the License.
  */
 
+import java.util.Locale;
+
 import com.spatial4j.core.exception.InvalidSpatialArgument;
 import com.spatial4j.core.shape.Shape;
 
@@ -64,7 +66,7 @@ public class SpatialArgs {
     if (max != null) {
       str.append(" max=").append(max);
     }
-    str.append(" distPrec=").append(String.format("%.2f%%", distPrecision / 100d));
+    str.append(" distPrec=").append(String.format(Locale.ROOT, "%.2f%%", distPrecision / 100d));
     str.append(')');
     return str.toString();
   }

Modified: lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/query/SpatialOperation.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/query/SpatialOperation.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/query/SpatialOperation.java (original)
+++ lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/query/SpatialOperation.java Mon Jul  9 15:45:58 2012
@@ -61,14 +61,14 @@ public class SpatialOperation implements
     this.sourceNeedsArea = sourceNeedsArea;
     this.targetNeedsArea = targetNeedsArea;
     registry.put(name, this);
-    registry.put(name.toUpperCase(Locale.US), this);
+    registry.put(name.toUpperCase(Locale.ROOT), this);
     list.add( this );
   }
 
   public static SpatialOperation get( String v ) {
     SpatialOperation op = registry.get( v );
     if( op == null ) {
-      op = registry.get(v.toUpperCase(Locale.US));
+      op = registry.get(v.toUpperCase(Locale.ROOT));
     }
     if( op == null ) {
       throw new InvalidSpatialArgument("Unknown Operation: " + v );

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/spell/DirectSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/spell/DirectSpellChecker.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/spell/DirectSpellChecker.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/spell/DirectSpellChecker.java Mon Jul  9 15:45:58 2012
@@ -320,7 +320,7 @@ public class DirectSpellChecker {
       return new SuggestWord[0];
     
     if (lowerCaseTerms) {
-      term = new Term(term.field(), text.toLowerCase(Locale.ENGLISH));
+      term = new Term(term.field(), text.toLowerCase(Locale.ROOT));
     }
     
     int docfreq = ir.docFreq(term);

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/spell/PlainTextDictionary.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/spell/PlainTextDictionary.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/spell/PlainTextDictionary.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/spell/PlainTextDictionary.java Mon Jul  9 15:45:58 2012
@@ -38,12 +38,12 @@ public class PlainTextDictionary impleme
 
   private BufferedReader in;
 
-  public PlainTextDictionary(File file) throws FileNotFoundException {
-    in = new BufferedReader(new FileReader(file));
+  public PlainTextDictionary(File file) throws IOException {
+    in = new BufferedReader(IOUtils.getDecodingReader(file, IOUtils.CHARSET_UTF_8));
   }
 
   public PlainTextDictionary(InputStream dictFile) {
-    in = new BufferedReader(new InputStreamReader(dictFile));
+    in = new BufferedReader(IOUtils.getDecodingReader(dictFile, IOUtils.CHARSET_UTF_8));
   }
 
   /**

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/FileDictionary.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/FileDictionary.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/FileDictionary.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/FileDictionary.java Mon Jul  9 15:45:58 2012
@@ -42,7 +42,7 @@ public class FileDictionary implements D
   private boolean done = false;
 
   public FileDictionary(InputStream dictFile) {
-    in = new BufferedReader(new InputStreamReader(dictFile));
+    in = new BufferedReader(IOUtils.getDecodingReader(dictFile, IOUtils.CHARSET_UTF_8));
   }
 
   /**

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/Sort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/Sort.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/Sort.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/Sort.java Mon Jul  9 15:45:58 2012
@@ -132,7 +132,7 @@ public final class Sort {
     
     @Override
     public String toString() {
-      return String.format(Locale.ENGLISH,
+      return String.format(Locale.ROOT,
           "time=%.2f sec. total (%.2f reading, %.2f sorting, %.2f merging), lines=%d, temp files=%d, merges=%d, soft ram limit=%.2f MB",
           totalTime / 1000.0d, readTime / 1000.0d, sortTime / 1000.0d, mergeTime / 1000.0d,
           lines, tempMergeFiles, mergeRounds,

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java Mon Jul  9 15:45:58 2012
@@ -35,9 +35,12 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.List;
+import java.util.Locale;
 import java.util.Vector;
 import java.util.zip.GZIPInputStream;
 
+import org.apache.lucene.util.IOUtils;
+
 /**
  * Implementation of a Ternary Search Trie, a data structure for storing
  * <code>String</code> objects that combines the compact size of a binary search
@@ -147,11 +150,18 @@ public class JaspellTernarySearchTrie {
 
   /** The base node in the trie. */
   private TSTNode rootNode;
+  
+  private final Locale locale;
 
   /**
    * Constructs an empty Ternary Search Trie.
    */
   public JaspellTernarySearchTrie() {
+    this(Locale.ROOT);
+  }
+  
+  public JaspellTernarySearchTrie(Locale locale) {
+    this.locale = locale;
   }
   
   // for loading
@@ -196,10 +206,10 @@ public class JaspellTernarySearchTrie {
     this();
     BufferedReader in;
     if (compression)
-      in = new BufferedReader(new InputStreamReader(new GZIPInputStream(
-              new FileInputStream(file))));
-    else in = new BufferedReader(new InputStreamReader((new FileInputStream(
-            file))));
+      in = new BufferedReader(IOUtils.getDecodingReader(new GZIPInputStream(
+              new FileInputStream(file)), IOUtils.CHARSET_UTF_8));
+    else in = new BufferedReader(IOUtils.getDecodingReader((new FileInputStream(
+            file)), IOUtils.CHARSET_UTF_8));
     String word;
     int pos;
     Float occur, one = new Float(1);
@@ -212,7 +222,7 @@ public class JaspellTernarySearchTrie {
         occur = Float.parseFloat(word.substring(pos + 1).trim());
         word = word.substring(0, pos);
       }
-      String key = word.toLowerCase();
+      String key = word.toLowerCase(locale);
       if (rootNode == null) {
         rootNode = new TSTNode(key.charAt(0), null);
       }
@@ -242,7 +252,7 @@ public class JaspellTernarySearchTrie {
         if (occur2 != null) {
           occur += occur2.floatValue();
         }
-        currentNode = getOrCreateNode(word.trim().toLowerCase());
+        currentNode = getOrCreateNode(word.trim().toLowerCase(locale));
         currentNode.data = occur;
       }
     }
@@ -382,7 +392,7 @@ public class JaspellTernarySearchTrie {
    *@return The <code>Float</code> retrieved from the Ternary Search Trie.
    */
   public Float getAndIncrement(String key) {
-    String key2 = key.trim().toLowerCase();
+    String key2 = key.trim().toLowerCase(locale);
     TSTNode node = getNode(key2);
     if (node == null) {
       return null;
@@ -763,7 +773,7 @@ public class JaspellTernarySearchTrie {
    *          the Trie.
    */
   public void remove(String key) {
-    deleteNode(getNode(key.trim().toLowerCase()));
+    deleteNode(getNode(key.trim().toLowerCase(locale)));
   }
 
   /**

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java Mon Jul  9 15:45:58 2012
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Locale;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
@@ -435,8 +436,8 @@ public class TestSpellChecker extends Lu
     executor.awaitTermination(60L, TimeUnit.SECONDS);
     
     for (int i = 0; i < workers.length; i++) {
-      assertFalse(String.format("worker thread %d failed", i), workers[i].failed);
-      assertTrue(String.format("worker thread %d is still running but should be terminated", i), workers[i].terminated);
+      assertFalse(String.format(Locale.ROOT, "worker thread %d failed", i), workers[i].failed);
+      assertTrue(String.format(Locale.ROOT, "worker thread %d is still running but should be terminated", i), workers[i].terminated);
     }
     // 4 searchers more than iterations
     // 1. at creation

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/Average.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/Average.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/Average.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/Average.java Mon Jul  9 15:45:58 2012
@@ -47,7 +47,7 @@ final class Average
 
     public String toString()
     {
-        return String.format(Locale.ENGLISH, "%.0f [+- %.2f]", 
+        return String.format(Locale.ROOT, "%.0f [+- %.2f]", 
             avg, stddev);
     }
 

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java Mon Jul  9 15:45:58 2012
@@ -119,7 +119,7 @@ public class LookupBenchmarkTest extends
       });
 
       System.err.println(
-          String.format(Locale.ENGLISH, "%-15s input: %d, time[ms]: %s",
+          String.format(Locale.ROOT, "%-15s input: %d, time[ms]: %s",
               cls.getSimpleName(),
               dictionaryInput.length,
               result.average.toString()));
@@ -134,7 +134,7 @@ public class LookupBenchmarkTest extends
     for (Class<? extends Lookup> cls : benchmarkClasses) {
       Lookup lookup = buildLookup(cls, dictionaryInput);
       System.err.println(
-          String.format(Locale.ENGLISH, "%-15s size[B]:%,13d",
+          String.format(Locale.ROOT, "%-15s size[B]:%,13d",
               lookup.getClass().getSimpleName(), 
               RamUsageEstimator.sizeOf(lookup)));
     }
@@ -181,7 +181,7 @@ public class LookupBenchmarkTest extends
    */
   public void runPerformanceTest(final int minPrefixLen, final int maxPrefixLen, 
       final int num, final boolean onlyMorePopular) throws Exception {
-    System.err.println(String.format(Locale.ENGLISH,
+    System.err.println(String.format(Locale.ROOT,
         "-- prefixes: %d-%d, num: %d, onlyMorePopular: %s",
         minPrefixLen, maxPrefixLen, num, onlyMorePopular));
 
@@ -206,7 +206,7 @@ public class LookupBenchmarkTest extends
       });
 
       System.err.println(
-          String.format(Locale.ENGLISH, "%-15s queries: %d, time[ms]: %s, ~kQPS: %.0f",
+          String.format(Locale.ROOT, "%-15s queries: %d, time[ms]: %s, ~kQPS: %.0f",
               lookup.getClass().getSimpleName(),
               input.size(),
               result.average.toString(),

Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/FSTCompletionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/FSTCompletionTest.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/FSTCompletionTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/FSTCompletionTest.java Mon Jul  9 15:45:58 2012
@@ -233,9 +233,9 @@ public class FSTCompletionTest extends L
       
       StringBuilder b = new StringBuilder();
       String format = "%" + colLen + "s  " + "%" + colLen + "s\n"; 
-      b.append(String.format(Locale.ENGLISH, format, "Expected", "Result"));
+      b.append(String.format(Locale.ROOT, format, "Expected", "Result"));
       for (int i = 0; i < Math.max(result.length, expected.length); i++) {
-        b.append(String.format(Locale.ENGLISH, format, 
+        b.append(String.format(Locale.ROOT, format, 
             i < expected.length ? expected[i] : "--", 
             i < result.length ? result[i] : "--"));
       }

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java Mon Jul  9 15:45:58 2012
@@ -595,7 +595,7 @@ public abstract class BaseTokenStreamTes
       } else {
         // TODO: we can make ascii easier to read if we
         // don't escape...
-        sb.append(String.format("\\u%04x", c));
+        sb.append(String.format(Locale.ROOT, "\\u%04x", c));
       }
       charUpto += Character.charCount(c);
     }

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/AlcoholicMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/AlcoholicMergePolicy.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/AlcoholicMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/AlcoholicMergePolicy.java Mon Jul  9 15:45:58 2012
@@ -20,6 +20,7 @@ package org.apache.lucene.index;
 import java.io.IOException;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
+import java.util.Locale;
 import java.util.Random;
 import java.util.TimeZone;
 
@@ -45,7 +46,7 @@ public class AlcoholicMergePolicy extend
   private final Calendar calendar;
   
   public AlcoholicMergePolicy(TimeZone tz, Random random) {
-    this.calendar = new GregorianCalendar(tz);
+    this.calendar = new GregorianCalendar(tz, Locale.ROOT);
     this.random = random;
     maxMergeSize = _TestUtil.nextInt(random, 1024*1024, Integer.MAX_VALUE);
   }

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java Mon Jul  9 15:45:58 2012
@@ -71,7 +71,7 @@ public class RandomCodec extends Lucene4
       codec = formats.get(Math.abs(perFieldSeed ^ name.hashCode()) % formats.size());
       if (codec instanceof SimpleTextPostingsFormat && perFieldSeed % 5 != 0) {
         // make simpletext rarer, choose again
-        codec = formats.get(Math.abs(perFieldSeed ^ name.toUpperCase(Locale.ENGLISH).hashCode()) % formats.size());
+        codec = formats.get(Math.abs(perFieldSeed ^ name.toUpperCase(Locale.ROOT).hashCode()) % formats.size());
       }
       previousMappings.put(name, codec);
       // Safety:

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java Mon Jul  9 15:45:58 2012
@@ -357,7 +357,7 @@ public class CheckHits {
         // - end with one of: "product of:", "sum of:", "max of:", or
         // - have "max plus <x> times others" (where <x> is float).
         float x = 0;
-        String descr = expl.getDescription().toLowerCase(Locale.ENGLISH);
+        String descr = expl.getDescription().toLowerCase(Locale.ROOT);
         boolean productOf = descr.endsWith("product of:");
         boolean sumOf = descr.endsWith("sum of:");
         boolean maxOf = descr.endsWith("max of:");

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleIcuHack.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleIcuHack.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleIcuHack.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleIcuHack.java Mon Jul  9 15:45:58 2012
@@ -39,7 +39,7 @@ final class TestRuleIcuHack implements T
         if (!icuTested.getAndSet(true)) {
           Locale previous = Locale.getDefault();
           try {
-            Locale.setDefault(Locale.US);
+            Locale.setDefault(Locale.ROOT);
             Class.forName("com.ibm.icu.util.ULocale");
           } catch (ClassNotFoundException cnfe) {
             // ignore if no ICU is in classpath

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java Mon Jul  9 15:45:58 2012
@@ -187,15 +187,15 @@ public class _TestUtil {
     ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
     CheckIndex checker = new CheckIndex(dir);
     checker.setCrossCheckTermVectors(crossCheckTermVectors);
-    checker.setInfoStream(new PrintStream(bos), false);
+    checker.setInfoStream(new PrintStream(bos, false, "UTF-8"), false);
     CheckIndex.Status indexStatus = checker.checkIndex(null);
     if (indexStatus == null || indexStatus.clean == false) {
       System.out.println("CheckIndex failed");
-      System.out.println(bos.toString());
+      System.out.println(bos.toString("UTF-8"));
       throw new RuntimeException("CheckIndex failed");
     } else {
       if (LuceneTestCase.INFOSTREAM) {
-        System.out.println(bos.toString());
+        System.out.println(bos.toString("UTF-8"));
       }
       return indexStatus;
     }

Modified: lucene/dev/branches/branch_4x/lucene/tools/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/build.xml?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/build.xml Mon Jul  9 15:45:58 2012
@@ -24,7 +24,11 @@
 
   <import file="../common-build.xml"/>
 
-  <path id="classpath"/>
+  <path id="classpath">
+    <fileset dir="lib">
+      <include name="asm-debug-all-4.0.jar"/>
+    </fileset>
+  </path>
 
   <!--  
       Specialize compile-core to not depend on clover, to exclude a 
@@ -32,8 +36,9 @@
       non-existent resource files to the build output directory.
    -->
   <target name="compile-core" depends="init" description="Compiles tools classes.">
-    <compile srcdir="${src.dir}" destdir="${build.dir}/classes/java" 
-      includeantruntime="true" />
+    <compile srcdir="${src.dir}" destdir="${build.dir}/classes/java" includeantruntime="true">
+      <classpath refid="classpath"/>
+    </compile>
     <copy todir="${build.dir}/classes/java">
       <fileset dir="${src.dir}" excludes="**/*.java" />
     </copy>

Modified: lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml Mon Jul  9 15:45:58 2012
@@ -5,19 +5,23 @@
     for standalone use.
   </description>
 
+  <target name="load-custom-tasks" unless="custom-tasks.loaded">
+    <dirname file="${ant.file.custom-tasks}" property="custom-tasks.dir"/>
+    <taskdef resource="lucene-solr.antlib.xml">
+      <classpath>
+        <pathelement location="${custom-tasks.dir}/../build/tools/classes/java" />
+        <fileset dir="${custom-tasks.dir}/lib" includes="asm-debug-all-4.0.jar" />
+      </classpath>
+    </taskdef>
+    <property name="custom-tasks.loaded" value="true"/>
+  </target>
+
   <macrodef name="license-check-macro">
     <attribute name="dir" />
     <element name="additional-excludes" optional="true" />
     <element name="additional-filters"  optional="true" />
     <sequential>
       <!-- LICENSE and NOTICE verification macro. -->
-      <dirname file="${ant.file.custom-tasks}" property="custom-tasks.dir"/>
-      <taskdef resource="lucene-solr.antlib.xml">
-        <classpath>
-          <pathelement location="${custom-tasks.dir}/../build/tools/classes/java" />
-        </classpath>
-      </taskdef>
-
       <echo>License check under: @{dir}</echo>
       <licenses>
         <fileset dir="@{dir}">

Modified: lucene/dev/branches/branch_4x/lucene/tools/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/ivy.xml?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/ivy.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/ivy.xml Mon Jul  9 15:45:58 2012
@@ -18,4 +18,12 @@
 -->
 <ivy-module version="2.0">
     <info organisation="org.apache.lucene" module="core-tools"/>
+    <dependencies>
+      <!-- 
+       We use the asm-debug-all library, as the as-all has no generics.
+       It's not really debug, just not "stripped":
+      -->
+      <dependency org="org.ow2.asm" name="asm-debug-all" rev="4.0" transitive="false"/>
+      <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
+    </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/branch_4x/lucene/tools/src/java/lucene-solr.antlib.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/src/java/lucene-solr.antlib.xml?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/src/java/lucene-solr.antlib.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/src/java/lucene-solr.antlib.xml Mon Jul  9 15:45:58 2012
@@ -18,4 +18,7 @@
     <taskdef 
         name="licenses" 
         classname="org.apache.lucene.validation.LicenseCheckTask" />
+    <taskdef 
+        name="forbidden-apis" 
+        classname="org.apache.lucene.validation.ForbiddenApisCheckTask" />
 </antlib> 

Modified: lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/validation/LicenseCheckTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/validation/LicenseCheckTask.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/validation/LicenseCheckTask.java (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/validation/LicenseCheckTask.java Mon Jul  9 15:45:58 2012
@@ -140,7 +140,7 @@ public class LicenseCheckTask extends Ta
       checked++;
     }
 
-    log(String.format(Locale.ENGLISH, 
+    log(String.format(Locale.ROOT, 
         "Scanned %d JAR file(s) for licenses (in %.2fs.), %d error(s).",
         checked, (System.currentTimeMillis() - start) / 1000.0, errors),
         errors > 0 ? Project.MSG_ERR : Project.MSG_INFO);
@@ -255,7 +255,7 @@ outer:
   private static final String createChecksumString(byte[] digest) {
     StringBuilder checksum = new StringBuilder();
     for (int i = 0; i < digest.length; i++) {
-      checksum.append(String.format(Locale.ENGLISH, "%02x", 
+      checksum.append(String.format(Locale.ROOT, "%02x", 
                                     CHECKSUM_BYTE_MASK & digest[i]));
     }
     return checksum.toString();

Modified: lucene/dev/branches/branch_4x/solr/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/build.xml?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/build.xml (original)
+++ lucene/dev/branches/branch_4x/solr/build.xml Mon Jul  9 15:45:58 2012
@@ -130,7 +130,7 @@
   <target name="compile" description="Compile the source code."
           depends="compile-core, compile-contrib"/>
   <target name="test" description="Validate, then run core, solrj, and contrib unit tests."
-          depends="validate, test-core, test-contrib"/>
+          depends="test-core, test-contrib"/>
   <target name="test-core" description="Runs the core and solrj unit tests."
           depends="test-solr-core, test-solrj"/>
   <target name="compile-test" description="Compile unit tests."
@@ -170,8 +170,10 @@
     </ant>
   </target>
     
-  <!-- Validation (license/ notice checks). -->
-  <target name="validate" depends="compile-tools,resolve" description="Validate legal stuff.">
+  <!-- Validation (license/notice/api checks). -->
+  <target name="validate" depends="check-licenses,check-forbidden-apis" description="Validate stuff." />
+
+  <target name="check-licenses" depends="compile-tools,resolve,load-custom-tasks" description="Validate license stuff.">
     <license-check-macro dir="${basedir}">
       <additional-excludes>
         <!-- Exclude start.jar only (it'd be weird to have a license file there?) -->
@@ -187,6 +189,21 @@
       </additional-filters>
     </license-check-macro>
   </target>
+  
+  <target name="check-forbidden-apis" depends="compile-tools,compile-test,load-custom-tasks" description="Check forbidden API calls in compiled class files.">
+    <forbidden-apis>
+      <classpath refid="classpath"/>
+      <apiFileSet dir="${custom-tasks.dir}/forbiddenApis">
+        <include name="jdk.txt" />
+        <include name="commons-io.txt" />
+      </apiFileSet>
+      <fileset dir="${basedir}/build">
+        <include name="**/*.class" />
+        <!-- exclude DIH for now as it is broken with Locales and Encodings: SOLR-1916 -->
+        <exclude name="contrib/solr-dataimporthandler*/**" />
+      </fileset>
+    </forbidden-apis>
+  </target>
 
   <!-- rat sources -->
   <target name="rat-sources">

Modified: lucene/dev/branches/branch_4x/solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/MorfologikFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/MorfologikFilterFactory.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/MorfologikFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/MorfologikFilterFactory.java Mon Jul  9 15:45:58 2012
@@ -69,7 +69,7 @@ public class MorfologikFilterFactory ext
     String dictionaryName = args.get(DICTIONARY_SCHEMA_ATTRIBUTE);
     if (dictionaryName != null && !dictionaryName.isEmpty()) {
       try {
-        DICTIONARY dictionary = DICTIONARY.valueOf(dictionaryName.toUpperCase(Locale.ENGLISH));
+        DICTIONARY dictionary = DICTIONARY.valueOf(dictionaryName.toUpperCase(Locale.ROOT));
         assert dictionary != null;
         this.dictionary = dictionary;
       } catch (IllegalArgumentException e) {

Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler-extras/src/java/org/apache/solr/handler/dataimport/MailEntityProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler-extras/src/java/org/apache/solr/handler/dataimport/MailEntityProcessor.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler-extras/src/java/org/apache/solr/handler/dataimport/MailEntityProcessor.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler-extras/src/java/org/apache/solr/handler/dataimport/MailEntityProcessor.java Mon Jul  9 15:45:58 2012
@@ -171,7 +171,7 @@ public class MailEntityProcessor extends
       InputStream is = part.getInputStream();
       String fileName = part.getFileName();
       Metadata md = new Metadata();
-      md.set(HttpHeaders.CONTENT_TYPE, ctype.getBaseType().toLowerCase(Locale.ENGLISH));
+      md.set(HttpHeaders.CONTENT_TYPE, ctype.getBaseType().toLowerCase(Locale.ROOT));
       md.set(TikaMetadataKeys.RESOURCE_NAME_KEY, fileName);
       String content = tika.parseToString(is, md);
       if (disp != null && disp.equalsIgnoreCase(Part.ATTACHMENT)) {

Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java Mon Jul  9 15:45:58 2012
@@ -128,7 +128,7 @@ public class DataImporter {
   private void loadSchemaFieldMap() {
     Map<String, SchemaField> modLnvsf = new HashMap<String, SchemaField>();
     for (Map.Entry<String, SchemaField> entry : schema.getFields().entrySet()) {
-      modLnvsf.put(entry.getKey().toLowerCase(Locale.ENGLISH), entry.getValue());
+      modLnvsf.put(entry.getKey().toLowerCase(Locale.ROOT), entry.getValue());
     }
     lowerNameVsSchemaField = Collections.unmodifiableMap(modLnvsf);
   }
@@ -139,7 +139,7 @@ public class DataImporter {
       schemaField = schema.getFieldOrNull(caseInsensitiveName);
     }
     if (schemaField == null) {
-      schemaField = lowerNameVsSchemaField.get(caseInsensitiveName.toLowerCase(Locale.ENGLISH));
+      schemaField = lowerNameVsSchemaField.get(caseInsensitiveName.toLowerCase(Locale.ROOT));
     }
     return schemaField;
   }

Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/NumberFormatTransformer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/NumberFormatTransformer.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/NumberFormatTransformer.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/NumberFormatTransformer.java Mon Jul  9 15:45:58 2012
@@ -72,7 +72,7 @@ public class NumberFormatTransformer ext
         }
 
         Object val = row.get(srcCol);
-        String styleSmall = style.toLowerCase(Locale.ENGLISH);
+        String styleSmall = style.toLowerCase(Locale.ROOT);
 
         if (val instanceof List) {
           List<String> inputs = (List) val;

Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestCachedSqlEntityProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestCachedSqlEntityProcessor.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestCachedSqlEntityProcessor.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestCachedSqlEntityProcessor.java Mon Jul  9 15:45:58 2012
@@ -108,7 +108,7 @@ public class TestCachedSqlEntityProcesso
       if (r == null)
         break;
       rows.add(r);
-      assertEquals(r.get("desc").toString().toUpperCase(Locale.ENGLISH), r.get("desc"));
+      assertEquals(r.get("desc").toString().toUpperCase(Locale.ROOT), r.get("desc"));
     }
     assertEquals(2, rows.size());
     assertEquals(2, rows.get(0).size());
@@ -176,7 +176,7 @@ public class TestCachedSqlEntityProcesso
         Object val = entry.getValue();
         if (val instanceof String) {
           String s = (String) val;
-          entry.setValue(s.toUpperCase(Locale.ENGLISH));
+          entry.setValue(s.toUpperCase(Locale.ROOT));
         }
       }
       return row;

Modified: lucene/dev/branches/branch_4x/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/ExtractingDocumentLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/ExtractingDocumentLoader.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/ExtractingDocumentLoader.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/ExtractingDocumentLoader.java Mon Jul  9 15:45:58 2012
@@ -138,7 +138,7 @@ public class ExtractingDocumentLoader ex
     String streamType = req.getParams().get(ExtractingParams.STREAM_TYPE, null);
     if (streamType != null) {
       //Cache?  Parsers are lightweight to construct and thread-safe, so I'm told
-      MediaType mt = MediaType.parse(streamType.trim().toLowerCase(Locale.ENGLISH));
+      MediaType mt = MediaType.parse(streamType.trim().toLowerCase(Locale.ROOT));
       parser = new DefaultParser(config.getMediaTypeRegistry()).getParsers().get(mt);
     } else {
       parser = autoDetectParser;

Modified: lucene/dev/branches/branch_4x/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/RegexRulesPasswordProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/RegexRulesPasswordProvider.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/RegexRulesPasswordProvider.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/RegexRulesPasswordProvider.java Mon Jul  9 15:45:58 2012
@@ -20,12 +20,12 @@ package org.apache.solr.handler.extracti
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.LinkedHashMap;
 import java.util.Map.Entry;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 
+import org.apache.lucene.util.IOUtils;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.TikaMetadataKeys;
 import org.apache.tika.parser.PasswordProvider;
@@ -73,7 +73,7 @@ public class RegexRulesPasswordProvider 
    */
   public static LinkedHashMap<Pattern,String> parseRulesFile(InputStream is) {
     LinkedHashMap<Pattern,String> rules = new LinkedHashMap<Pattern,String>();
-    BufferedReader br = new BufferedReader(new InputStreamReader(is));
+    BufferedReader br = new BufferedReader(IOUtils.getDecodingReader(is, IOUtils.CHARSET_UTF_8));
     String line;
     try {
       int linenum = 0;

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java Mon Jul  9 15:45:58 2012
@@ -93,7 +93,7 @@ public class JapaneseTokenizerFactory ex
   private Mode getMode(Map<String, String> args) {
     String mode = args.get(MODE);
     if (mode != null) {
-      return Mode.valueOf(mode.toUpperCase(Locale.ENGLISH));
+      return Mode.valueOf(mode.toUpperCase(Locale.ROOT));
     } else {
       return JapaneseTokenizer.DEFAULT_MODE;
     }

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilter.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilter.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/LegacyHTMLStripCharFilter.java Mon Jul  9 15:45:58 2012
@@ -21,6 +21,7 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.Set;
 
@@ -71,7 +72,7 @@ public class LegacyHTMLStripCharFilter e
 
   public static void main(String[] args) throws IOException {
     Reader in = new LegacyHTMLStripCharFilter(
-            CharReader.get(new InputStreamReader(System.in)));
+            CharReader.get(new InputStreamReader(System.in, Charset.defaultCharset())));
     int ch;
     while ( (ch=in.read()) != -1 ) System.out.print((char)ch);
   }

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/PhoneticFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/PhoneticFilterFactory.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/PhoneticFilterFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/analysis/PhoneticFilterFactory.java Mon Jul  9 15:45:58 2012
@@ -68,12 +68,12 @@ public class PhoneticFilterFactory exten
   private static final Map<String, Class<? extends Encoder>> registry = new HashMap<String, Class<? extends Encoder>>(6);
 
   static {
-    registry.put("DoubleMetaphone".toUpperCase(Locale.ENGLISH), DoubleMetaphone.class);
-    registry.put("Metaphone".toUpperCase(Locale.ENGLISH), Metaphone.class);
-    registry.put("Soundex".toUpperCase(Locale.ENGLISH), Soundex.class);
-    registry.put("RefinedSoundex".toUpperCase(Locale.ENGLISH), RefinedSoundex.class);
-    registry.put("Caverphone".toUpperCase(Locale.ENGLISH), Caverphone2.class);
-    registry.put("ColognePhonetic".toUpperCase(Locale.ENGLISH), ColognePhonetic.class);
+    registry.put("DoubleMetaphone".toUpperCase(Locale.ROOT), DoubleMetaphone.class);
+    registry.put("Metaphone".toUpperCase(Locale.ROOT), Metaphone.class);
+    registry.put("Soundex".toUpperCase(Locale.ROOT), Soundex.class);
+    registry.put("RefinedSoundex".toUpperCase(Locale.ROOT), RefinedSoundex.class);
+    registry.put("Caverphone".toUpperCase(Locale.ROOT), Caverphone2.class);
+    registry.put("ColognePhonetic".toUpperCase(Locale.ROOT), ColognePhonetic.class);
   }
 
   protected boolean inject = true;
@@ -93,7 +93,7 @@ public class PhoneticFilterFactory exten
       throw new InitializationException("Missing required parameter: " + ENCODER
           + " [" + registry.keySet() + "]");
     }
-    clazz = registry.get(name.toUpperCase(Locale.ENGLISH));
+    clazz = registry.get(name.toUpperCase(Locale.ROOT));
     if( clazz == null ) {
       clazz = resolveEncoder(name);
     }

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java Mon Jul  9 15:45:58 2012
@@ -20,8 +20,8 @@ package org.apache.solr.cloud;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileReader;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
@@ -29,6 +29,7 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Map.Entry;
 
+import org.apache.lucene.util.IOUtils;
 import org.apache.solr.common.SolrException;
 import org.apache.zookeeper.server.ServerConfig;
 import org.apache.zookeeper.server.ZooKeeperServerMain;
@@ -462,7 +463,7 @@ class SolrZkServerProps extends QuorumPe
             + " file is missing");
       }
 
-      BufferedReader br = new BufferedReader(new FileReader(myIdFile));
+      BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(myIdFile), IOUtils.CHARSET_UTF_8));
       String myIdString;
       try {
         myIdString = br.readLine();

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java Mon Jul  9 15:45:58 2012
@@ -198,7 +198,7 @@ public abstract class CachingDirectoryFa
       log.warn("No lockType configured for " + dir + " assuming 'simple'");
       rawLockType = "simple";
     }
-    final String lockType = rawLockType.toLowerCase(Locale.ENGLISH).trim();
+    final String lockType = rawLockType.toLowerCase(Locale.ROOT).trim();
     
     if ("simple".equals(lockType)) {
       // multiple SimpleFSLockFactory instances should be OK

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java Mon Jul  9 15:45:58 2012
@@ -781,7 +781,7 @@ public class CoreContainer 
         if (schemaFile.exists()) {
           String key = schemaFile.getAbsolutePath()
               + ":"
-              + new SimpleDateFormat("yyyyMMddHHmmss", Locale.US).format(new Date(
+              + new SimpleDateFormat("yyyyMMddHHmmss", Locale.ROOT).format(new Date(
                   schemaFile.lastModified()));
           schema = indexSchemaCache.get(key);
           if (schema == null) {

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/JmxMonitoredMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/JmxMonitoredMap.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/JmxMonitoredMap.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/JmxMonitoredMap.java Mon Jul  9 15:45:58 2012
@@ -281,7 +281,7 @@ public class JmxMonitoredMap<K, V> exten
       } else if (staticStats.contains(attribute) && attribute != null
               && attribute.length() > 0) {
         try {
-          String getter = "get" + attribute.substring(0, 1).toUpperCase(Locale.ENGLISH)
+          String getter = "get" + attribute.substring(0, 1).toUpperCase(Locale.ROOT)
                   + attribute.substring(1);
           Method meth = infoBean.getClass().getMethod(getter);
           val = meth.invoke(infoBean);

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrConfig.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrConfig.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrConfig.java Mon Jul  9 15:45:58 2012
@@ -344,7 +344,7 @@ public class SolrConfig extends Config {
       /** Input must not be null */
       public static LastModFrom parse(final String s) {
         try {
-          return valueOf(s.toUpperCase(Locale.ENGLISH));
+          return valueOf(s.toUpperCase(Locale.ROOT));
         } catch (Exception e) {
           log.warn( "Unrecognized value for lastModFrom: " + s, e);
           return BOGUS;

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java Mon Jul  9 15:45:58 2012
@@ -1913,13 +1913,13 @@ public final class SolrCore implements S
         Set<String> hide = new HashSet<String>();
 
         for (String file : solrConfig.getResourceLoader().listConfigDir()) {
-          hide.add(file.toUpperCase(Locale.ENGLISH));
+          hide.add(file.toUpperCase(Locale.ROOT));
         }    
         
         // except the "gettable" list
         StringTokenizer st = new StringTokenizer( gettable );
         while( st.hasMoreTokens() ) {
-          hide.remove( st.nextToken().toUpperCase(Locale.ENGLISH) );
+          hide.remove( st.nextToken().toUpperCase(Locale.ROOT) );
         }
         for( String s : hide ) {
           invariants.add( ShowFileRequestHandler.HIDDEN, s );

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrDeletionPolicy.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrDeletionPolicy.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrDeletionPolicy.java Mon Jul  9 15:45:58 2012
@@ -145,7 +145,7 @@ public class SolrDeletionPolicy implemen
         try {
           if (maxCommitAge != null) {
             if (maxCommitAgeTimeStamp==-1) {
-              DateMathParser dmp = new DateMathParser(DateField.UTC, Locale.US);
+              DateMathParser dmp = new DateMathParser(DateField.UTC, Locale.ROOT);
               maxCommitAgeTimeStamp = dmp.parseMath(maxCommitAge).getTime();
             }
             if (IndexDeletionPolicyWrapper.getCommitTimestamp(commit) < maxCommitAgeTimeStamp) {

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java Mon Jul  9 15:45:58 2012
@@ -191,7 +191,7 @@ public class PingRequestHandler extends 
     }
     else {
       try {
-        action = ACTIONS.valueOf(actionParam.toUpperCase(Locale.ENGLISH));
+        action = ACTIONS.valueOf(actionParam.toUpperCase(Locale.ROOT));
       }
       catch (IllegalArgumentException iae){
         throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, 

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/SnapPuller.java?rev=1359229&r1=1359228&r2=1359229&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/SnapPuller.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/SnapPuller.java Mon Jul  9 15:45:58 2012
@@ -530,7 +530,7 @@ public class SnapPuller {
    * All the files are copied to a temp dir first
    */
   private File createTempindexDir(SolrCore core) {
-    String tmpIdxDirName = "index." + new SimpleDateFormat(SnapShooter.DATE_FMT, Locale.US).format(new Date());
+    String tmpIdxDirName = "index." + new SimpleDateFormat(SnapShooter.DATE_FMT, Locale.ROOT).format(new Date());
     File tmpIdxDir = new File(core.getDataDir(), tmpIdxDirName);
     tmpIdxDir.mkdirs();
     return tmpIdxDir;
@@ -701,7 +701,7 @@ public class SnapPuller {
   }
 
   private String getDateAsStr(Date d) {
-    return new SimpleDateFormat(SnapShooter.DATE_FMT, Locale.US).format(d);
+    return new SimpleDateFormat(SnapShooter.DATE_FMT, Locale.ROOT).format(d);
   }
 
   /**