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>



Reply via email to