This is an automated email from the ASF dual-hosted git repository.

mariofusco pushed a commit to branch dev-new-parser
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git


The following commit(s) were added to refs/heads/dev-new-parser by this push:
     new dea60226a9 Use InternalResource's encoding (#5940)
dea60226a9 is described below

commit dea60226a96c47911ed688d81f65055587bde61d
Author: Jiří Locker <[email protected]>
AuthorDate: Tue May 14 08:41:16 2024 +0200

    Use InternalResource's encoding (#5940)
---
 .../src/main/java/org/drools/drl/parser/DrlParser.java             | 2 +-
 .../main/java/org/drools/drl/parser/antlr4/DRLParserHelper.java    | 7 +++++--
 .../main/java/org/drools/drl/parser/antlr4/DRLParserWrapper.java   | 4 ++--
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java
 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java
index 5e6fb78c6f..26ee6dffb7 100644
--- 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java
+++ 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java
@@ -188,7 +188,7 @@ public class DrlParser {
         System.out.println("### parse : ANTLR4_PARSER_ENABLED = " + 
ANTLR4_PARSER_ENABLED);
         if (ANTLR4_PARSER_ENABLED) {
             // new parser based on antlr4
-            return compileWithAntlr4Parser(parser -> parser.parse(is));
+            return compileWithAntlr4Parser(parser -> parser.parse(is, 
encoding));
         } else {
             // old parsers based on antlr3
             lexer = DRLFactory.buildLexer(is, encoding, languageLevel);
diff --git 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLParserHelper.java
 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLParserHelper.java
index 9c8fef57d0..7d945f6bb8 100644
--- 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLParserHelper.java
+++ 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLParserHelper.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
 import java.io.UncheckedIOException;
+import java.nio.charset.Charset;
 
 import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.CharStreams;
@@ -56,9 +57,11 @@ public class DRLParserHelper {
         return createDrlParser(charStream);
     }
 
-    public static DRLParser createDrlParser(InputStream is) {
+    public static DRLParser createDrlParser(InputStream is, String encoding) {
         try {
-            CharStream charStream = CharStreams.fromStream(is);
+            CharStream charStream = encoding != null
+                    ? CharStreams.fromStream(is, Charset.forName(encoding))
+                    : CharStreams.fromStream(is);
             return createDrlParser(charStream);
         } catch (IOException e) {
             throw new UncheckedIOException(e);
diff --git 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLParserWrapper.java
 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLParserWrapper.java
index c28e57b997..e2f8ee9960 100644
--- 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLParserWrapper.java
+++ 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLParserWrapper.java
@@ -50,8 +50,8 @@ public class DRLParserWrapper {
     /**
      * Main entry point for parsing DRL
      */
-    public PackageDescr parse(InputStream is) {
-        DRLParser drlParser = DRLParserHelper.createDrlParser(is);
+    public PackageDescr parse(InputStream is, String encoding) {
+        DRLParser drlParser = DRLParserHelper.createDrlParser(is, encoding);
         return parse(drlParser);
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to