diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2021-06-01 18:02:02 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2021-06-01 20:51:24 +0000 |
commit | 2c6664c45074f5a76d20160b41ddeb56f8122334 (patch) | |
tree | 8a906cad949308c8c6ff2d8443929fbd7931d22f /sonar-plugin-api/src/main | |
parent | 0b460064180d6abc6b837124996708b25539b17a (diff) | |
download | sonarqube-2c6664c45074f5a76d20160b41ddeb56f8122334.tar.gz sonarqube-2c6664c45074f5a76d20160b41ddeb56f8122334.zip |
SONAR-14882 Restore support for BOM in RulesDefinitionXmlLoader
Diffstat (limited to 'sonar-plugin-api/src/main')
-rw-r--r-- | sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionXmlLoader.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionXmlLoader.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionXmlLoader.java index fb5e0494766..034ee858dfb 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionXmlLoader.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinitionXmlLoader.java @@ -34,6 +34,8 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.events.Attribute; import javax.xml.stream.events.StartElement; import javax.xml.stream.events.XMLEvent; +import org.apache.commons.io.ByteOrderMark; +import org.apache.commons.io.input.BOMInputStream; import org.apache.commons.lang.StringUtils; import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.rule.RuleStatus; @@ -208,7 +210,9 @@ public class RulesDefinitionXmlLoader { * @since 5.1 */ public void load(RulesDefinition.NewRepository repo, InputStream input, Charset charset) { - try (Reader reader = new InputStreamReader(input, charset)) { + try (Reader reader = new InputStreamReader(new BOMInputStream(input, + ByteOrderMark.UTF_8, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_16BE, + ByteOrderMark.UTF_32LE, ByteOrderMark.UTF_32BE), charset)) { load(repo, reader); } catch (IOException e) { throw new IllegalStateException("Error while reading XML rules definition for repository " + repo.key(), e); |