Author: radu
Date: Thu Jan 21 17:20:05 2016
New Revision: 1726029
URL: http://svn.apache.org/viewvc?rev=1726029&view=rev
Log:
SLING-5447 - Enable FindBugs for the Sightly Scripting Engine
* enabled FindBugs for the build process
* cleared static analysis bugs
Added:
sling/trunk/bundles/scripting/sightly/engine/src/test/resources/
sling/trunk/bundles/scripting/sightly/engine/src/test/resources/findbugs-exclude.xml
Modified:
sling/trunk/bundles/scripting/sightly/engine/pom.xml
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyCompilerService.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/BinaryOperator.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/ElementContext.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/DeadCodeRemoval.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/visitor/CodeGenVisitor.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderUnit.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/URIManipulationFilter.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/PluginCallInfo.java
Modified: sling/trunk/bundles/scripting/sightly/engine/pom.xml
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/pom.xml?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/engine/pom.xml Thu Jan 21 17:20:05
2016
@@ -126,6 +126,25 @@
<excludePackageNames>*.impl:*.internal:${site.javadoc.exclude}</excludePackageNames>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>3.0.3</version>
+ <configuration>
+ <effort>Max</effort>
+ <xmlOutput>true</xmlOutput>
+
<excludeFilterFile>src/test/resources/findbugs-exclude.xml</excludeFilterFile>
+ </configuration>
+ <executions>
+ <execution>
+ <id>find-bugs</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyCompilerService.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyCompilerService.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyCompilerService.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyCompilerService.java
Thu Jan 21 17:20:05 2016
@@ -22,6 +22,8 @@ package org.apache.sling.scripting.sight
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
@@ -31,11 +33,6 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.References;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.scripting.sightly.impl.compiler.debug.SanityChecker;
-import org.apache.sling.scripting.sightly.impl.compiler.ris.CommandStream;
-import org.apache.sling.scripting.sightly.impl.compiler.util.stream.PushStream;
-import org.apache.sling.scripting.sightly.impl.filter.Filter;
-import org.apache.sling.scripting.sightly.impl.html.dom.HtmlParserService;
-import org.apache.sling.scripting.sightly.impl.plugin.Plugin;
import
org.apache.sling.scripting.sightly.impl.compiler.frontend.SimpleFrontend;
import
org.apache.sling.scripting.sightly.impl.compiler.optimization.CoalescingWrites;
import
org.apache.sling.scripting.sightly.impl.compiler.optimization.DeadCodeRemoval;
@@ -44,6 +41,11 @@ import org.apache.sling.scripting.sightl
import
org.apache.sling.scripting.sightly.impl.compiler.optimization.SyntheticMapRemoval;
import
org.apache.sling.scripting.sightly.impl.compiler.optimization.UnusedVariableRemoval;
import
org.apache.sling.scripting.sightly.impl.compiler.optimization.reduce.ConstantFolding;
+import org.apache.sling.scripting.sightly.impl.compiler.ris.CommandStream;
+import org.apache.sling.scripting.sightly.impl.compiler.util.stream.PushStream;
+import org.apache.sling.scripting.sightly.impl.filter.Filter;
+import org.apache.sling.scripting.sightly.impl.html.dom.HtmlParserService;
+import org.apache.sling.scripting.sightly.impl.plugin.Plugin;
import org.osgi.service.component.ComponentContext;
/**
@@ -69,6 +71,8 @@ public class SightlyCompilerService {
private List<Filter> filters = new ArrayList<Filter>();
private List<Plugin> plugins = new ArrayList<Plugin>();
+ private static final Lock FILTERS_LOCK = new ReentrantLock();
+ private static final Lock PLUGINS_LOCK = new ReentrantLock();
private volatile StreamTransformer optimizer;
private volatile CompilerFrontend frontend;
@@ -117,33 +121,46 @@ public class SightlyCompilerService {
@SuppressWarnings("UnusedDeclaration")
protected void bindFilterService(Filter filter, Map<String, Object>
properties) {
- synchronized(filters) {
+ FILTERS_LOCK.lock();
+ try {
filters = add(filters, filter);
reloadFrontend();
+ } finally {
+ FILTERS_LOCK.unlock();
}
}
@SuppressWarnings("UnusedDeclaration")
protected void unbindFilterService(Filter filter, Map<String, Object>
properties) {
- synchronized (filters) {
+ FILTERS_LOCK.lock();
+ try {
filters = remove(filters, filter);
reloadFrontend();
+ } finally {
+ FILTERS_LOCK.unlock();
}
+
}
@SuppressWarnings("UnusedDeclaration")
protected void bindPluginService(Plugin plugin, Map<String, Object>
properties) {
- synchronized (plugins) {
+ PLUGINS_LOCK.lock();
+ try {
plugins = add(plugins, plugin);
reloadFrontend();
+ } finally {
+ PLUGINS_LOCK.unlock();
}
}
@SuppressWarnings("UnusedDeclaration")
protected void unbindPluginService(Plugin plugin, Map<String, Object>
properties) {
- synchronized (plugins) {
+ PLUGINS_LOCK.lock();
+ try {
plugins = remove(plugins, plugin);
reloadFrontend();
+ } finally {
+ PLUGINS_LOCK.unlock();
}
}
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java
Thu Jan 21 17:20:05 2016
@@ -133,33 +133,25 @@ public class SightlyJavaCompilerService
* @throws CompilerException in case of any runtime exception
*/
public Object compileSource(SourceIdentifier sourceIdentifier, String
sourceCode, String fqcn) {
- boolean downgradedLock = false;
- writeLock.lock();
+ readLock.lock();
try {
- if (sourceIdentifier != null) {
- if (sourceIdentifier.needsUpdate()) {
+ if (sourceIdentifier == null || sourceIdentifier.needsUpdate()) {
+ readLock.unlock();
+ writeLock.lock();
+ try {
return internalCompileSource(sourceCode, fqcn);
- } else {
- /**
- * downgrade write lock to a read lock; we don't need to
recompile the class since it seems it has been recompiled by
- * another thread
- */
+ } finally {
+ // downgrade write lock since we've probably compiled the
source code by now
readLock.lock();
writeLock.unlock();
- downgradedLock = true;
- return
classLoaderWriter.getClassLoader().loadClass(fqcn).newInstance();
}
} else {
- return internalCompileSource(sourceCode, fqcn);
+ return
classLoaderWriter.getClassLoader().loadClass(fqcn).newInstance();
}
} catch (Exception e) {
throw new
CompilerException(CompilerException.CompilerExceptionCause.COMPILER_ERRORS, e);
} finally {
- if (downgradedLock) {
- readLock.unlock();
- } else {
- writeLock.unlock();
- }
+ readLock.unlock();
}
}
@@ -366,7 +358,7 @@ public class SightlyJavaCompilerService
return buffer.toString();
}
- class SightlyCompilationUnit implements CompilationUnit {
+ private static class SightlyCompilationUnit implements CompilationUnit {
private String fqcn;
private String sourceCode;
@@ -378,7 +370,7 @@ public class SightlyJavaCompilerService
@Override
public Reader getSource() throws IOException {
- return new InputStreamReader(IOUtils.toInputStream(sourceCode,
"UTF-8"));
+ return new InputStreamReader(IOUtils.toInputStream(sourceCode,
"UTF-8"), "UTF-8");
}
@Override
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java
Thu Jan 21 17:20:05 2016
@@ -51,7 +51,7 @@ public class UnitChangeMonitor {
private static final Logger LOG =
LoggerFactory.getLogger(UnitChangeMonitor.class);
- private Map<String, SightlyScript> slyScriptsMap = new
ConcurrentHashMap<String, SightlyScript>();
+ private Map<String, SightlyScriptMetaInfo> slyScriptsMap = new
ConcurrentHashMap<String, SightlyScriptMetaInfo>();
private Map<String, Long> slyJavaUseMap = new ConcurrentHashMap<String,
Long>();
private ServiceRegistration eventHandlerServiceRegistration;
@@ -68,17 +68,17 @@ public class UnitChangeMonitor {
* @return the script's last modified date or 0 if there's no information
about the script
*/
public long getLastModifiedDateForScript(String script) {
- SightlyScript sightlyScript = slyScriptsMap.get(script);
- if (sightlyScript != null) {
- return sightlyScript.lastModified;
+ SightlyScriptMetaInfo sightlyScriptMetaInfo =
slyScriptsMap.get(script);
+ if (sightlyScriptMetaInfo != null) {
+ return sightlyScriptMetaInfo.lastModified;
}
return 0;
}
public String getScriptEncoding(String script) {
- SightlyScript sightlyScript = getScript(script);
- if (sightlyScript != null) {
- return sightlyScript.encoding;
+ SightlyScriptMetaInfo sightlyScriptMetaInfo = getScript(script);
+ if (sightlyScriptMetaInfo != null) {
+ return sightlyScriptMetaInfo.encoding;
}
return sightlyEngineConfiguration.getEncoding();
}
@@ -175,7 +175,7 @@ public class UnitChangeMonitor {
if (StringUtils.isEmpty(encoding)) {
encoding = sightlyEngineConfiguration.getEncoding();
}
- slyScriptsMap.put(path, new SightlyScript(path, encoding,
System.currentTimeMillis()));
+ slyScriptsMap.put(path, new SightlyScriptMetaInfo(encoding,
System.currentTimeMillis()));
}
} else if (SlingConstants.TOPIC_RESOURCE_REMOVED.equals(topic)) {
if (path.endsWith(".java")) {
@@ -186,11 +186,11 @@ public class UnitChangeMonitor {
}
}
- private SightlyScript getScript(String script) {
- SightlyScript sightlyScript = null;
+ private SightlyScriptMetaInfo getScript(String script) {
+ SightlyScriptMetaInfo sightlyScriptMetaInfo = null;
if (StringUtils.isNotEmpty(script)) {
- sightlyScript = slyScriptsMap.get(script);
- if (sightlyScript == null) {
+ sightlyScriptMetaInfo = slyScriptsMap.get(script);
+ if (sightlyScriptMetaInfo == null) {
ResourceResolver resolver = null;
try {
resolver = rrf.getAdministrativeResourceResolver(null);
@@ -203,8 +203,8 @@ public class UnitChangeMonitor {
if (StringUtils.isEmpty(encoding)) {
encoding = sightlyEngineConfiguration.getEncoding();
}
- sightlyScript = new SightlyScript(script, encoding,
scriptResourceMetadata.getModificationTime());
- slyScriptsMap.put(script, sightlyScript);
+ sightlyScriptMetaInfo = new
SightlyScriptMetaInfo(encoding, scriptResourceMetadata.getModificationTime());
+ slyScriptsMap.put(script, sightlyScriptMetaInfo);
} catch (LoginException e) {
// do nothing; we'll just return the default encoding
LOG.warn("Cannot read character encoding value for script
" + script);
@@ -215,19 +215,15 @@ public class UnitChangeMonitor {
}
}
}
- return sightlyScript;
+ return sightlyScriptMetaInfo;
}
- private class SightlyScript {
+ private static class SightlyScriptMetaInfo {
String encoding;
- String className;
- String path;
long lastModified;
- public SightlyScript(String path, String encoding, long lastModified) {
+ public SightlyScriptMetaInfo(String encoding, long lastModified) {
this.encoding = encoding;
- className = Utils.getJavaNameFromPath(path);
- this.path = path;
this.lastModified = lastModified;
}
}
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/BinaryOperator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/BinaryOperator.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/BinaryOperator.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/BinaryOperator.java
Thu Jan 21 17:20:05 2016
@@ -142,8 +142,7 @@ public enum BinaryOperator {
I_DIV {
@Override
public Object eval(Object left, Object right) {
- return adjust(RenderUtils.toNumber(left).intValue()
- / RenderUtils.toNumber(right).intValue());
+ return RenderUtils.toNumber(left).intValue() /
RenderUtils.toNumber(right).intValue();
}
},
@@ -158,10 +157,10 @@ public enum BinaryOperator {
};
- public static String OBJECT_NAME = BinaryOperator.class.getName();
- public static String METHOD_STRICT_EQ = "strictEq";
- public static String METHOD_LEQ = "leq";
- public static String METHOD_LT = "lt";
+ public static final String OBJECT_NAME = BinaryOperator.class.getName();
+ public static final String METHOD_STRICT_EQ = "strictEq";
+ public static final String METHOD_LEQ = "leq";
+ public static final String METHOD_LT = "lt";
private static boolean eq(Object left, Object right) {
if (left == null) {
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/ElementContext.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/ElementContext.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/ElementContext.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/ElementContext.java
Thu Jan 21 17:20:05 2016
@@ -103,5 +103,23 @@ public class ElementContext {
}
return 1;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof PrioritizedInvoke)) {
+ return false;
+ }
+ PrioritizedInvoke that = (PrioritizedInvoke) obj;
+ if (this.priority == that.priority) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ assert false : "hashCode not designed";
+ return 42;
+ }
}
}
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/DeadCodeRemoval.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/DeadCodeRemoval.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/DeadCodeRemoval.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/DeadCodeRemoval.java
Thu Jan 21 17:20:05 2016
@@ -69,7 +69,20 @@ public class DeadCodeRemoval extends Tra
@Override
public void visit(VariableBinding.Start variableBindingStart) {
- Boolean truthValue =
decodeConstantBool(variableBindingStart.getExpression());
+ Boolean truthValue = null;
+ ExpressionNode node = variableBindingStart.getExpression();
+ if (node instanceof StringConstant) {
+ truthValue = RenderUtils.toBoolean(((StringConstant)
node).getText());
+ }
+ if (node instanceof BooleanConstant) {
+ truthValue = ((BooleanConstant) node).getValue();
+ }
+ if (node instanceof NumericConstant) {
+ truthValue = RenderUtils.toBoolean(((NumericConstant)
node).getValue());
+ }
+ if (node instanceof NullLiteral) {
+ truthValue = RenderUtils.toBoolean(null);
+ }
tracker.pushVariable(variableBindingStart.getVariableName(),
truthValue);
outStream.emit(variableBindingStart);
}
@@ -108,7 +121,7 @@ public class DeadCodeRemoval extends Tra
@Override
protected Boolean assignDefault(Command command) {
- return null;
+ return false;
}
@Override
@@ -116,19 +129,4 @@ public class DeadCodeRemoval extends Tra
outStream.emit(command);
}
- private Boolean decodeConstantBool(ExpressionNode node) {
- if (node instanceof StringConstant) {
- return RenderUtils.toBoolean(((StringConstant) node).getText());
- }
- if (node instanceof BooleanConstant) {
- return ((BooleanConstant) node).getValue();
- }
- if (node instanceof NumericConstant) {
- return RenderUtils.toBoolean(((NumericConstant) node).getValue());
- }
- if (node instanceof NullLiteral) {
- return RenderUtils.toBoolean(null);
- }
- return null;
- }
}
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/visitor/CodeGenVisitor.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/visitor/CodeGenVisitor.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/visitor/CodeGenVisitor.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/visitor/CodeGenVisitor.java
Thu Jan 21 17:20:05 2016
@@ -31,6 +31,7 @@ import org.apache.sling.scripting.sightl
import org.apache.sling.scripting.sightly.impl.compiled.UnitBuilder;
import org.apache.sling.scripting.sightly.impl.compiled.VariableAnalyzer;
import org.apache.sling.scripting.sightly.impl.compiled.VariableDescriptor;
+import org.apache.sling.scripting.sightly.impl.compiled.VariableScope;
import org.apache.sling.scripting.sightly.impl.compiler.ris.CommandVisitor;
import
org.apache.sling.scripting.sightly.impl.compiler.ris.command.Conditional;
import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Loop;
@@ -78,25 +79,23 @@ public class CodeGenVisitor implements C
}
private void initVariable(VariableDescriptor descriptor, JavaSource
initSource) {
- switch (descriptor.getScope()) {
- case DYNAMIC:
- initSource.beginAssignment(descriptor.getAssignedName());
- if (descriptor.isTemplateVariable()) {
- initSource.startCall(SourceGenConstants.RECORD_GET_VALUE);
- } else if
(unitParameters.contains(descriptor.getOriginalName().toLowerCase())) {
-
initSource.startMethodCall(SourceGenConstants.ARGUMENTS_FIELD,
SourceGenConstants.BINDINGS_GET_METHOD);
- } else {
-
initSource.startMethodCall(SourceGenConstants.BINDINGS_FIELD,
SourceGenConstants.BINDINGS_GET_METHOD);
- }
- initSource.stringLiteral(descriptor.getOriginalName())
- .endCall()
- .endStatement();
- break;
- case GLOBAL:
- initSource.beginAssignment(descriptor.getAssignedName())
- .nullLiteral()
- .endStatement();
- break;
+ VariableScope scope = descriptor.getScope();
+ if (scope == VariableScope.DYNAMIC) {
+ initSource.beginAssignment(descriptor.getAssignedName());
+ if (descriptor.isTemplateVariable()) {
+ initSource.startCall(SourceGenConstants.RECORD_GET_VALUE);
+ } else if
(unitParameters.contains(descriptor.getOriginalName().toLowerCase())) {
+ initSource.startMethodCall(SourceGenConstants.ARGUMENTS_FIELD,
SourceGenConstants.BINDINGS_GET_METHOD);
+ } else {
+ initSource.startMethodCall(SourceGenConstants.BINDINGS_FIELD,
SourceGenConstants.BINDINGS_GET_METHOD);
+ }
+ initSource.stringLiteral(descriptor.getOriginalName())
+ .endCall()
+ .endStatement();
+ } else if (scope == VariableScope.GLOBAL) {
+ initSource.beginAssignment(descriptor.getAssignedName())
+ .nullLiteral()
+ .endStatement();
}
String listCoercionVar = descriptor.getListCoercion();
if (listCoercionVar != null) {
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java
Thu Jan 21 17:20:05 2016
@@ -42,13 +42,13 @@ import org.apache.sling.scripting.api.Ab
public class SightlyScriptEngineFactory extends AbstractScriptEngineFactory {
@Reference
- private UnitLoader unitLoader = null;
+ private UnitLoader unitLoader;
@Reference
- private ExtensionRegistryService extensionRegistryService = null;
+ private ExtensionRegistryService extensionRegistryService;
@Reference
- private DynamicClassLoaderManager dynamicClassLoaderManager = null;
+ private DynamicClassLoaderManager dynamicClassLoaderManager;
public final static String SHORT_NAME = "sightly";
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java
Thu Jan 21 17:20:05 2016
@@ -180,7 +180,7 @@ public class UnitLoader {
if (url == null) {
throw new SightlyException("No bundle resource resides at " +
path);
}
- inputStream =
componentContext.getBundleContext().getBundle().getEntry(path).openStream();
+ inputStream = url.openStream();
return IOUtils.toString(inputStream);
} catch (IOException e) {
throw new SightlyException("Java class templates could not be
found");
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java
Thu Jan 21 17:20:05 2016
@@ -229,10 +229,6 @@ public class ResourceRuntimeExtension im
return null;
}
- private String getOption(Map<String, Object> options, String property) {
- return (String) options.get(property);
- }
-
private String getOption(String option, Map<String, Object> options,
String defaultValue) {
if (options.containsKey(option)) {
return (String) options.get(option);
@@ -329,4 +325,4 @@ public class ResourceRuntimeExtension im
}
return sb.toString();
}
-}
\ No newline at end of file
+}
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
Thu Jan 21 17:20:05 2016
@@ -62,7 +62,7 @@ import org.osgi.framework.Constants;
public class RenderUnitProvider implements UseProvider {
@Reference
- private UnitLoader unitLoader = null;
+ private UnitLoader unitLoader;
@Override
public ProviderOutcome provide(String identifier, RenderContext
renderContext, Bindings arguments) {
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderUnit.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderUnit.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderUnit.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderUnit.java
Thu Jan 21 17:20:05 2016
@@ -84,7 +84,6 @@ public abstract class RenderUnit impleme
throw new SightlyException("data-sly-call: " +
templateObj.getClass().getName() + " does not represent a Sightly template.");
}
RenderUnit unit = (RenderUnit) templateObj;
- SlingScriptHelper ssh = (SlingScriptHelper)
renderContext.getBindings().get(SlingBindings.SLING);
Map<String, Object> argumentsMap = RenderUtils.toMap(argsObj);
Bindings arguments = new
SimpleBindings(Collections.unmodifiableMap(argumentsMap));
unit.render(renderContext, arguments);
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/URIManipulationFilter.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/URIManipulationFilter.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/URIManipulationFilter.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/URIManipulationFilter.java
Thu Jan 21 17:20:05 2016
@@ -102,9 +102,6 @@ public class URIManipulationFilter exten
ExtensionUtils.checkArgumentCount(URI_MANIPULATION_FUNCTION,
arguments, 2);
String uriString = RenderUtils.toString(arguments[0]);
Map<String, Object> options = RenderUtils.toMap(arguments[1]);
- if (uriString == null) {
- return null;
- }
StringBuilder sb = new StringBuilder();
PathInfo pathInfo = new PathInfo(uriString);
uriAppender(sb, SCHEME, options, pathInfo.getScheme());
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java
Thu Jan 21 17:20:05 2016
@@ -222,6 +222,8 @@ public final class HtmlParser {
parseSubState = 0;
}
break;
+ default:
+ break;
}
break;
case COMMENT:
@@ -289,6 +291,8 @@ public final class HtmlParser {
parseSubState = 2;
}
break;
+ default:
+ break;
}
break;
@@ -375,6 +379,8 @@ public final class HtmlParser {
parseState = PARSE_STATE.OUTSIDE;
}
break;
+ default:
+ break;
}
break;
@@ -397,6 +403,8 @@ public final class HtmlParser {
}
exprType = EXPR_NONE;
break;
+ default:
+ break;
}
}
if (start < end) {
Modified:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/PluginCallInfo.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/PluginCallInfo.java?rev=1726029&r1=1726028&r2=1726029&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/PluginCallInfo.java
(original)
+++
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/PluginCallInfo.java
Thu Jan 21 17:20:05 2016
@@ -18,6 +18,8 @@
******************************************************************************/
package org.apache.sling.scripting.sightly.impl.plugin;
+import java.util.Arrays;
+
/**
* Data related to a plugin call
*/
@@ -28,7 +30,7 @@ public class PluginCallInfo {
public PluginCallInfo(String name, String[] arguments) {
this.name = name;
- this.arguments = arguments;
+ this.arguments = Arrays.copyOf(arguments, arguments.length);
}
/**
@@ -44,6 +46,6 @@ public class PluginCallInfo {
* @return a possibly empty array of args
*/
public String[] getArguments() {
- return arguments;
+ return Arrays.copyOf(arguments, arguments.length);
}
}
Added:
sling/trunk/bundles/scripting/sightly/engine/src/test/resources/findbugs-exclude.xml
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/test/resources/findbugs-exclude.xml?rev=1726029&view=auto
==============================================================================
---
sling/trunk/bundles/scripting/sightly/engine/src/test/resources/findbugs-exclude.xml
(added)
+++
sling/trunk/bundles/scripting/sightly/engine/src/test/resources/findbugs-exclude.xml
Thu Jan 21 17:20:05 2016
@@ -0,0 +1,21 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<FindBugsFilter>
+ <Match>
+ <Package
name="org.apache.sling.scripting.sightly.impl.parser.expr.generated"/>
+ </Match>
+</FindBugsFilter>