You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2018/06/06 13:57:55 UTC
[sling-org-apache-sling-scripting-sightly-compiler] branch master
updated: SLING-7710 - [HTL] Enhance error reporting for plugin errors
This is an automated email from the ASF dual-hosted git repository.
radu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-compiler.git
The following commit(s) were added to refs/heads/master by this push:
new 5a7f099 SLING-7710 - [HTL] Enhance error reporting for plugin errors
5a7f099 is described below
commit 5a7f0996aa6ca8475c447fa517c3bca92f8bf441
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Wed Jun 6 15:52:48 2018 +0200
SLING-7710 - [HTL] Enhance error reporting for plugin errors
---
.../sightly/impl/html/dom/MarkupHandler.java | 12 ++++++++++--
.../scripting/sightly/impl/plugin/CallPlugin.java | 2 +-
.../sightly/impl/plugin/TemplatePlugin.java | 20 +++++++++++---------
3 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java b/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java
index 58c6ccb..0e41724 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java
@@ -32,6 +32,7 @@ import org.apache.sling.scripting.sightly.compiler.commands.OutputVariable;
import org.apache.sling.scripting.sightly.compiler.commands.VariableBinding;
import org.apache.sling.scripting.sightly.compiler.expression.Expression;
import org.apache.sling.scripting.sightly.compiler.expression.ExpressionNode;
+import org.apache.sling.scripting.sightly.compiler.expression.MarkupContext;
import org.apache.sling.scripting.sightly.compiler.expression.nodes.BinaryOperation;
import org.apache.sling.scripting.sightly.compiler.expression.nodes.BinaryOperator;
import org.apache.sling.scripting.sightly.compiler.expression.nodes.BooleanConstant;
@@ -51,7 +52,6 @@ import org.apache.sling.scripting.sightly.impl.compiler.util.SymbolGenerator;
import org.apache.sling.scripting.sightly.impl.filter.ExpressionContext;
import org.apache.sling.scripting.sightly.impl.filter.Filter;
import org.apache.sling.scripting.sightly.impl.html.MarkupUtils;
-import org.apache.sling.scripting.sightly.compiler.expression.MarkupContext;
import org.apache.sling.scripting.sightly.impl.plugin.Plugin;
import org.apache.sling.scripting.sightly.impl.plugin.PluginCallInfo;
import org.apache.sling.scripting.sightly.impl.plugin.PluginInvoke;
@@ -85,7 +85,15 @@ public class MarkupHandler {
public void onAttribute(String name, String value, char quoteChar) {
ElementContext context = elementStack.peek();
if (Syntax.isPluginAttribute(name)) {
- handlePlugin(name, StringUtils.defaultString(value, ""), context);
+ try {
+ handlePlugin(name, StringUtils.defaultString(value, ""), context);
+ } catch (SightlyCompilerException e) {
+ if (StringUtils.isEmpty(e.getOffendingInput())) {
+ throw new SightlyCompilerException(e.getMessage(),
+ name + (StringUtils.isNotEmpty(value) ? "=" + quoteChar + value + quoteChar : ""));
+ }
+ throw e;
+ }
} else {
context.addAttribute(name, value, quoteChar);
}
diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/CallPlugin.java b/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/CallPlugin.java
index 455612e..b666575 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/CallPlugin.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/CallPlugin.java
@@ -39,7 +39,7 @@ public class CallPlugin extends AbstractPlugin {
final PluginCallInfo callInfo,
final CompilerContext compilerContext) {
if (callInfo.getArguments().length > 0) {
- throw new SightlyCompilerException("Call plugin should have no arguments.", "data-sly-call." + callInfo.getArguments()[0]);
+ throw new SightlyCompilerException("Call plugin should have no arguments.");
}
return new DefaultPluginInvoke() {
diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/TemplatePlugin.java b/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/TemplatePlugin.java
index 2890c19..a22116f 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/TemplatePlugin.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/TemplatePlugin.java
@@ -41,6 +41,8 @@ public class TemplatePlugin extends AbstractPlugin {
@Override
public PluginInvoke invoke(final Expression expressionNode, final PluginCallInfo callInfo, CompilerContext compilerContext) {
+ final String templateName = decodeName(callInfo);
+
return new DefaultPluginInvoke() {
@Override
@@ -51,9 +53,8 @@ public class TemplatePlugin extends AbstractPlugin {
@Override
public void beforeElement(PushStream stream, String tagName) {
- String name = decodeName();
Set<String> parameters = extractParameters();
- stream.write(new Procedure.Start(name, parameters));
+ stream.write(new Procedure.Start(templateName, parameters));
}
@Override
@@ -81,13 +82,14 @@ public class TemplatePlugin extends AbstractPlugin {
return options.keySet();
}
- private String decodeName() {
- String[] arguments = callInfo.getArguments();
- if (arguments.length == 0) {
- throw new SightlyCompilerException("Template name was not provided.", "data-sly-template=");
- }
- return arguments[0];
- }
};
}
+
+ private String decodeName(PluginCallInfo callInfo) {
+ String[] arguments = callInfo.getArguments();
+ if (arguments.length == 0) {
+ throw new SightlyCompilerException("Template name was not provided.");
+ }
+ return arguments[0];
+ }
}
--
To stop receiving notification emails like this one, please contact
radu@apache.org.