diff --git a/config/src/main/java/com/typesafe/config/impl/SimpleConfigDocument.java b/config/src/main/java/com/typesafe/config/impl/SimpleConfigDocument.java index 60d6b61d..6bbdb20a 100644 --- a/config/src/main/java/com/typesafe/config/impl/SimpleConfigDocument.java +++ b/config/src/main/java/com/typesafe/config/impl/SimpleConfigDocument.java @@ -27,7 +27,7 @@ final class SimpleConfigDocument implements ConfigDocument { } public ConfigDocument setValue(String path, ConfigValue newValue) { - return setValue(path, newValue.render()); + return setValue(path, newValue.render().trim()); } public ConfigDocument removeValue(String path) { diff --git a/config/src/test/scala/com/typesafe/config/impl/ConfigDocumentTest.scala b/config/src/test/scala/com/typesafe/config/impl/ConfigDocumentTest.scala index 0ab799f4..e9390613 100644 --- a/config/src/test/scala/com/typesafe/config/impl/ConfigDocumentTest.scala +++ b/config/src/test/scala/com/typesafe/config/impl/ConfigDocumentTest.scala @@ -1,7 +1,6 @@ package com.typesafe.config.impl import java.io.{ BufferedReader, FileReader } -import java.nio.charset.StandardCharsets import java.nio.file.{ Paths, Files } import com.typesafe.config._ @@ -9,6 +8,8 @@ import com.typesafe.config.parser._ import org.junit.Assert._ import org.junit.Test +import scala.collection.JavaConverters._ + class ConfigDocumentTest extends TestUtils { private def configDocumentReplaceJsonTest(origText: String, finalText: String, newValue: String, replacePath: String) { val configDocument = ConfigDocumentFactory.parseString(origText, ConfigParseOptions.defaults().setSyntax(ConfigSyntax.JSON)) @@ -437,4 +438,16 @@ class ConfigDocumentTest extends TestUtils { assertEquals(" a : 1", configDocument.setValue("a", "1").render) } + @Test + def configDocumentConfigObjectInsertion { + val origText = "{ a : b }" + val configDocument = ConfigDocumentFactory.parseString(origText) + + val configVal = ConfigValueFactory.fromAnyRef(Map("a" -> 1, "b" -> 2).asJava) + + assertEquals("{ a : {\n # hardcoded value\n \"a\" : 1,\n # hardcoded value\n \"b\" : 2\n } }", + configDocument.setValue("a", configVal).render) + + } + }