Author: hlship
Date: Tue Oct 11 14:16:21 2011
New Revision: 1181801

URL: http://svn.apache.org/viewvc?rev=1181801&view=rev
Log:
TAP5-1687: ImportWorker (responsible for @Import) creates improper advice for 
importing stacks, calling invocation.proceed() too often

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java?rev=1181801&r1=1181800&r2=1181801&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
 Tue Oct 11 14:16:21 2011
@@ -14,8 +14,6 @@
 
 package org.apache.tapestry5.internal.transform;
 
-import java.util.Locale;
-
 import org.apache.tapestry5.Asset;
 import org.apache.tapestry5.ComponentResources;
 import org.apache.tapestry5.annotations.Import;
@@ -26,23 +24,18 @@ import org.apache.tapestry5.func.Worker;
 import org.apache.tapestry5.ioc.Resource;
 import org.apache.tapestry5.ioc.services.SymbolSource;
 import org.apache.tapestry5.model.MutableComponentModel;
-import org.apache.tapestry5.plastic.ComputedValue;
-import org.apache.tapestry5.plastic.FieldHandle;
-import org.apache.tapestry5.plastic.InstanceContext;
-import org.apache.tapestry5.plastic.MethodAdvice;
-import org.apache.tapestry5.plastic.MethodInvocation;
-import org.apache.tapestry5.plastic.PlasticClass;
-import org.apache.tapestry5.plastic.PlasticField;
-import org.apache.tapestry5.plastic.PlasticMethod;
+import org.apache.tapestry5.plastic.*;
 import org.apache.tapestry5.services.AssetSource;
 import org.apache.tapestry5.services.TransformConstants;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
 import org.apache.tapestry5.services.transform.TransformationSupport;
 
+import java.util.Locale;
+
 /**
  * Implements the {@link Import} annotation, both at the class and at the 
method level.
- * 
+ *
  * @since 5.2.0
  */
 public class ImportWorker implements ComponentClassTransformWorker2
@@ -66,7 +59,9 @@ public class ImportWorker implements Com
         public void work(Asset asset)
         {
             javascriptSupport.importStylesheet(asset);
-        };
+        }
+
+        ;
     };
 
     public ImportWorker(JavaScriptSupport javascriptSupport, SymbolSource 
symbolSource, AssetSource assetSource)
@@ -108,7 +103,7 @@ public class ImportWorker implements Com
     }
 
     private void decorateMethod(PlasticClass componentClass, 
MutableComponentModel model, PlasticMethod method,
-            Import annotation)
+                                Import annotation)
     {
         importStacks(method, annotation.stack());
 
@@ -132,27 +127,27 @@ public class ImportWorker implements Com
                 for (String stack : stacks)
                 {
                     javascriptSupport.importStack(stack);
-
-                    invocation.proceed();
                 }
+
+                invocation.proceed();
             }
         };
     }
 
     private void importLibraries(PlasticClass plasticClass, 
MutableComponentModel model, PlasticMethod method,
-            String[] paths)
+                                 String[] paths)
     {
         decorateMethodWithOperation(plasticClass, model, method, paths, 
importLibrary);
     }
 
     private void importStylesheets(PlasticClass plasticClass, 
MutableComponentModel model, PlasticMethod method,
-            String[] paths)
+                                   String[] paths)
     {
         decorateMethodWithOperation(plasticClass, model, method, paths, 
importStylesheet);
     }
 
     private void decorateMethodWithOperation(PlasticClass componentClass, 
MutableComponentModel model,
-            PlasticMethod method, String[] paths, Worker<Asset> operation)
+                                             PlasticMethod method, String[] 
paths, Worker<Asset> operation)
     {
         if (paths.length == 0)
             return;
@@ -178,7 +173,7 @@ public class ImportWorker implements Com
     }
 
     private void initializeAssetsFromPaths(PlasticClass componentClass, final 
Resource baseResource,
-            final String[] expandedPaths, final PlasticField assetsField)
+                                           final String[] expandedPaths, final 
PlasticField assetsField)
     {
         assetsField.injectComputed(new ComputedValue<Asset[]>()
         {
@@ -203,7 +198,7 @@ public class ImportWorker implements Com
     }
 
     private void addMethodAssetOperationAdvice(PlasticMethod method, final 
FieldHandle access,
-            final Worker<Asset> operation)
+                                               final Worker<Asset> operation)
     {
         method.addAdvice(new MethodAdvice()
         {


Reply via email to