diff --git a/src/main/java/org/apache/sling/models/validation/InvalidResourceException.java b/src/main/java/org/apache/sling/models/validation/InvalidResourceException.java
index f589df9..352d0f4 100644
--- a/src/main/java/org/apache/sling/models/validation/InvalidResourceException.java
+++ b/src/main/java/org/apache/sling/models/validation/InvalidResourceException.java
@@ -16,12 +16,16 @@
  */
 package org.apache.sling.models.validation;
 
+import java.util.ResourceBundle;
+
+import javax.annotation.Nonnull;
+
 import org.apache.sling.models.factory.InvalidModelException;
 import org.apache.sling.validation.ValidationFailure;
 import org.apache.sling.validation.ValidationResult;
 
 /**
- * Exception embedding a ValidationResult from Sling Validation.
+ * Exception embedding a {@link ValidationResult} from Sling Validation.
  *
  */
 public class InvalidResourceException extends InvalidModelException {
@@ -54,12 +58,16 @@
         return path;
     }
 
-    @Override
-    public String getMessage() {
+    /**
+     * This is not the regular {@link Exception#getMessage()} as it requires an additional resourceBundle parameter to look up the localized message.
+     * @param resourceBundle
+     * @return the localized validation messages bound to the {@link ValidationResult} wrapped by this exception
+     */
+    public String getMessage(@Nonnull ResourceBundle resourceBundle) {
         StringBuilder builder = new StringBuilder("Validation errors for ");
         builder.append("'" + path +"':");
         for (ValidationFailure failure : result.getFailures()) {
-            builder.append("\n" + failure.getLocation() + ":" + failure.getMessage() + "\n\t");
+            builder.append("\n" + failure.getLocation() + ":" + failure.getMessage(resourceBundle) + "\n\t");
         }
         return builder.toString();
     }
