You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/04/02 20:58:38 UTC
svn commit: r1463670 - in /commons/proper/configuration/trunk/src:
main/java/org/apache/commons/configuration/io/FileHandler.java
test/java/org/apache/commons/configuration/io/TestFileHandler.java
Author: oheger
Date: Tue Apr 2 18:58:37 2013
New Revision: 1463670
URL: http://svn.apache.org/r1463670
Log:
The FileLocator injected by FileHandler now always contains the encoding set
for the current instance.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/io/FileHandler.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/io/TestFileHandler.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/io/FileHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/io/FileHandler.java?rev=1463670&r1=1463669&r2=1463670&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/io/FileHandler.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/io/FileHandler.java Tue Apr 2 18:58:37 2013
@@ -675,13 +675,16 @@ public class FileHandler
* {@code FileLocatorAware} interface. If this is the case, a
* {@code FileLocator} instance is injected which returns only <b>null</b>
* values. This method is called if no file location is available (e.g. if
- * data is to be loaded from a stream).
+ * data is to be loaded from a stream). The encoding of the injected locator
+ * is derived from this object.
*/
private void injectNullFileLocator()
{
if (getContent() instanceof FileLocatorAware)
{
- ((FileLocatorAware) getContent()).initFileLocator(new FileSpec());
+ FileSpec spec = new FileSpec();
+ spec.setEncoding(getEncoding());
+ ((FileLocatorAware) getContent()).initFileLocator(spec);
}
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/io/TestFileHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/io/TestFileHandler.java?rev=1463670&r1=1463669&r2=1463670&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/io/TestFileHandler.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/io/TestFileHandler.java Tue Apr 2 18:58:37 2013
@@ -979,6 +979,23 @@ public class TestFileHandler
}
/**
+ * Tests that the locator injected into the content object has an encoding
+ * set.
+ */
+ @Test
+ public void testLocatorAwareEncoding() throws ConfigurationException
+ {
+ FileBasedFileLocatorAwareTestImpl content =
+ new FileBasedFileLocatorAwareTestImpl();
+ FileHandler handler = new FileHandler(content);
+ String encoding = "testEncoding";
+ handler.setEncoding(encoding);
+ handler.save(new StringWriter());
+ assertEquals("Encoding not set", encoding, content.getLocator()
+ .getEncoding());
+ }
+
+ /**
* Tries to add a null listener.
*/
@Test(expected = IllegalArgumentException.class)