From 123b645157c45384852a3cfbd19ea4d2f39330b6 Mon Sep 17 00:00:00 2001 From: Robert Muir Date: Mon, 9 Jul 2012 14:22:20 +0000 Subject: [PATCH] LUCENE-4199: fix remaining violations git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene4199@1359188 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/java/org/apache/solr/handler/SnapShooter.java | 2 +- .../apache/solr/handler/admin/SystemInfoHandler.java | 4 +++- .../apache/solr/handler/admin/ThreadDumpHandler.java | 3 ++- .../apache/solr/handler/component/QueryComponent.java | 4 ++-- .../java/org/apache/solr/internal/csv/CSVParser.java | 10 ---------- .../solr/internal/csv/writer/CSVConfigGuesser.java | 4 +++- .../apache/solr/search/function/FileFloatSource.java | 3 ++- .../apache/solr/servlet/cache/HttpCacheHeaderUtil.java | 2 +- .../solr/spelling/WordBreakSolrSpellChecker.java | 3 ++- .../java/org/apache/solr/update/SolrIndexWriter.java | 2 +- .../src/java/org/apache/solr/util/NumberUtils.java | 3 ++- .../handler/component/QueryElevationComponentTest.java | 4 +++- .../solr/internal/csv/writer/CSVConfigGuesserTest.java | 8 ++++---- .../org/apache/solr/client/solrj/SolrQueryTest.java | 3 ++- .../solr/client/solrj/embedded/TestSolrProperties.java | 3 ++- 15 files changed, 30 insertions(+), 28 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/handler/SnapShooter.java b/solr/core/src/java/org/apache/solr/handler/SnapShooter.java index 02ac9dba151..996eb9885a3 100644 --- a/solr/core/src/java/org/apache/solr/handler/SnapShooter.java +++ b/solr/core/src/java/org/apache/solr/handler/SnapShooter.java @@ -151,7 +151,7 @@ public class SnapShooter { if(m.find()) { try { this.dir = dir; - this.timestamp = new SimpleDateFormat(DATE_FMT).parse(m.group(1)); + this.timestamp = new SimpleDateFormat(DATE_FMT, Locale.ROOT).parse(m.group(1)); } catch(Exception e) { this.dir = null; this.timestamp = null; diff --git a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java index 0f380130823..faba839379f 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java @@ -19,12 +19,14 @@ package org.apache.solr.handler.admin; import java.io.DataInputStream; import java.io.File; +import java.io.InputStreamReader; import java.lang.management.ManagementFactory; import java.lang.management.OperatingSystemMXBean; import java.lang.management.RuntimeMXBean; import java.lang.reflect.Method; import java.net.InetAddress; import java.net.UnknownHostException; +import java.nio.charset.Charset; import java.text.DecimalFormat; import java.util.Date; import java.util.Locale; @@ -180,7 +182,7 @@ public class SystemInfoHandler extends RequestHandlerBase process = Runtime.getRuntime().exec(cmd); in = new DataInputStream( process.getInputStream() ); // use default charset from locale here, because the command invoked also uses the default locale: - return IOUtils.toString(in); + return IOUtils.toString(new InputStreamReader(in, Charset.defaultCharset())); } catch( Exception ex ) { // ignore - log.warn("Error executing command", ex); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ThreadDumpHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/ThreadDumpHandler.java index b9df00c81de..1af19bfb05c 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/ThreadDumpHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/ThreadDumpHandler.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; +import java.util.Locale; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.SimpleOrderedMap; @@ -119,7 +120,7 @@ public class ThreadDumpHandler extends RequestHandlerBase } private static String formatNanos(long ns) { - return String.format("%.4fms", ns / (double) 1000000); + return String.format(Locale.ROOT, "%.4fms", ns / (double) 1000000); } //////////////////////// SolrInfoMBeans methods ////////////////////// diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java index c8cd3ccfe82..98e5f470f96 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java @@ -180,7 +180,7 @@ public class QueryComponent extends SearchComponent try { responseFormat = Grouping.Format.valueOf(formatStr); } catch (IllegalArgumentException e) { - throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, String.format("Illegal %s parameter", GroupParams.GROUP_FORMAT)); + throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, String.format(Locale.ROOT, "Illegal %s parameter", GroupParams.GROUP_FORMAT)); } groupingSpec.setResponseFormat(responseFormat); @@ -386,7 +386,7 @@ public class QueryComponent extends SearchComponent if (grouping.isSignalCacheWarning()) { rsp.add( "cacheWarning", - String.format("Cache limit of %d percent relative to maxdoc has exceeded. Please increase cache size or disable caching.", maxDocsPercentageToCache) + String.format(Locale.ROOT, "Cache limit of %d percent relative to maxdoc has exceeded. Please increase cache size or disable caching.", maxDocsPercentageToCache) ); } rb.setResult(result); diff --git a/solr/core/src/java/org/apache/solr/internal/csv/CSVParser.java b/solr/core/src/java/org/apache/solr/internal/csv/CSVParser.java index 27b3ab1931e..169c6d9ffe3 100644 --- a/solr/core/src/java/org/apache/solr/internal/csv/CSVParser.java +++ b/solr/core/src/java/org/apache/solr/internal/csv/CSVParser.java @@ -105,16 +105,6 @@ public class CSVParser { // the constructor // ====================================================== - /** - * Default strategy for the parser follows the default {@link CSVStrategy}. - * - * @param input an InputStream containing "csv-formatted" stream - * @deprecated use {@link #CSVParser(Reader)}. - */ - public CSVParser(InputStream input) { - this(new InputStreamReader(input)); - } - /** * CSV parser using the default {@link CSVStrategy}. * diff --git a/solr/core/src/java/org/apache/solr/internal/csv/writer/CSVConfigGuesser.java b/solr/core/src/java/org/apache/solr/internal/csv/writer/CSVConfigGuesser.java index 8e04b6d520c..bbff872f182 100644 --- a/solr/core/src/java/org/apache/solr/internal/csv/writer/CSVConfigGuesser.java +++ b/solr/core/src/java/org/apache/solr/internal/csv/writer/CSVConfigGuesser.java @@ -22,6 +22,8 @@ import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; +import org.apache.lucene.util.IOUtils; + /** * Tries to guess a config based on an InputStream. * @@ -74,7 +76,7 @@ public class CSVConfigGuesser { public CSVConfig guess() { try { // tralalal - BufferedReader bIn = new BufferedReader(new InputStreamReader((getInputStream()))); + BufferedReader bIn = new BufferedReader(new InputStreamReader(getInputStream(), IOUtils.CHARSET_UTF_8)); String[] lines = new String[10]; String line = null; int counter = 0; diff --git a/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java b/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java index b5801a322fa..5049887f125 100755 --- a/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java +++ b/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java @@ -39,6 +39,7 @@ import org.apache.lucene.queries.function.ValueSource; import org.apache.lucene.queries.function.docvalues.FloatDocValues; import org.apache.lucene.search.DocIdSetIterator; import org.apache.lucene.util.BytesRef; +import org.apache.lucene.util.IOUtils; import org.apache.solr.core.SolrCore; import org.apache.solr.handler.RequestHandlerBase; import org.apache.solr.handler.RequestHandlerUtils; @@ -224,7 +225,7 @@ public class FileFloatSource extends ValueSource { return vals; } - BufferedReader r = new BufferedReader(new InputStreamReader(is)); + BufferedReader r = new BufferedReader(new InputStreamReader(is, IOUtils.CHARSET_UTF_8)); String idName = ffs.keyField.getName(); FieldType idType = ffs.keyField.getType(); diff --git a/solr/core/src/java/org/apache/solr/servlet/cache/HttpCacheHeaderUtil.java b/solr/core/src/java/org/apache/solr/servlet/cache/HttpCacheHeaderUtil.java index 5d099731885..2643682429f 100644 --- a/solr/core/src/java/org/apache/solr/servlet/cache/HttpCacheHeaderUtil.java +++ b/solr/core/src/java/org/apache/solr/servlet/cache/HttpCacheHeaderUtil.java @@ -77,7 +77,7 @@ public final class HttpCacheHeaderUtil { etagCache = "\"" + new String(Base64.encodeBase64((Long.toHexString (Long.reverse(indexVersionCache)) - + etagSeed).getBytes()), "US-ASCII") + + etagSeed).getBytes("US-ASCII")), "US-ASCII") + "\""; } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); // may not happen diff --git a/solr/core/src/java/org/apache/solr/spelling/WordBreakSolrSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/WordBreakSolrSpellChecker.java index 00705d404d3..243ff4f34d8 100644 --- a/solr/core/src/java/org/apache/solr/spelling/WordBreakSolrSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/WordBreakSolrSpellChecker.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.regex.Pattern; import org.apache.lucene.analysis.Token; @@ -126,7 +127,7 @@ public class WordBreakSolrSpellChecker extends SolrSpellChecker { wbsp = new WordBreakSpellChecker(); String bstb = strParam(config, PARAM_BREAK_SUGGESTION_TIE_BREAKER); if (bstb != null) { - bstb = bstb.toUpperCase(); + bstb = bstb.toUpperCase(Locale.ROOT); if (bstb.equals(BreakSuggestionTieBreaker.SUM_FREQ.name())) { sortMethod = BreakSuggestionSortMethod.NUM_CHANGES_THEN_SUMMED_FREQUENCY; } else if (bstb.equals(BreakSuggestionTieBreaker.MAX_FREQ.name())) { diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java b/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java index d3a9f921a93..0a8b026aea5 100644 --- a/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java +++ b/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java @@ -75,7 +75,7 @@ public class SolrIndexWriter extends IndexWriter { File parent = f.getParentFile(); if (parent != null) parent.mkdirs(); FileOutputStream fos = new FileOutputStream(f, true); - return new PrintStreamInfoStream(new PrintStream(fos, true)); + return new PrintStreamInfoStream(new PrintStream(fos, true, "UTF-8")); } else { return InfoStream.NO_OUTPUT; } diff --git a/solr/core/src/java/org/apache/solr/util/NumberUtils.java b/solr/core/src/java/org/apache/solr/util/NumberUtils.java index d8dd26b6772..1525342663f 100644 --- a/solr/core/src/java/org/apache/solr/util/NumberUtils.java +++ b/solr/core/src/java/org/apache/solr/util/NumberUtils.java @@ -18,6 +18,7 @@ package org.apache.solr.util; import java.text.NumberFormat; +import java.util.Locale; import org.apache.lucene.util.BytesRef; @@ -27,7 +28,7 @@ import org.apache.lucene.util.BytesRef; public class NumberUtils { public static String readableSize(long size) { - NumberFormat formatter = NumberFormat.getNumberInstance(); + NumberFormat formatter = NumberFormat.getNumberInstance(Locale.ROOT); formatter.setMaximumFractionDigits(2); if (size / (1024 * 1024 * 1024) > 0) { return formatter.format(size * 1.0d / (1024 * 1024 * 1024)) + " GB"; diff --git a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java index 02b52a3eaa8..175e39f9fa2 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java @@ -19,6 +19,7 @@ package org.apache.solr.handler.component; import org.apache.lucene.index.IndexReader; import org.apache.lucene.util.BytesRef; +import org.apache.lucene.util.IOUtils; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.MapSolrParams; @@ -34,6 +35,7 @@ import org.junit.Test; import java.io.File; import java.io.FileOutputStream; +import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; @@ -412,7 +414,7 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 { // write a test file to boost some docs private void writeFile(File file, String query, String... ids) throws Exception { - PrintWriter out = new PrintWriter(new FileOutputStream(file)); + PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(file), IOUtils.CHARSET_UTF_8)); out.println(""); out.println(""); out.println(""); diff --git a/solr/core/src/test/org/apache/solr/internal/csv/writer/CSVConfigGuesserTest.java b/solr/core/src/test/org/apache/solr/internal/csv/writer/CSVConfigGuesserTest.java index 3c13013be9b..9360b3dec3b 100644 --- a/solr/core/src/test/org/apache/solr/internal/csv/writer/CSVConfigGuesserTest.java +++ b/solr/core/src/test/org/apache/solr/internal/csv/writer/CSVConfigGuesserTest.java @@ -43,7 +43,7 @@ public class CSVConfigGuesserTest extends TestCase { * 1234 ; abcd ; 1234 ; * */ - public void testConfigGuess1() { + public void testConfigGuess1() throws Exception { CSVConfig expected = new CSVConfig(); expected.setDelimiter(';'); expected.setValueDelimiter(' '); @@ -57,7 +57,7 @@ public class CSVConfigGuesserTest extends TestCase { StringBuffer sb = new StringBuffer(); sb.append("1234;abcd;1234\n"); sb.append("abcd;1234;abcd"); - ByteArrayInputStream in = new ByteArrayInputStream(sb.toString().getBytes()); + ByteArrayInputStream in = new ByteArrayInputStream(sb.toString().getBytes("UTF-8")); CSVConfigGuesser guesser = new CSVConfigGuesser(in); CSVConfig guessed = guesser.guess(); assertEquals(expected.isFixedWidth(), guessed.isFixedWidth()); @@ -70,7 +70,7 @@ public class CSVConfigGuesserTest extends TestCase { * 1,2,3,4 * */ - public void testConfigGuess2() { + public void testConfigGuess2() throws Exception { CSVConfig expected = new CSVConfig(); expected.setDelimiter(';'); expected.setValueDelimiter(' '); @@ -80,7 +80,7 @@ public class CSVConfigGuesserTest extends TestCase { StringBuffer sb = new StringBuffer(); sb.append("1,2,3,4\n"); sb.append("abcd,1234,abcd,1234"); - ByteArrayInputStream in = new ByteArrayInputStream(sb.toString().getBytes()); + ByteArrayInputStream in = new ByteArrayInputStream(sb.toString().getBytes("UTF-8")); CSVConfigGuesser guesser = new CSVConfigGuesser(in); CSVConfig guessed = guesser.guess(); assertEquals(expected.isFixedWidth(), guessed.isFixedWidth()); diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrQueryTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrQueryTest.java index abefc27ad94..5a06a272f5f 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrQueryTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrQueryTest.java @@ -26,6 +26,7 @@ import org.apache.solr.common.util.DateUtil; import java.util.Calendar; import java.util.Date; import java.util.Locale; +import java.util.TimeZone; /** * @@ -139,7 +140,7 @@ public class SolrQueryTest extends LuceneTestCase { public void testFacetDateRange() { SolrQuery q = new SolrQuery("dog"); - Calendar calendar = Calendar.getInstance(Locale.UK); + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.UK); calendar.set(2010, 1, 1); Date start = calendar.getTime(); calendar.set(2011, 1, 1); diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java index adbe995e3db..00cb146b0d9 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java @@ -19,6 +19,7 @@ package org.apache.solr.client.solrj.embedded; import java.io.File; import java.io.FileInputStream; +import java.io.InputStreamReader; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -169,7 +170,7 @@ public class TestSolrProperties extends AbstractEmbeddedSolrServerTestCase { Document document = builder.parse(fis); fis.close(); fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML)); - String solrPersistXml = IOUtils.toString(fis); + String solrPersistXml = IOUtils.toString(new InputStreamReader(fis, "UTF-8")); //System.out.println("xml:" + solrPersistXml); assertTrue("\"/solr/cores[@defaultCoreName='core0']\" doesn't match in:\n" + solrPersistXml, exists("/solr/cores[@defaultCoreName='core0']", document));