X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-persister-file-xml-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fpersist%2Fstorage%2Ffile%2Fxml%2Fmodel%2FConfig.java;h=63755f9e62c69d56c37dfa6442c91447bf42b8f7;hp=e629d20db52e0c2c65bf26c76aeb1e2dbce62eff;hb=a110503f173ba4fbeb07a61d3c7ebf1688dfc9d6;hpb=ce3bb6ec2cefdda6d727ecab822694e8b0824db4 diff --git a/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/model/Config.java b/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/model/Config.java index e629d20db5..63755f9e62 100644 --- a/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/model/Config.java +++ b/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/model/Config.java @@ -7,13 +7,13 @@ */ package org.opendaylight.controller.config.persist.storage.file.xml.model; -import com.google.common.base.Charsets; import com.google.common.base.Optional; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.io.Files; import java.io.File; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.List; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; @@ -22,6 +22,10 @@ import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.transform.stream.StreamSource; import org.apache.commons.lang3.StringUtils; @XmlRootElement(name = "persisted-snapshots") @@ -72,9 +76,12 @@ public final class Config { try { JAXBContext jaxbContext = JAXBContext.newInstance(Config.class); Unmarshaller um = jaxbContext.createUnmarshaller(); - - return (Config) um.unmarshal(from); - } catch (JAXBException e) { + XMLInputFactory xif = XMLInputFactory.newFactory(); + xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false); + xif.setProperty(XMLInputFactory.SUPPORT_DTD, false); + XMLStreamReader xsr = xif.createXMLStreamReader(new StreamSource(from)); + return (Config) um.unmarshal(xsr); + } catch (JAXBException | XMLStreamException e) { throw new PersistException("Unable to restore configuration", e); } } @@ -85,7 +92,7 @@ public final class Config { private static boolean isBlank(File from) { try { - return StringUtils.isBlank(Files.toString(from, Charsets.UTF_8)); + return StringUtils.isBlank(Files.toString(from, StandardCharsets.UTF_8)); } catch (IOException e) { throw new IllegalStateException("Unexpected error reading file" + from, e); } @@ -97,7 +104,7 @@ public final class Config { } public void addConfigSnapshot(ConfigSnapshot snap, int numberOfStoredBackups) { - if(shouldReplaceLast(numberOfStoredBackups) && snapshots.isEmpty() == false) { + if (shouldReplaceLast(numberOfStoredBackups) && !snapshots.isEmpty()) { snapshots.remove(0); } snapshots.add(snap);