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

gitgabrio pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git


The following commit(s) were added to refs/heads/main by this push:
     new 69b031b77a [incubator-kie-issues#814] Fix NPE on 
BaseKnowledgeBuilderResultImpl.hashCode() (#5647)
69b031b77a is described below

commit 69b031b77aae08a8e6a559850392331f9740ccfc
Author: Gabriele Cardosi <[email protected]>
AuthorDate: Fri Jan 12 10:30:53 2024 +0100

    [incubator-kie-issues#814] Fix NPE on 
BaseKnowledgeBuilderResultImpl.hashCode() (#5647)
    
    Co-authored-by: BAMOE CI <[email protected]>
---
 .../assembler/BayesNetworkAssemblerError.java      | 11 ++----
 .../compiler/builder/impl/errors/SrcError.java     |  9 ++---
 .../org/drools/compiler/compiler/ActionError.java  | 12 +++----
 .../compiler/AnnotationDeclarationError.java       | 11 ++----
 .../compiler/ConfigurableSeverityResult.java       |  4 +--
 .../compiler/DeprecatedResourceTypeWarning.java    |  7 +---
 .../drools/compiler/compiler/DescrBuildError.java  | 12 +++----
 .../compiler/compiler/DescrBuildWarning.java       | 13 +++-----
 .../compiler/compiler/DroolsErrorWrapper.java      |  7 +---
 .../drools/compiler/compiler/DroolsWarning.java    |  4 +--
 .../compiler/compiler/DroolsWarningWrapper.java    |  7 +---
 .../compiler/compiler/DuplicateFunction.java       | 32 ++++++++----------
 .../drools/compiler/compiler/DuplicateRule.java    | 12 +++----
 .../compiler/compiler/FactTemplateError.java       |  7 +---
 .../compiler/compiler/FieldTemplateError.java      |  8 +----
 .../drools/compiler/compiler/FunctionError.java    | 39 +++++++++++-----------
 .../org/drools/compiler/compiler/GlobalError.java  | 10 ++----
 .../org/drools/compiler/compiler/ImportError.java  | 10 +++---
 .../compiler/compiler/MissingDependencyError.java  | 12 ++-----
 .../drools/compiler/compiler/ProcessLoadError.java | 10 +++---
 .../compiler/ResourceTypeDeclarationWarning.java   | 13 ++++----
 .../compiler/compiler/SerializableDroolsError.java | 22 ++++++------
 .../compiler/compiler/TypeDeclarationError.java    | 12 ++-----
 .../compiler/compiler/TypeDeclarationWarning.java  |  9 ++---
 .../rule/builder/dialect/DialectError.java         | 10 ++----
 .../drl/parser/BaseKnowledgeBuilderResultImpl.java | 22 +++++++++---
 .../java/org/drools/drl/parser/DroolsError.java    |  8 ++---
 .../java/org/drools/drl/parser/ParserError.java    | 10 ++----
 .../drools/drl/parser/lang/ExpanderException.java  |  9 ++---
 .../drools/drl/parser/lang/dsl/MappingError.java   | 21 +++++-------
 .../codegen/execmodel/RuleUnitQueryWriter.java     |  6 +---
 .../errors/CompilationProblemErrorResult.java      |  7 +---
 .../errors/DuplicatedDeclarationError.java         |  7 +---
 .../execmodel/errors/GetterOverloadWarning.java    |  7 +---
 .../errors/IncompatibleGetterOverloadError.java    |  7 +---
 .../errors/InvalidExpressionErrorResult.java       |  9 +----
 .../errors/ParseExpressionErrorResult.java         |  7 +---
 .../execmodel/errors/UnknownDeclarationError.java  |  8 +----
 .../execmodel/errors/UnsupportedFeatureError.java  |  8 +----
 .../errors/VariableUsedInBindingError.java         | 10 ++----
 .../visitor/accumulate/AccumulateVisitor.java      |  6 +---
 .../codegen/execmodel/GetterOverloadingTest.java   |  2 +-
 .../codegen/execmodel/assembler/TestAssembler.java | 14 ++------
 .../drools/mvel/asm/ClassFieldInspectorImpl.java   |  2 +-
 .../org/drools/mvel/java/JavaDialectError.java     |  5 +--
 .../util/IncompatibleGetterOverloadException.java  |  2 +-
 .../dmn/core/impl/DMNKnowledgeBuilderError.java    | 11 ++----
 47 files changed, 160 insertions(+), 331 deletions(-)

diff --git 
a/drools-beliefs/src/main/java/org/drools/beliefs/bayes/assembler/BayesNetworkAssemblerError.java
 
b/drools-beliefs/src/main/java/org/drools/beliefs/bayes/assembler/BayesNetworkAssemblerError.java
index 5c442263d3..b32f68b327 100644
--- 
a/drools-beliefs/src/main/java/org/drools/beliefs/bayes/assembler/BayesNetworkAssemblerError.java
+++ 
b/drools-beliefs/src/main/java/org/drools/beliefs/bayes/assembler/BayesNetworkAssemblerError.java
@@ -22,18 +22,11 @@ import org.drools.drl.parser.DroolsError;
 import org.kie.api.io.Resource;
 
 public class BayesNetworkAssemblerError extends DroolsError {
-    private String    message;
+
 
     public BayesNetworkAssemblerError(Resource resource,
                                       final String message) {
-        super( resource );
-        this.message = message;
-    }
-
-
-    @Override
-    public String getMessage() {
-        return message;
+        super( resource, message );
     }
 
     @Override
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/builder/impl/errors/SrcError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/builder/impl/errors/SrcError.java
index 92c16e5c2b..03ac421be0 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/builder/impl/errors/SrcError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/builder/impl/errors/SrcError.java
@@ -24,14 +24,12 @@ import org.kie.internal.jci.CompilationProblem;
 public class SrcError extends DroolsError {
 
     private Object object;
-    private String message;
     private int[]  errorLines = new int[0];
 
     public SrcError(Object object,
                     String message) {
-        super(null);
+        super(null, message);
         this.object = object;
-        this.message = message;
     }
 
     public Object getObject() {
@@ -42,13 +40,10 @@ public class SrcError extends DroolsError {
         return this.errorLines;
     }
 
-    public String getMessage() {
-        return this.message;
-    }
 
     public String toString() {
         final StringBuilder buf = new StringBuilder();
-        buf.append(this.message);
+        buf.append(getMessage());
         buf.append(" : ");
         buf.append("\n");
         if (this.object instanceof CompilationProblem[]) {
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ActionError.java 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ActionError.java
index 0f27989d46..6e975a7664 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ActionError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ActionError.java
@@ -24,15 +24,17 @@ import org.drools.drl.parser.DroolsError;
 public class ActionError extends DroolsError {
     private BaseDescr descr;
     private Object    object;
-    private String    message;
     private int[]     errorLines = new int[0];
 
+    private String originalMessage;
+
     public ActionError(final BaseDescr descr,
                      final Object object,
                      final String message) {
+        super(BuilderResultUtils.getProblemMessage( object, message, "\n" ));
         this.descr = descr;
         this.object = object;
-        this.message = message;
+        this.originalMessage = message;
     }
 
     @Override
@@ -60,13 +62,9 @@ public class ActionError extends DroolsError {
         return this.descr != null ? this.descr.getLine() : -1;
     }
 
-    public String getMessage() {
-        return BuilderResultUtils.getProblemMessage( this.object, 
this.message, "\n" );
-    }
-
     public String toString() {
         final StringBuilder builder = new StringBuilder()
-                .append( this.message )
+                .append( originalMessage )
                 .append( " : " )
                 .append( "\n" );
         return BuilderResultUtils.appendProblems( this.object, builder 
).toString();
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/AnnotationDeclarationError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/AnnotationDeclarationError.java
index bf105b7a01..a46a39905f 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/AnnotationDeclarationError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/AnnotationDeclarationError.java
@@ -23,13 +23,11 @@ import org.drools.drl.parser.DroolsError;
 
 public class AnnotationDeclarationError extends DroolsError {
 
-    private String errorMessage;
     private int[]  line;
     private String namespace;
 
     public AnnotationDeclarationError(AnnotationDescr annotationDescr, String 
errorMessage) {
-        super(annotationDescr.getResource());
-        this.errorMessage = errorMessage;
+        super(annotationDescr.getResource(), errorMessage);
         this.line = new int[0];
         this.namespace = annotationDescr.getNamespace();
     }
@@ -44,14 +42,9 @@ public class AnnotationDeclarationError extends DroolsError {
         return this.line;
     }
 
-    @Override
-    public String getMessage() {
-        return this.errorMessage;
-    }
-
     @Override
     public String toString() {
-        return this.getMessage();
+        return getMessage();
     }
 
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ConfigurableSeverityResult.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ConfigurableSeverityResult.java
index c31c24a0bd..92fd03a27a 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ConfigurableSeverityResult.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ConfigurableSeverityResult.java
@@ -31,8 +31,8 @@ import org.kie.internal.builder.conf.KBuilderSeverityOption;
  */
 public abstract class ConfigurableSeverityResult extends 
BaseKnowledgeBuilderResultImpl {
     
-    public ConfigurableSeverityResult(Resource resource, 
KnowledgeBuilderConfiguration config) {
-        super(resource);
+    public ConfigurableSeverityResult(Resource resource, 
KnowledgeBuilderConfiguration config, String message) {
+        super(resource, message);
         severity = config.getOption(KBuilderSeverityOption.KEY, 
getOptionKey()).getSeverity();
     }
     
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DeprecatedResourceTypeWarning.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DeprecatedResourceTypeWarning.java
index 8f8199bd6c..c07d354be6 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DeprecatedResourceTypeWarning.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DeprecatedResourceTypeWarning.java
@@ -29,15 +29,10 @@ public class DeprecatedResourceTypeWarning extends 
DroolsWarning {
     }
 
     public DeprecatedResourceTypeWarning(Resource resource, String 
deprecatedFormat) {
-        super(resource);
+        super(resource, deprecatedFormat + " format usage detected. This 
format is deprecated and will be removed in future");
         this.deprecatedFormat = deprecatedFormat;
     }
 
-    @Override
-    public String getMessage() {
-        return deprecatedFormat + " format usage detected. This format is 
deprecated and will be removed in future";
-    }
-
     @Override
     public int[] getLines() {
         return new int[0];
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DescrBuildError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DescrBuildError.java
index 4969f7231a..febf452000 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DescrBuildError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DescrBuildError.java
@@ -25,19 +25,20 @@ public class DescrBuildError extends DroolsError {
     private BaseDescr parentDescr;
     private BaseDescr descr;
     private Object    object;
-    private String    message;
     private int[]     errorLines = new int[1];
 
+    private String originalMessage;
+
     public DescrBuildError(final BaseDescr parentDescr,
                            final BaseDescr descr,
                            final Object object,
                            final String message) {
-        super( descr.getResource() != null ? descr.getResource() : ( 
parentDescr != null ? parentDescr.getResource() : null ) );
+        super( descr.getResource() != null ? descr.getResource() : ( 
parentDescr != null ? parentDescr.getResource() : null ), 
BuilderResultUtils.getProblemMessage( object, message, "\n" ) );
         this.parentDescr = parentDescr;
         this.descr = descr;
         this.object = object;
-        this.message = message;
         this.errorLines[0] = getLine();
+        this.originalMessage = message;
     }
 
     @Override
@@ -73,13 +74,10 @@ public class DescrBuildError extends DroolsError {
         return this.descr != null ? this.descr.getColumn() : -1;
     }
 
-    public String getMessage() {
-        return BuilderResultUtils.getProblemMessage( this.object, 
this.message, "\n" );
-    }
 
     public String toString() {
         final StringBuilder builder = new StringBuilder()
-                .append( this.message )
+                .append( this.originalMessage )
                 .append( " : " )
                 .append( this.parentDescr )
                 .append( "\n" );
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DescrBuildWarning.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DescrBuildWarning.java
index fc4d89682b..e9ab9a1b10 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DescrBuildWarning.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DescrBuildWarning.java
@@ -24,18 +24,19 @@ public class DescrBuildWarning extends DroolsWarning {
     private BaseDescr parentDescr;
     private BaseDescr descr;
     private Object    object;
-    private String    message;
+    private String    originalMessage;
     private int[]     errorLines = new int[1];
 
     public DescrBuildWarning( final BaseDescr parentDescr,
                               final BaseDescr descr,
                               final Object object,
                               final String message ) {
-        super( descr.getResource() != null ? descr.getResource() : ( 
parentDescr != null ? parentDescr.getResource() : null ) );
+        super( descr.getResource() != null ? descr.getResource() : ( 
parentDescr != null ? parentDescr.getResource() : null ),
+               BuilderResultUtils.getProblemMessage( object, message, "\n" ));
         this.parentDescr = parentDescr;
         this.descr = descr;
         this.object = object;
-        this.message = message;
+        this.originalMessage = message;
         this.errorLines[0] = getLine();
     }
 
@@ -67,13 +68,9 @@ public class DescrBuildWarning extends DroolsWarning {
         return this.descr != null ? this.descr.getColumn() : -1;
     }
 
-    public String getMessage() {
-        return BuilderResultUtils.getProblemMessage( this.object, 
this.message, "\n" );
-    }
-
     public String toString() {
         final StringBuilder builder = new StringBuilder()
-                .append( this.message )
+                .append( this.originalMessage )
                 .append( " : " )
                 .append( this.parentDescr )
                 .append( "\n" );
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsErrorWrapper.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsErrorWrapper.java
index 3f88e6e0e2..3b263309a1 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsErrorWrapper.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsErrorWrapper.java
@@ -31,17 +31,12 @@ public class DroolsErrorWrapper extends DroolsError {
     private String namespace = "";
     
     public DroolsErrorWrapper (KnowledgeBuilderResult problem) {
-        super(problem.getResource());
+        super(problem.getResource(), problem.getMessage());
         this.backingProblem = problem;
         if (problem instanceof DroolsError) {
             namespace = ((DroolsError)problem).getNamespace();
         }
     }
-    
-    @Override
-    public String getMessage() {
-        return backingProblem.getMessage();
-    }
 
     @Override
     public int[] getLines() {
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsWarning.java 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsWarning.java
index 6794f4aba7..18092806c6 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsWarning.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsWarning.java
@@ -24,8 +24,8 @@ import org.kie.internal.builder.ResultSeverity;
 
 public abstract class DroolsWarning extends BaseKnowledgeBuilderResultImpl {
 
-    public DroolsWarning(Resource resource) {
-        super(resource);
+    public DroolsWarning(Resource resource, String message) {
+        super(resource, message);
     }
 
     @Override
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsWarningWrapper.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsWarningWrapper.java
index 70834cca9b..f0441810a6 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsWarningWrapper.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DroolsWarningWrapper.java
@@ -25,15 +25,10 @@ public class DroolsWarningWrapper extends DroolsWarning {
     KnowledgeBuilderResult backingProblem;
 
     public DroolsWarningWrapper (KnowledgeBuilderResult problem) {
-        super(problem.getResource());
+        super(problem.getResource(), problem.getMessage());
         this.backingProblem = problem;
     }
 
-    @Override
-    public String getMessage() {
-        return backingProblem.getMessage();
-    }
-
     @Override
     public int[] getLines() {
         return backingProblem.getLines();
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DuplicateFunction.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DuplicateFunction.java
index 7babf44121..fbdf1e4f46 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DuplicateFunction.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DuplicateFunction.java
@@ -24,31 +24,16 @@ import org.drools.drl.ast.descr.FunctionDescr;
 import org.kie.internal.builder.KnowledgeBuilderConfiguration;
 
 
-
-
 public class DuplicateFunction extends ConfigurableSeverityResult {
     public static final String KEY = "duplicateFunction";
-    
-    private String functionName;
-    private String functionNamespace;
+
     
     public DuplicateFunction(FunctionDescr func, KnowledgeBuilderConfiguration 
config) {
-        super(func.getResource(), config);
-        functionName = func.getName();
-        functionNamespace = func.getNamespace();
+        super(func.getResource(), config, getSpecificMessage(func));
     }
     
     public DuplicateFunction(Function func, KnowledgeBuilderConfiguration 
config) {
-        super(func.getResource(), config);
-        functionName = func.getName();
-        functionName = func.getNamespace();
-    }
-
-    @Override
-    public String getMessage() {
-        return functionName 
-        + " in namespace " + functionNamespace 
-        + " is about to be redefined";
+        super(func.getResource(), config, getSpecificMessage(func));
     }
 
     @Override
@@ -61,4 +46,15 @@ public class DuplicateFunction extends 
ConfigurableSeverityResult {
         return KEY;
     }
 
+    private static String getSpecificMessage(FunctionDescr func) {
+        return func.getName()
+                + " in namespace " + func.getNamespace()
+                + " is about to be redefined";
+    }
+
+    private static String getSpecificMessage(Function func) {
+        return func.getName()
+                + " in namespace " + func.getNamespace()
+                + " is about to be redefined";
+    }
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DuplicateRule.java 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DuplicateRule.java
index 71c286dbd2..e96ceb090e 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/DuplicateRule.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/DuplicateRule.java
@@ -33,19 +33,13 @@ public class DuplicateRule extends 
ConfigurableSeverityResult {
     private int[] line;
     
     public DuplicateRule(RuleDescr ruleDescr, PackageDescr pkg, 
KnowledgeBuilderConfiguration config) {
-        super(ruleDescr.getResource(), config);
+        super(ruleDescr.getResource(), config, getSpecificMessage(ruleDescr, 
pkg));
         rule = ruleDescr.getName();
         pkgDescr = pkg;
         line = new int[1];
         line[0] = ruleDescr.getLine();
     }
 
-    @Override
-    public String getMessage() {
-        return "Rule name " + rule 
-        + " already exists in package  " + pkgDescr.getName();
-    }
-
     @Override
     public int[] getLines() {
         return line;
@@ -55,5 +49,9 @@ public class DuplicateRule extends ConfigurableSeverityResult 
{
     protected String getOptionKey() {
         return KEY;
     }
+    private static String getSpecificMessage(RuleDescr ruleDescr, PackageDescr 
pkg) {
+        return "Rule name " + ruleDescr.getName()
+        + " already exists in package  " + pkg.getName();
+    }
 
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/FactTemplateError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/FactTemplateError.java
index 0a254f05ee..33996d979a 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/FactTemplateError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/FactTemplateError.java
@@ -25,7 +25,6 @@ public class FactTemplateError extends DroolsError {
     private Package   pkg;
     private BaseDescr descr;
     private Object    object;
-    private String    message;
     private int[]     line;
     private String    namespace;
 
@@ -33,12 +32,11 @@ public class FactTemplateError extends DroolsError {
                              final BaseDescr descr,
                              final Object object,
                              final String message) {
-        super(descr.getResource());
+        super(descr.getResource(), BuilderResultUtils.getProblemMessage( 
object, message ));
         this.namespace = pkg.getName();
         this.pkg = pkg;
         this.descr = descr;
         this.object = object;
-        this.message = message;
         this.line = new int[] {this.descr.getLine()};
     }
 
@@ -71,8 +69,5 @@ public class FactTemplateError extends DroolsError {
         return this.line[0];
     }
 
-    public String getMessage() {
-        return BuilderResultUtils.getProblemMessage( this.object, this.message 
);
-    }
 
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/FieldTemplateError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/FieldTemplateError.java
index 50f6b6ab9b..30d746f126 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/FieldTemplateError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/FieldTemplateError.java
@@ -25,7 +25,6 @@ public class FieldTemplateError extends DroolsError {
     private Package   pkg;
     private BaseDescr descr;
     private Object    object;
-    private String    message;
     private int[]     line;
     private String    namespace;
 
@@ -33,12 +32,11 @@ public class FieldTemplateError extends DroolsError {
                               final BaseDescr descr,
                               final Object object,
                               final String message) {
-        super(descr.getResource());
+        super(descr.getResource(), BuilderResultUtils.getProblemMessage( 
object, message ));
         this.namespace = pkg.getName();
         this.pkg = pkg;
         this.descr = descr;
         this.object = object;
-        this.message = message;
         this.line = new int[] {this.descr.getLine()};
     }
 
@@ -71,8 +69,4 @@ public class FieldTemplateError extends DroolsError {
         return this.line[0];
     }
 
-    public String getMessage() {
-        return BuilderResultUtils.getProblemMessage( this.object, this.message 
);
-    }
-
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/FunctionError.java 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/FunctionError.java
index 058e1273d8..99fdd21ca0 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/FunctionError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/FunctionError.java
@@ -25,16 +25,16 @@ import org.kie.internal.jci.CompilationProblem;
 public class FunctionError extends DroolsError {
     final private FunctionDescr functionDescr;
     final private Object        object;
-    final private String        message;
     private int[]               errorLines;
 
     public FunctionError(final FunctionDescr functionDescr,
                          final Object object,
                          final String message) {
-        super(functionDescr.getResource());
+        super(functionDescr.getResource(), "");
         this.functionDescr = functionDescr;
         this.object = object;
-        this.message = createMessage( message );
+        setErrorLines();
+        setMessage(createMessage(message));
     }
 
     @Override
@@ -54,21 +54,26 @@ public class FunctionError extends DroolsError {
         return errorLines;
     }
 
-    public String getMessage() {
-        return this.message;
-    }
-    
     public String toString() {
-        return this.message;
+        return getMessage();
+    }
+
+    private void setErrorLines() {
+        if( object instanceof CompilationProblem[] cp) {
+            this.errorLines = new int[cp.length];
+            for( int i = 0; i < cp.length ; i ++ ) {
+                this.errorLines[i] = cp[i].getStartLine() - 
this.functionDescr.getOffset() + this.getFunctionDescr().getLine() - 1;
+            }
+        } else {
+            this.errorLines = new int[1];
+            this.errorLines[0] = functionDescr.getLine();
+        }
     }
     
     private String createMessage( String message ) {
         StringBuilder detail = new StringBuilder();
-        if( object instanceof CompilationProblem[] ) {
-            CompilationProblem[] cp = (CompilationProblem[]) object;
-            this.errorLines = new int[cp.length];
+        if( object instanceof CompilationProblem[] cp) {
             for( int i = 0; i < cp.length ; i ++ ) {
-               this.errorLines[i] = cp[i].getStartLine() - 
this.functionDescr.getOffset() + this.getFunctionDescr().getLine() - 1;
                detail.append( this.functionDescr.getName() );
                detail.append( " (line:" );
                detail.append( this.errorLines[i] );
@@ -76,10 +81,7 @@ public class FunctionError extends DroolsError {
                detail.append( cp[i].getMessage() );
                detail.append( "\n" );
             }
-        } else if( object instanceof Exception) {
-            Exception ex = (Exception) object;
-            this.errorLines = new int[1];
-            this.errorLines[0] = functionDescr.getLine();
+        } else if( object instanceof Exception ex) {
             detail.append( " (line:" );
             detail.append( this.errorLines[0] );
             detail.append( "): " );
@@ -90,11 +92,8 @@ public class FunctionError extends DroolsError {
                 detail.append( ": " );
                 detail.append( ex.getMessage() );
             }
-        } else {
-            this.errorLines = new int[1];
-            this.errorLines[0] = functionDescr.getLine();
         }
-        return "[ function "+functionDescr.getName() + detail.toString()+" ]";
+        return "[ function "+ functionDescr.getName() + detail +" ]";
     }
 
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/GlobalError.java 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/GlobalError.java
index 6b7ee6331c..9dfe608426 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/GlobalError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/GlobalError.java
@@ -23,12 +23,10 @@ import org.drools.drl.parser.DroolsError;
 
 public class GlobalError extends DroolsError {
     private final GlobalDescr globalDescr;
-    private String message;
 
     public GlobalError(final GlobalDescr globalDescr, final String message) {
-        super(globalDescr.getResource());
+        super(globalDescr.getResource(), message);
         this.globalDescr = globalDescr;
-        this.message = message;
     }
 
     @Override
@@ -44,12 +42,8 @@ public class GlobalError extends DroolsError {
         return new int[] { globalDescr.getLine() };
     }
 
-    public String getMessage() {
-        return message;
-    }
-    
     public String toString() {
-        return "GlobalError: " + getGlobal() + " : " + message;
+        return "GlobalError: " + getGlobal() + " : " + getMessage();
     }
 
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ImportError.java 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ImportError.java
index 5ee127ae9e..4c12a04f88 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ImportError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ImportError.java
@@ -26,7 +26,7 @@ public class ImportError extends DroolsError {
     private int[]  line;
 
     public ImportError(final ImportDescr importDescr, final int line) {
-        super(importDescr.getResource());
+        super(importDescr.getResource(), getSpecificMessage(importDescr));
         this.importDescr = importDescr;
         this.line = new int[] { line };
     }
@@ -43,13 +43,13 @@ public class ImportError extends DroolsError {
     public int[] getLines() {
         return this.line;
     }
-
-    public String getMessage() {
-        return "Error importing : '" + getGlobal() + "'";
-    }
     
     public String toString() {
         return getMessage();
     }
 
+    private static String getSpecificMessage(ImportDescr importDescr) {
+        return "Error importing : '" + importDescr.getTarget() + "'";
+    }
+
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/MissingDependencyError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/MissingDependencyError.java
index eb5818b704..e88419f62c 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/MissingDependencyError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/MissingDependencyError.java
@@ -23,20 +23,12 @@ import org.drools.drl.parser.DroolsError;
 import org.kie.api.io.Resource;
 
 public class MissingDependencyError extends DroolsError {
-    private final String message;
-
     public MissingDependencyError(String message) {
-        this.message = message;
+        super(message);
     }
 
     public MissingDependencyError(Resource resource, 
MissingDependencyException ex) {
-        super(resource);
-        message = ex.getMessage();
-    }
-
-    @Override
-    public String getMessage() {
-        return message;
+        super(resource, ex.getMessage());
     }
 
     @Override
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ProcessLoadError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ProcessLoadError.java
index 48cceed33d..bde8037cbf 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ProcessLoadError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ProcessLoadError.java
@@ -19,6 +19,7 @@
 package org.drools.compiler.compiler;
 
 
+import org.drools.drl.ast.descr.ImportDescr;
 import org.drools.drl.parser.DroolsError;
 import org.kie.api.io.Resource;
 
@@ -27,21 +28,20 @@ import org.kie.api.io.Resource;
  */
 public class ProcessLoadError extends DroolsError {
 
-    private String message;
     private Exception exception;
     private static final int[] lines = new int[0];
 
     public ProcessLoadError(Resource resource, String message, Exception 
nested) {
-        super(resource);
-        this.message = message;
+        super(resource, getSpecificMessage(message, nested));
         this.exception = nested;
     }
     
     public int[] getLines() {
         return this.lines;
     }
-    
-    public String getMessage() {
+
+
+    private static String getSpecificMessage(String message, Exception 
exception) {
         if (exception != null) {
             return message + " : Exception " + exception.getClass() + " : "+ 
exception.getMessage();
         } else {
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ResourceTypeDeclarationWarning.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ResourceTypeDeclarationWarning.java
index 2e386d7dd6..98bb638d71 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/ResourceTypeDeclarationWarning.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/ResourceTypeDeclarationWarning.java
@@ -27,7 +27,7 @@ public class ResourceTypeDeclarationWarning extends 
DroolsWarning {
     private ResourceType actualResourceType;
 
     public ResourceTypeDeclarationWarning( Resource resource, ResourceType 
declaredResourceType, ResourceType actualResourceType ) {
-        super( resource );
+        super( resource, getSpecificMessage(resource, declaredResourceType, 
actualResourceType) );
         this.declaredResourceType = declaredResourceType;
         this.actualResourceType = actualResourceType;
     }
@@ -38,6 +38,7 @@ public class ResourceTypeDeclarationWarning extends 
DroolsWarning {
 
     public void setDeclaredResourceType( ResourceType declaredResourceType ) {
         this.declaredResourceType = declaredResourceType;
+        setMessage(getSpecificMessage(getResource(), 
this.declaredResourceType, this.actualResourceType));
     }
 
     public ResourceType getActualResourceType() {
@@ -46,15 +47,13 @@ public class ResourceTypeDeclarationWarning extends 
DroolsWarning {
 
     public void setActualResourceType( ResourceType actualResourceType ) {
         this.actualResourceType = actualResourceType;
+        setMessage(getSpecificMessage(getResource(), declaredResourceType, 
this.actualResourceType));
     }
-
-    @Override
-    public String getMessage() {
-        return "Resource " + getResource().getSourcePath() + " was created 
with type " + actualResourceType + " but is being added as " + 
declaredResourceType;
-    }
-
     @Override
     public int[] getLines() {
         return new int[ 0 ];  //To change body of implemented methods use File 
| Settings | File Templates.
     }
+    private static String getSpecificMessage(Resource resource, ResourceType 
declaredResourceType, ResourceType actualResourceType) {
+        return "Resource " + resource.getSourcePath() + " was created with 
type " + actualResourceType + " but is being added as " + declaredResourceType;
+    }
 }
\ No newline at end of file
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/SerializableDroolsError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/SerializableDroolsError.java
index 8ce502d862..ff93d9c306 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/SerializableDroolsError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/SerializableDroolsError.java
@@ -27,15 +27,20 @@ import org.drools.drl.parser.BaseKnowledgeBuilderResultImpl;
 import org.drools.drl.parser.DroolsError;
 
 public class SerializableDroolsError extends DroolsError implements 
Externalizable {
-    private String message;
     private int[] errorLines;
     private String errorClassName;
     private String namespace;
 
-    public SerializableDroolsError() { }
+    private String originalMessage;
+
+    public SerializableDroolsError() {
+        super("");
+        this.originalMessage = getMessage();
+    }
     
     public SerializableDroolsError(BaseKnowledgeBuilderResultImpl error) {
-        this.message = error.getMessage();
+        super(error.getMessage());
+        this.originalMessage = getMessage();
         this.errorLines = error.getLines();
         this.errorClassName = error.getClass().getName();
         this.namespace = error instanceof DroolsError ? 
((DroolsError)error).getNamespace() : "";
@@ -46,13 +51,6 @@ public class SerializableDroolsError extends DroolsError 
implements Externalizab
         return namespace;
     }
 
-    /**
-     * Classes that extend this must provide a printable message,
-     * which summarises the error.
-     */
-    public String getMessage() {
-        return this.message;
-    }
     
     /**
      * Returns the lines of the error in the source file
@@ -67,7 +65,7 @@ public class SerializableDroolsError extends DroolsError 
implements Externalizab
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject( this.message );
+        out.writeObject(this.originalMessage);
         out.writeObject( this.errorLines );
         out.writeObject( this.errorClassName );
         out.writeObject( this.namespace );
@@ -75,7 +73,7 @@ public class SerializableDroolsError extends DroolsError 
implements Externalizab
     
     public void readExternal(ObjectInput in) throws IOException,
                                             ClassNotFoundException {
-        this.message = ( String ) in.readObject();
+        this.originalMessage = ( String ) in.readObject();
         this.errorLines = ( int[] ) in.readObject();
         this.errorClassName = ( String ) in.readObject();
         this.namespace = ( String ) in.readObject();
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/TypeDeclarationError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/TypeDeclarationError.java
index c0bfe0ccf4..c33e2f641d 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/TypeDeclarationError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/TypeDeclarationError.java
@@ -23,20 +23,17 @@ import org.drools.drl.ast.descr.BaseDescr;
 import org.drools.drl.parser.DroolsError;
 
 public class TypeDeclarationError extends DroolsError {
-    private String errorMessage;
     private int[]  line;
     private String namespace;
 
     public TypeDeclarationError(BaseDescr typeDescr, String errorMessage) {
-        super(typeDescr.getResource());
-        this.errorMessage = errorMessage;
+        super(typeDescr.getResource(), errorMessage);
         this.line = new int[] { typeDescr.getLine() };
         this.namespace = typeDescr.getNamespace();
     }
 
     public TypeDeclarationError(TypeDeclaration typeDeclaration, String 
errorMessage) {
-        super(typeDeclaration.getResource());
-        this.errorMessage = errorMessage;
+        super(typeDeclaration.getResource(), errorMessage);
         this.line = new int[0];
         this.namespace = typeDeclaration.getNamespace();
     }
@@ -50,12 +47,9 @@ public class TypeDeclarationError extends DroolsError {
         return this.line;
     }
 
-    public String getMessage() {
-        return this.errorMessage;
-    }
     
     public String toString() {
-        return this.getMessage();
+        return getMessage();
     }
 
 }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/TypeDeclarationWarning.java
 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/TypeDeclarationWarning.java
index 1cb145fd4f..81cebb7ab1 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/compiler/TypeDeclarationWarning.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/compiler/TypeDeclarationWarning.java
@@ -22,12 +22,11 @@ import org.drools.drl.parser.BaseKnowledgeBuilderResultImpl;
 import org.kie.internal.builder.ResultSeverity;
 
 public class TypeDeclarationWarning extends BaseKnowledgeBuilderResultImpl {
-    private String message;
+
     private int[]  line;
 
     public TypeDeclarationWarning(final String message, final int line) {
-        super(null);
-        this.message = message;
+        super(null, message);
         this.line = new int[] { line };
     }
 
@@ -35,10 +34,6 @@ public class TypeDeclarationWarning extends 
BaseKnowledgeBuilderResultImpl {
         return this.line;
     }
 
-    public String getMessage() {
-        return this.message;
-    }
-
     public String toString() {
         return this.getMessage();
     }
diff --git 
a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/DialectError.java
 
b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/DialectError.java
index edcd53101d..c0d6f553e5 100644
--- 
a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/DialectError.java
+++ 
b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/dialect/DialectError.java
@@ -22,24 +22,18 @@ import org.drools.drl.parser.DroolsError;
 import org.kie.api.io.Resource;
 
 public class DialectError extends DroolsError {
-    private String message;
     private static final int[] line = new int[0];
 
     public DialectError(final Resource resource, final String message) {
-        super(resource);
-        this.message = message;
+        super(resource, message);
     }
 
     public int[] getLines() {
         return line;
     }
-    
-    public String getMessage() {
-        return this.message;
-    }
 
     public String toString() {
-        return "[DialectError message='" + this.message + "']";
+        return "[DialectError message='" + getMessage() + "']";
     }
 
 }
diff --git 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/BaseKnowledgeBuilderResultImpl.java
 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/BaseKnowledgeBuilderResultImpl.java
index 4dced22444..a464598b88 100644
--- 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/BaseKnowledgeBuilderResultImpl.java
+++ 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/BaseKnowledgeBuilderResultImpl.java
@@ -32,8 +32,10 @@ import java.util.Arrays;
 public abstract class BaseKnowledgeBuilderResultImpl implements 
KnowledgeBuilderResult {
 
     private Resource resource;
+    private String message;
 
-    protected BaseKnowledgeBuilderResultImpl(Resource resource) {
+    protected BaseKnowledgeBuilderResultImpl(Resource resource, String 
message) {
+        this.message = message != null ? message : "";
         this.resource = resource;
     }
 
@@ -55,7 +57,17 @@ public abstract class BaseKnowledgeBuilderResultImpl 
implements KnowledgeBuilder
      * Classes that extend this must provide a printable message,
      * which summarises the error.
      */
-    public abstract String getMessage();
+    public final String getMessage() {
+        return message;
+    }
+
+    /**
+     * Needed when the message depends on status of mutable classes
+     * @param message
+     */
+    public final void setMessage(String message) {
+        this.message = message;
+    }
 
     /**
      * Returns the lines of the error in the source file
@@ -79,18 +91,18 @@ public abstract class BaseKnowledgeBuilderResultImpl 
implements KnowledgeBuilder
             return false;
         }
 
-        KnowledgeBuilderResult that = (KnowledgeBuilderResult) o;
+        BaseKnowledgeBuilderResultImpl that = (BaseKnowledgeBuilderResultImpl) 
o;
 
         if (resource != null ? !resource.equals(that.getResource()) : 
that.getResource() != null) {
             return false;
         }
 
-        return getMessage().equals(that.getMessage()) && 
Arrays.equals(getLines(), that.getLines());
+        return message.equals(that.message) && Arrays.equals(getLines(), 
that.getLines());
     }
 
     @Override
     public int hashCode() {
-        int hash = (29 * getMessage().hashCode()) + (31 * 
Arrays.hashCode(getLines()));
+        int hash = (29 * message.hashCode()) + (31 * 
Arrays.hashCode(getLines()));
         return resource != null ? hash + (37 * resource.hashCode()) : hash;
     }
 
diff --git 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DroolsError.java
 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DroolsError.java
index 64330403d8..c7b5d6e221 100644
--- 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DroolsError.java
+++ 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DroolsError.java
@@ -24,12 +24,12 @@ import org.kie.api.io.Resource;
 
 public abstract class DroolsError extends BaseKnowledgeBuilderResultImpl 
implements KnowledgeBuilderError {
 
-    public DroolsError() {
-        this(null);
+    public DroolsError(String message) {
+        this(null, message);
     }
 
-    public DroolsError(Resource resource) {
-        super(resource);
+    public DroolsError(Resource resource, String message) {
+        super(resource, message);
     }
 
     public ResultSeverity getSeverity() {
diff --git 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/ParserError.java
 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/ParserError.java
index 90e228f592..2178bb3c46 100644
--- 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/ParserError.java
+++ 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/ParserError.java
@@ -23,7 +23,6 @@ import org.kie.api.io.Resource;
 public class ParserError extends DroolsError {
     private final int    row;
     private final int    col;
-    private final String message;
     private final String namespace;
 
     public ParserError(final String message,
@@ -44,17 +43,12 @@ public class ParserError extends DroolsError {
                        final int row,
                        final int col,
                        final String namespace) {
-        super(resource);
-        this.message = message;
+        super(resource, message);
         this.row = row;
         this.col = col;
         this.namespace = namespace;
     }
 
-    public String getMessage() {
-        return this.message;
-    }
-
     @Override
     public String getNamespace() {
         return namespace;
@@ -73,7 +67,7 @@ public class ParserError extends DroolsError {
     }
 
     public String toString() {
-        return "[" + this.row + "," + this.col + "]: " + this.message;
+        return "[" + this.row + "," + this.col + "]: " + getMessage();
     }
 
 }
diff --git 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/ExpanderException.java
 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/ExpanderException.java
index ecc203bdce..5b4fdcf06b 100644
--- 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/ExpanderException.java
+++ 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/ExpanderException.java
@@ -25,29 +25,24 @@ public class ExpanderException extends DroolsError {
 
     private static final long serialVersionUID = 510l;
 
-    private String            message;
     private int[]             line;
 
     public ExpanderException(final String message,
                              final int line) {
-        this.message = message;
+        super("[" + line + "] " + message);
         this.line = new int[] { line };
     }
     
     public int[] getLines() {
         return this.line;
     }
-
-    public String getMessage() {
-        return "[" + this.line[0] + "] " + this.message;
-    }
     
     public int getLine() {
         return this.line[0];
     }
     
     public String toString() {
-        return this.getMessage();
+        return getMessage();
     }
 
 }
diff --git 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/dsl/MappingError.java
 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/dsl/MappingError.java
index 4f08b4d9fd..e852aab5ee 100755
--- 
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/dsl/MappingError.java
+++ 
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/dsl/MappingError.java
@@ -50,6 +50,7 @@ public class MappingError extends DroolsError {
                         final String token,
                         final String templateText,
                         final int line ) {
+        super(getSpecificMessage(errorCode, offset, token));
         this.errorCode = errorCode;
         this.template = template;
         this.token = token;
@@ -91,23 +92,19 @@ public class MappingError extends DroolsError {
         return this.templateText;
     }
 
-    /**
-     * @inheritDoc 
-     *
-     * @see org.kie.compiler.DroolsError#getMessage()
-     */
-    public String getMessage() {
-        switch ( this.errorCode ) {
+    private static String getSpecificMessage(int errorCode, int offset,
+                                             String token) {
+        switch ( errorCode ) {
             case ERROR_UNUSED_TOKEN :
-                return "Warning, the token " + this.token + " not used in the 
mapping.";
+                return "Warning, the token " + token + " not used in the 
mapping.";
             case ERROR_UNDECLARED_TOKEN :
-                return "Warning, the token " + this.token + " not found in the 
expression. (May not be a problem).";
+                return "Warning, the token " + token + " not found in the 
expression. (May not be a problem).";
             case ERROR_INVALID_TOKEN :
-                return "Invalid token declaration at offset " + this.offset + 
": " + this.token;
+                return "Invalid token declaration at offset " + offset + ": " 
+ token;
             case ERROR_UNMATCHED_BRACES :
-                return "Unexpected } found at offset " + this.offset;
+                return "Unexpected } found at offset " + offset;
             default :
-                return "Unkown error at offset: " + this.offset;
+                return "Unkown error at offset: " + offset;
         }
     }
 }
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/RuleUnitQueryWriter.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/RuleUnitQueryWriter.java
index b64864a9ab..4182d7181c 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/RuleUnitQueryWriter.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/RuleUnitQueryWriter.java
@@ -196,14 +196,10 @@ public class RuleUnitQueryWriter {
         private final QueryModel query;
 
         public NoBindingQuery(QueryModel query) {
+            super("Query " + query.getName() + " has no bound variable. At 
least one binding is required to determine the value returned by this query");
             this.query = query;
         }
 
-        @Override
-        public String getMessage() {
-            return "Query " + query.getName() + " has no bound variable. At 
least one binding is required to determine the value returned by this query";
-        }
-
         @Override
         public int[] getLines() {
             return ERROR_LINES;
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/CompilationProblemErrorResult.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/CompilationProblemErrorResult.java
index 9a4b716822..eb3f9e0c98 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/CompilationProblemErrorResult.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/CompilationProblemErrorResult.java
@@ -27,7 +27,7 @@ public class CompilationProblemErrorResult extends 
DroolsError {
     private CompilationProblem compilationProblem;
 
     public CompilationProblemErrorResult(CompilationProblem 
compilationProblem) {
-        super();
+        super(compilationProblem.getMessage());
         this.compilationProblem = compilationProblem;
     }
 
@@ -36,11 +36,6 @@ public class CompilationProblemErrorResult extends 
DroolsError {
         return ResultSeverity.ERROR;
     }
 
-    @Override
-    public String getMessage() {
-        return compilationProblem.getMessage();
-    }
-
     @Override
     public int[] getLines() {
         return new int[]{compilationProblem.getStartLine(), 
compilationProblem.getEndLine()};
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/DuplicatedDeclarationError.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/DuplicatedDeclarationError.java
index f794fe1edb..a6ca22d347 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/DuplicatedDeclarationError.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/DuplicatedDeclarationError.java
@@ -26,7 +26,7 @@ public class DuplicatedDeclarationError extends DroolsError {
     private String declaration;
 
     public DuplicatedDeclarationError( String declaration) {
-        super();
+        super("Duplicated declaration: " + declaration);
         this.declaration = declaration;
     }
 
@@ -35,11 +35,6 @@ public class DuplicatedDeclarationError extends DroolsError {
         return ResultSeverity.ERROR;
     }
 
-    @Override
-    public String getMessage() {
-        return "Duplicated declaration: " + declaration;
-    }
-
     @Override
     public int[] getLines() {
         return new int[0];
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/GetterOverloadWarning.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/GetterOverloadWarning.java
index c8d67ddf96..65219209d1 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/GetterOverloadWarning.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/GetterOverloadWarning.java
@@ -30,6 +30,7 @@ public class GetterOverloadWarning extends DroolsError {
     private Class newType;
 
     public GetterOverloadWarning( Class klass, String oldName, Class oldType, 
String newName, Class newType ) {
+        super( " Getter overloading detected in class " + klass.getName() + " 
: " + oldName + " (" + oldType + ") vs " + newName + " (" + newType + ") ");
         this.klass = klass;
         this.oldName = oldName;
         this.oldType = oldType;
@@ -43,12 +44,6 @@ public class GetterOverloadWarning extends DroolsError {
     }
 
 
-    @Override
-    public String getMessage() {
-        return " Getter overloading detected in class " + klass.getName() + " 
: " + oldName + " (" + oldType + ") vs " + newName + " (" + newType + ") ";
-    }
-
-
     @Override
     public int[] getLines() {
         return new int[ 0 ];
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/IncompatibleGetterOverloadError.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/IncompatibleGetterOverloadError.java
index cdf406f90e..c3111539b4 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/IncompatibleGetterOverloadError.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/IncompatibleGetterOverloadError.java
@@ -30,6 +30,7 @@ public class IncompatibleGetterOverloadError extends 
DroolsError {
     private Class newType;
 
     public IncompatibleGetterOverloadError( Class klass, String oldName, Class 
oldType, String newName, Class newType ) {
+        super(" Incompatible Getter overloading detected in class " + 
klass.getName() + " : " + oldName + " (" + oldType + ") vs " + newName + " (" + 
newType + ") ");
         this.klass = klass;
         this.oldName = oldName;
         this.oldType = oldType;
@@ -43,12 +44,6 @@ public class IncompatibleGetterOverloadError extends 
DroolsError {
     }
 
 
-    @Override
-    public String getMessage() {
-        return " Imcompatible Getter overloading detected in class " + 
klass.getName() + " : " + oldName + " (" + oldType + ") vs " + newName + " (" + 
newType + ") ";
-    }
-
-
     @Override
     public int[] getLines() {
         return new int[ 0 ];
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/InvalidExpressionErrorResult.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/InvalidExpressionErrorResult.java
index c956e13eda..72e43fea0a 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/InvalidExpressionErrorResult.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/InvalidExpressionErrorResult.java
@@ -26,13 +26,10 @@ import org.kie.internal.builder.ResultSeverity;
 
 public class InvalidExpressionErrorResult extends DroolsError {
 
-    private String message;
-
     private int[] errorLines = new int[1];
 
     public InvalidExpressionErrorResult(String message) {
-        super();
-        this.message = message;
+        super(message);
         this.errorLines[0] = -1;
     }
 
@@ -46,10 +43,6 @@ public class InvalidExpressionErrorResult extends 
DroolsError {
         return ResultSeverity.ERROR;
     }
 
-    @Override
-    public String getMessage() {
-        return message;
-    }
 
     @Override
     public int[] getLines() {
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/ParseExpressionErrorResult.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/ParseExpressionErrorResult.java
index b08c306ed1..cebe93aeec 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/ParseExpressionErrorResult.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/ParseExpressionErrorResult.java
@@ -33,7 +33,7 @@ public class ParseExpressionErrorResult extends DroolsError {
     private int[] errorLines = new int[1];
 
     public ParseExpressionErrorResult(Expression expr) {
-        super();
+        super("Unable to Analyse Expression " + PrintUtil.printNode(expr) + 
":");
         this.expr = expr;
         this.errorLines[0] = -1;
     }
@@ -48,11 +48,6 @@ public class ParseExpressionErrorResult extends DroolsError {
         return ResultSeverity.ERROR;
     }
 
-    @Override
-    public String getMessage() {
-        return "Unable to Analyse Expression " + PrintUtil.printNode(expr) + 
":";
-    }
-
     @Override
     public int[] getLines() {
         return errorLines;
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/UnknownDeclarationError.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/UnknownDeclarationError.java
index 4dbc260877..d00e12dce5 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/UnknownDeclarationError.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/UnknownDeclarationError.java
@@ -23,11 +23,9 @@ import org.kie.internal.builder.ResultSeverity;
 
 public class UnknownDeclarationError extends DroolsError {
 
-    private String declaration;
 
     public UnknownDeclarationError(String declaration) {
-        super();
-        this.declaration = declaration;
+        super("Unknown declaration: " + declaration);
     }
 
     @Override
@@ -35,10 +33,6 @@ public class UnknownDeclarationError extends DroolsError {
         return ResultSeverity.ERROR;
     }
 
-    @Override
-    public String getMessage() {
-        return "Unknown declaration: " + declaration;
-    }
 
     @Override
     public int[] getLines() {
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/UnsupportedFeatureError.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/UnsupportedFeatureError.java
index 8137f93b31..437a72c40d 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/UnsupportedFeatureError.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/UnsupportedFeatureError.java
@@ -23,11 +23,9 @@ import org.kie.internal.builder.ResultSeverity;
 
 public class UnsupportedFeatureError extends DroolsError {
 
-    private String message;
 
     public UnsupportedFeatureError(String message) {
-        super();
-        this.message = message;
+        super(message);
     }
 
     @Override
@@ -35,10 +33,6 @@ public class UnsupportedFeatureError extends DroolsError {
         return ResultSeverity.ERROR;
     }
 
-    @Override
-    public String getMessage() {
-        return message;
-    }
 
     @Override
     public int[] getLines() {
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/VariableUsedInBindingError.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/VariableUsedInBindingError.java
index 745863980e..917bcd9e3e 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/VariableUsedInBindingError.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/VariableUsedInBindingError.java
@@ -29,7 +29,9 @@ public class VariableUsedInBindingError extends DroolsError {
     private int[] errorLines = new int[1];
 
     public VariableUsedInBindingError(String usedDeclaration, String 
constraintExpressionString) {
-        super();
+        super(String.format("Variables can not be used inside bindings. 
Variable [%s] is being used in binding '%s'",
+                            usedDeclaration,
+                            constraintExpressionString));
         this.usedDeclaration = usedDeclaration;
         this.constraintExpressionString = constraintExpressionString;
         this.errorLines[0] = -1;
@@ -40,12 +42,6 @@ public class VariableUsedInBindingError extends DroolsError {
         return ResultSeverity.ERROR;
     }
 
-    @Override
-    public String getMessage() {
-        return String.format("Variables can not be used inside bindings. 
Variable [%s] is being used in binding '%s'",
-                             usedDeclaration,
-                             constraintExpressionString);
-    }
 
     @Override
     public int[] getLines() {
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/visitor/accumulate/AccumulateVisitor.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/visitor/accumulate/AccumulateVisitor.java
index 746722bb7c..7b202abedb 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/visitor/accumulate/AccumulateVisitor.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/visitor/accumulate/AccumulateVisitor.java
@@ -217,8 +217,7 @@ public class AccumulateVisitor {
         } else if (accumulateFunctionParameter instanceof LiteralExpr) {
             literalExprParameter(basePattern, function, functionDSL, 
bindingId, accumulateFunctionParameter);
         } else {
-            context.addCompilationError(new 
InvalidExpressionErrorResult("Invalid expression " + 
accumulateFunctionParameterStr, Optional.of(context.getRuleDescr())));
-            throw new AccumulateParsingFailedException();
+            throw new AccumulateParsingFailedException("Invalid expression " + 
accumulateFunctionParameterStr);
         }
 
         return Optional.empty();
@@ -662,9 +661,6 @@ public class AccumulateVisitor {
 
     private class AccumulateParsingFailedException extends RuntimeException {
 
-        AccumulateParsingFailedException() {
-        }
-
         AccumulateParsingFailedException(String message) {
             super(message);
         }
diff --git 
a/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/GetterOverloadingTest.java
 
b/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/GetterOverloadingTest.java
index 0eb78b22b4..5c72aa7700 100644
--- 
a/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/GetterOverloadingTest.java
+++ 
b/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/GetterOverloadingTest.java
@@ -61,7 +61,7 @@ public class GetterOverloadingTest extends BaseModelTest {
 
         KieBuilder kieBuilder = createKieBuilder(str);
         List<org.kie.api.builder.Message> messages = 
kieBuilder.getResults().getMessages(Level.ERROR);
-        assertThat(messages.get(0).getText()).contains("Imcompatible Getter 
overloading detected");
+        assertThat(messages.get(0).getText()).contains("Incompatible Getter 
overloading detected");
     }
 
     public static class ClassA {
diff --git 
a/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/assembler/TestAssembler.java
 
b/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/assembler/TestAssembler.java
index 18098808ed..d1151a07dd 100644
--- 
a/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/assembler/TestAssembler.java
+++ 
b/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/assembler/TestAssembler.java
@@ -56,18 +56,13 @@ public class TestAssembler implements KieAssemblerService {
 
     }
 
-    public static final KnowledgeBuilderResult AFTER_RULES = new 
DroolsError(null) {
+    public static final KnowledgeBuilderResult AFTER_RULES = new DroolsError( 
"AFTER_RULES") {
 
         @Override
         public ResultSeverity getSeverity() {
             return ResultSeverity.WARNING;
         }
 
-        @Override
-        public String getMessage() {
-            return "AFTER_RULES";
-        }
-
         @Override
         public int[] getLines() {
             return new int[0];
@@ -75,18 +70,13 @@ public class TestAssembler implements KieAssemblerService {
 
     };
 
-    public static final KnowledgeBuilderResult BEFORE_RULES = new 
DroolsError(null) {
+    public static final KnowledgeBuilderResult BEFORE_RULES = new 
DroolsError("BEFORE_RULES") {
 
         @Override
         public ResultSeverity getSeverity() {
             return ResultSeverity.WARNING;
         }
 
-        @Override
-        public String getMessage() {
-            return "BEFORE_RULES";
-        }
-
         @Override
         public int[] getLines() {
             return new int[0];
diff --git 
a/drools-mvel/src/main/java/org/drools/mvel/asm/ClassFieldInspectorImpl.java 
b/drools-mvel/src/main/java/org/drools/mvel/asm/ClassFieldInspectorImpl.java
index 6026e7724f..a46c1bafe1 100644
--- a/drools-mvel/src/main/java/org/drools/mvel/asm/ClassFieldInspectorImpl.java
+++ b/drools-mvel/src/main/java/org/drools/mvel/asm/ClassFieldInspectorImpl.java
@@ -574,7 +574,7 @@ public class ClassFieldInspectorImpl implements 
ClassFieldInspector {
 
 
         public String getMessage() {
-            return " Imcompatible Getter overloading detected in class " + 
klass.getName() + " : " + oldName + " (" + oldType + ") vs " + newName + " (" + 
newType + ") ";
+            return " Incompatible Getter overloading detected in class " + 
klass.getName() + " : " + oldName + " (" + oldType + ") vs " + newName + " (" + 
newType + ") ";
         }
 
 
diff --git 
a/drools-mvel/src/main/java/org/drools/mvel/java/JavaDialectError.java 
b/drools-mvel/src/main/java/org/drools/mvel/java/JavaDialectError.java
index 53b3c9cf2e..e61a021721 100644
--- a/drools-mvel/src/main/java/org/drools/mvel/java/JavaDialectError.java
+++ b/drools-mvel/src/main/java/org/drools/mvel/java/JavaDialectError.java
@@ -25,16 +25,13 @@ public class JavaDialectError extends DroolsError {
     private static final int[] line = new int[0];
 
     public JavaDialectError(final String message) {
+        super(message);
         this.message = message;
     }
 
     public int[] getLines() {
         return line;
     }
-    
-    public String getMessage() {
-        return this.message;
-    }
 
     public String toString() {
         return "[JavaDialectError message='" + this.message + "']";
diff --git 
a/drools-util/src/main/java/org/drools/util/IncompatibleGetterOverloadException.java
 
b/drools-util/src/main/java/org/drools/util/IncompatibleGetterOverloadException.java
index 51cdc58c0c..3ab8391507 100644
--- 
a/drools-util/src/main/java/org/drools/util/IncompatibleGetterOverloadException.java
+++ 
b/drools-util/src/main/java/org/drools/util/IncompatibleGetterOverloadException.java
@@ -28,7 +28,7 @@ public class IncompatibleGetterOverloadException extends 
RuntimeException {
     private Class<?> newType;
 
     public IncompatibleGetterOverloadException(Class<?> klass, String oldName, 
Class<?> oldType, String newName, Class<?> newType) {
-        super(" Imcompatible Getter overloading detected in class " + 
klass.getName() + " : " + oldName + " (" + oldType + ") vs " + newName + " (" + 
newType + ") ");
+        super(" Incompatible Getter overloading detected in class " + 
klass.getName() + " : " + oldName + " (" + oldType + ") vs " + newName + " (" + 
newType + ") ");
         this.klass = klass;
         this.oldName = oldName;
         this.oldType = oldType;
diff --git 
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNKnowledgeBuilderError.java
 
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNKnowledgeBuilderError.java
index 2ea40e55cf..1073f944c6 100644
--- 
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNKnowledgeBuilderError.java
+++ 
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/impl/DMNKnowledgeBuilderError.java
@@ -28,16 +28,14 @@ import org.kie.internal.builder.ResultSeverity;
 public class DMNKnowledgeBuilderError extends DroolsError {
 
     private int[] lines = new int[0];
-    private String message;
     private String namespace;
     private ResultSeverity severity;
     private DMNMessage dmnMessage;
     
     public DMNKnowledgeBuilderError(ResultSeverity severity, Resource 
resource, String namespace, String message) {
-        super(resource);
+        super(resource, message);
         this.severity = severity;
         this.namespace = namespace;
-        this.message = message;
     }
     
     public DMNKnowledgeBuilderError(ResultSeverity severity, Resource 
resource, String message) {
@@ -78,11 +76,6 @@ public class DMNKnowledgeBuilderError extends DroolsError {
         return this.severity;
     }
 
-    @Override
-    public String getMessage() {
-        return this.message;
-    }
-
     @Override
     public int[] getLines() {
         return lines;
@@ -101,7 +94,7 @@ public class DMNKnowledgeBuilderError extends DroolsError {
     public String toString() {
         StringBuilder sb = new StringBuilder();
         sb.append("DMNKnowledgeBuilderError [message=");
-        sb.append(message);
+        sb.append(getMessage());
         sb.append(", namespace=");
         sb.append(namespace);
         sb.append(", dmnMessage=");


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

Reply via email to