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

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


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

commit c6e0c9d1411eda53e4519ae687008e974aad133f
Author: Yeser Amer <[email protected]>
AuthorDate: Wed Jan 31 10:05:40 2024 +0100

    [8.40.x] [incubator-kie-issues#814] Fix NPE on 
BaseKnowledgeBuilderResultImpl.hashCode() (#5668)
    
    * [incubator-kie-issues#814] Fix NPE on 
BaseKnowledgeBuilderResultImpl.hashCode() (#5647)
    
    (cherry picked from commit 2ef59d148018dba47621262c64d96304311ee357)
    
    * [incubator-kie-issues#814] Fix NPE on 
BaseKnowledgeBuilderResultImpl.hashCode() (#5647)
    
    (cherry picked from commit 2ef59d148018dba47621262c64d96304311ee357)
    
    * Manual casting fixed
    
    * Manual casting fixed
    
    * Manual casting fixed
    
    * Manual casting fixed
    
    ---------
    
    Co-authored-by: Gabriele Cardosi <[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    | 20 ++++++-------
 .../compiler/compiler/FactTemplateError.java       |  7 +----
 .../compiler/compiler/FieldTemplateError.java      |  8 +----
 .../drools/compiler/compiler/FunctionError.java    | 35 ++++++++++++----------
 .../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 ++++++-------
 .../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 ++-----
 46 files changed, 163 insertions(+), 326 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 45a31865e2..50c187c4d4 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
@@ -19,18 +19,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 50f6c91e1a..ec63ac7cbb 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
@@ -21,14 +21,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() {
@@ -39,13 +37,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 049c8befd1..bdb629900d 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
@@ -22,15 +22,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
@@ -58,13 +60,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 8bf30a5ff7..376dcc12d2 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
@@ -20,13 +20,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();
     }
@@ -41,14 +39,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 0ad17dac90..cdbc336e9f 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
@@ -27,8 +27,8 @@ import org.kie.api.io.Resource;
  */
 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 3c8b1b4d91..2914a2d855 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
@@ -27,15 +27,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 5ed91d9f1b..068ff7e21d 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
@@ -23,19 +23,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
@@ -71,13 +72,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 24c6ccb74a..561854f11b 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
@@ -22,18 +22,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();
     }
 
@@ -65,13 +66,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 70ffb4852c..10a91e4765 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
@@ -28,17 +28,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 b0f451900e..fc76cfa6d3 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
@@ -21,8 +21,8 @@ import org.kie.api.io.Resource;
 
 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 916e24b307..5d332bbed0 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
@@ -22,15 +22,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 0071076c56..23f1ba144b 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
@@ -20,31 +20,16 @@ import org.drools.base.rule.Function;
 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
@@ -57,4 +42,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 6379531b47..7239917897 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
@@ -31,27 +31,25 @@ 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;
-       }
+    @Override
+    public int[] getLines() {
+        return line;
+    }
 
     @Override
     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 0c8b428289..10438de100 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
@@ -23,7 +23,6 @@ public class FactTemplateError extends DroolsError {
     private Package   pkg;
     private BaseDescr descr;
     private Object    object;
-    private String    message;
     private int[]     line;
     private String    namespace;
 
@@ -31,12 +30,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()};
     }
 
@@ -69,8 +67,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 78016bc015..aa109c9770 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
@@ -23,7 +23,6 @@ public class FieldTemplateError extends DroolsError {
     private Package   pkg;
     private BaseDescr descr;
     private Object    object;
-    private String    message;
     private int[]     line;
     private String    namespace;
 
@@ -31,12 +30,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()};
     }
 
@@ -69,8 +67,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 d8f4e5519a..0367d9a470 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
@@ -23,16 +23,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
@@ -52,21 +52,28 @@ 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[] ) {
+            CompilationProblem[] cp = (CompilationProblem[]) object;
+            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];
             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,8 +83,7 @@ public class FunctionError extends DroolsError {
             }
         } else if( object instanceof Exception) {
             Exception ex = (Exception) object;
-            this.errorLines = new int[1];
-            this.errorLines[0] = functionDescr.getLine();
+
             detail.append( " (line:" );
             detail.append( this.errorLines[0] );
             detail.append( "): " );
@@ -88,11 +94,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 0fd331e0ad..6dadbd3b1c 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
@@ -21,12 +21,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
@@ -42,12 +40,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 1c43cbe525..b78548a8c8 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
@@ -24,7 +24,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 };
     }
@@ -41,13 +41,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 3a78c102ef..3e91462b9d 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
@@ -19,20 +19,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 9a0100ef71..601bb1f38e 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
@@ -16,6 +16,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;
 
@@ -24,21 +25,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 6d3d539aae..86524c07d3 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
@@ -24,7 +24,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;
     }
@@ -35,6 +35,7 @@ public class ResourceTypeDeclarationWarning extends 
DroolsWarning {
 
     public void setDeclaredResourceType( ResourceType declaredResourceType ) {
         this.declaredResourceType = declaredResourceType;
+        setMessage(getSpecificMessage(getResource(), 
this.declaredResourceType, this.actualResourceType));
     }
 
     public ResourceType getActualResourceType() {
@@ -43,15 +44,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 e14ffdbfb1..0b6a40644e 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
@@ -25,15 +25,20 @@ import java.io.ObjectInput;
 import java.io.ObjectOutput;
 
 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() : "";
@@ -44,13 +49,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
@@ -65,7 +63,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 );
@@ -73,7 +71,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 63b4f7e9c8..285dab2d04 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
@@ -21,20 +21,17 @@ import org.drools.base.rule.TypeDeclaration;
 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();
     }
