aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api/src/main
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2021-06-01 18:02:02 +0200
committersonartech <sonartech@sonarsource.com>2021-06-01 20:51:24 +0000
commit2c6664c45074f5a76d20160b41ddeb56f8122334 (patch)
tree8a906cad949308c8c6ff2d8443929fbd7931d22f /sonar-plugin-api/src/main
parent0b460064180d6abc6b837124996708b25539b17a (diff)
downloadsonarqube-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.java6
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);