Hi, you have tob e careful: If you store properties with a writer but load it with InputStream, the code is different. Properties files have a defined charset of ISO-8859-1:
"The load(Reader) / store(Writer, String) methods load and store properties from and to a character based stream in a simple line-oriented format specified below. The load(InputStream) / store(OutputStream, String) methods work the same way as the load(Reader)/store(Writer, String) pair, except the input/output stream is encoded in ISO 8859-1 character encoding. Characters that cannot be directly represented in this encoding can be written using Unicode escapes as defined in section 3.3 of The Java™ Language Specification; only a single 'u' character is allowed in an escape sequence. The native2ascii tool can be used to convert property files to and from other character encodings." So be sure to be consistent when loading/saving! If we previously (in older Solr version) used the InputStream methods to load/store core props, we should use ISO-8859-1 to load/store to be compatible with older versions! Uwe ----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: u...@thetaphi.de > -----Original Message----- > From: romseyg...@apache.org [mailto:romseyg...@apache.org] > Sent: Friday, July 12, 2013 10:26 AM > To: comm...@lucene.apache.org > Subject: svn commit: r1502468 - in /lucene/dev/trunk/solr/core/src: > java/org/apache/solr/core/CorePropertiesLocator.java > test/org/apache/solr/core/TestSolrXmlPersistor.java > > Author: romseygeek > Date: Fri Jul 12 08:25:36 2013 > New Revision: 1502468 > > URL: http://svn.apache.org/r1502468 > Log: > SOLR-4914: Close OutputStreamWriter properly, use > System.getProperty("line.separator") instead of \n > > Fixes Windows test failures. > > Modified: > > lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CorePropertiesL > ocator.java > > lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersi > stor.java > > Modified: > lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CorePropertiesL > ocator.java > URL: > http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apa > che/solr/core/CorePropertiesLocator.java?rev=1502468&r1=1502467&r2=150 > 2468&view=diff > ========================================================== > ==================== > --- > lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CorePropertiesL > ocator.java (original) > +++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CorePropert > +++ iesLocator.java Fri Jul 12 08:25:36 2013 > @@ -20,6 +20,7 @@ package org.apache.solr.core; import > com.google.common.base.Charsets; import > com.google.common.collect.Lists; import > org.apache.solr.common.SolrException; > +import org.apache.solr.util.IOUtils; > import org.slf4j.Logger; > import org.slf4j.LoggerFactory; > > @@ -27,6 +28,7 @@ import java.io.File; > import java.io.FileInputStream; > import java.io.FileOutputStream; > import java.io.IOException; > +import java.io.OutputStream; > import java.io.OutputStreamWriter; > import java.io.Writer; > import java.util.Date; > @@ -56,14 +58,7 @@ public class CorePropertiesLocator imple > throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, > "Could not create a new core in " + > cd.getInstanceDir() > + "as another core is already defined there"); > - try { > - Properties p = buildCoreProperties(cd); > - Writer writer = new OutputStreamWriter(new > FileOutputStream(propFile), Charsets.UTF_8); > - p.store(writer, "Written by CorePropertiesLocator on " + new Date()); > - } > - catch (IOException e) { > - logger.error("Couldn't persist core properties to {}: {}", > propFile.getAbsolutePath(), e); > - } > + writePropertiesFile(cd, propFile); > } > } > > @@ -75,14 +70,25 @@ public class CorePropertiesLocator imple > public void persist(CoreContainer cc, CoreDescriptor... coreDescriptors) { > for (CoreDescriptor cd : coreDescriptors) { > File propFile = new File(new File(cd.getInstanceDir()), > PROPERTIES_FILENAME); > - try { > - Properties p = buildCoreProperties(cd); > - Writer writer = new OutputStreamWriter(new > FileOutputStream(propFile), Charsets.UTF_8); > - p.store(writer, "Written by CorePropertiesLocator on " + new Date()); > - } > - catch (IOException e) { > - logger.error("Couldn't persist core properties to {}: {}", > propFile.getAbsolutePath(), e); > - } > + writePropertiesFile(cd, propFile); > + } > + } > + > + private void writePropertiesFile(CoreDescriptor cd, File propfile) { > + Properties p = buildCoreProperties(cd); > + OutputStream os = null; > + try { > + os = new FileOutputStream(propfile); > + Writer writer = new OutputStreamWriter(os, Charsets.UTF_8); > + p.store(writer, "Written by CorePropertiesLocator on " + new Date()); > + writer.close(); > + } > + catch (IOException e) { > + logger.error("Couldn't persist core properties to {}: {}", > propfile.getAbsolutePath(), e); > + } > + finally { > + if (os != null) > + IOUtils.closeQuietly(os); > } > } > > > Modified: > lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersi > stor.java > URL: > http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apa > che/solr/core/TestSolrXmlPersistor.java?rev=1502468&r1=1502467&r2=1502 > 468&view=diff > ========================================================== > ==================== > --- > lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersi > stor.java (original) > +++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXml > +++ Persistor.java Fri Jul 12 08:25:36 2013 > @@ -70,8 +70,8 @@ public class TestSolrXmlPersistor { > > SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(new > File("testfile.xml"), solrxml, null); > assertEquals(persistor.buildSolrXML(cds), > - "<solr><cores>\n" > - + " <core name=\"testcore\" instanceDir=\"instance/dir/\"/>\n" > + "<solr><cores>" + SolrXMLCoresLocator.NEWLINE > + + " <core name=\"testcore\" instanceDir=\"instance/dir/\"/>" + > SolrXMLCoresLocator.NEWLINE > + "</cores></solr>"); > } > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org