@@ -48,12 +45,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 e4dc650b98..813a4f4116 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
@@ -20,12 +20,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 };
     }
 
@@ -33,10 +32,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 87c6b6fde4..c6dd8b77d7 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
@@ -19,24 +19,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-parser/src/main/java/org/drools/drl/parser/BaseKnowledgeBuilderResultImpl.java
 
b/drools-drl-parser/src/main/java/org/drools/drl/parser/BaseKnowledgeBuilderResultImpl.java
index 4134fdafd6..44fd1bc0de 100644
--- 
a/drools-drl-parser/src/main/java/org/drools/drl/parser/BaseKnowledgeBuilderResultImpl.java
+++ 
b/drools-drl-parser/src/main/java/org/drools/drl/parser/BaseKnowledgeBuilderResultImpl.java
@@ -29,8 +29,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;
     }
 
@@ -52,7 +54,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
@@ -76,18 +88,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-parser/src/main/java/org/drools/drl/parser/DroolsError.java 
b/drools-drl-parser/src/main/java/org/drools/drl/parser/DroolsError.java
index 457d92cf4f..9119507c08 100644
--- a/drools-drl-parser/src/main/java/org/drools/drl/parser/DroolsError.java
+++ b/drools-drl-parser/src/main/java/org/drools/drl/parser/DroolsError.java
@@ -22,12 +22,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-parser/src/main/java/org/drools/drl/parser/ParserError.java 
b/drools-drl-parser/src/main/java/org/drools/drl/parser/ParserError.java
index 4597f3d741..d8bcea25c2 100644
--- a/drools-drl-parser/src/main/java/org/drools/drl/parser/ParserError.java
+++ b/drools-drl-parser/src/main/java/org/drools/drl/parser/ParserError.java
@@ -21,7 +21,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,
@@ -42,17 +41,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;
@@ -71,7 +65,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-parser/src/main/java/org/drools/drl/parser/lang/ExpanderException.java
 
b/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/ExpanderException.java
index 0c722c529e..18fe39e9e0 100644
--- 
a/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/ExpanderException.java
+++ 
b/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/ExpanderException.java
@@ -22,12 +22,11 @@ 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 };
     }
     
@@ -35,16 +34,12 @@ public class ExpanderException extends DroolsError {
         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-parser/src/main/java/org/drools/drl/parser/lang/dsl/MappingError.java
 
b/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/dsl/MappingError.java
index b339398224..ed52827de7 100755
--- 
a/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/dsl/MappingError.java
+++ 
b/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/dsl/MappingError.java
@@ -48,6 +48,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;
@@ -89,23 +90,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/errors/CompilationProblemErrorResult.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/errors/CompilationProblemErrorResult.java
index 85eeeecc38..0ed6387db4 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
@@ -25,7 +25,7 @@ public class CompilationProblemErrorResult extends 
DroolsError {
     private CompilationProblem compilationProblem;
 
     public CompilationProblemErrorResult(CompilationProblem 
compilationProblem) {
-        super();
+        super(compilationProblem.getMessage());
         this.compilationProblem = compilationProblem;
     }
 
@@ -34,11 +34,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 e6d4e13d49..3c86226235 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
@@ -24,7 +24,7 @@ public class DuplicatedDeclarationError extends DroolsError {
     private String declaration;
 
     public DuplicatedDeclarationError( String declaration) {
-        super();
+        super("Duplicated declaration: " + declaration);
         this.declaration = declaration;
     }
 
@@ -33,11 +33,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 5907a42d9b..2e75270363 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
@@ -28,6 +28,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;
@@ -41,12 +42,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 70a4a33185..78bd0781b3 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
@@ -28,6 +28,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;
@@ -41,12 +42,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 703ad81ad5..f7a1a2605c 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
@@ -24,13 +24,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;
     }
 
@@ -44,10 +41,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 30f92300e6..bc0e66f3e2 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
@@ -31,7 +31,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;
     }
@@ -46,11 +46,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 97514437d5..61f75234bd 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
@@ -21,11 +21,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
@@ -33,10 +31,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 e701c6d54e..cea15a5a99 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
@@ -21,11 +21,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
@@ -33,10 +31,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 951fe5f5ed..ca2c0fa37a 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
@@ -27,7 +27,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;
@@ -38,12 +40,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 ca6f7522eb..21bbb62d1c 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
@@ -212,8 +212,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();
@@ -645,9 +644,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 d153d60378..3aaa41fc40 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
@@ -60,7 +60,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 74e0e7178e..bd75208f08 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
@@ -38,18 +38,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];
@@ -57,18 +52,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 e52c70e60f..54bbe73825 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
@@ -570,7 +570,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 a9d70b0e94..0180a3ba31 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
@@ -21,16 +21,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 85c0eea676..9c0e92a185 100644
--- 
a/drools-util/src/main/java/org/drools/util/IncompatibleGetterOverloadException.java
+++ 
b/drools-util/src/main/java/org/drools/util/IncompatibleGetterOverloadException.java
@@ -10,7 +10,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 2da176250b..16e7c8baa4 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
@@ -10,16 +10,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) {
@@ -60,11 +58,6 @@ public class DMNKnowledgeBuilderError extends DroolsError {
         return this.severity;
     }
 
-    @Override
-    public String getMessage() {
-        return this.message;
-    }
-
     @Override
     public int[] getLines() {
         return lines;
@@ -83,7 +76,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