You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "Rich Feit (JIRA)" <de...@beehive.apache.org> on 2005/08/30 18:49:04 UTC

[jira] Created: (BEEHIVE-901) Cannot forward to an inherited simple action

Cannot forward to an inherited simple action
--------------------------------------------

         Key: BEEHIVE-901
         URL: http://issues.apache.org/jira/browse/BEEHIVE-901
     Project: Beehive
        Type: Bug
  Components: NetUI  
    Versions: v1m1    
 Reporter: Rich Feit
 Assigned to: Rich Feit 
     Fix For: V1


Repro:

Create and build the following page flow controllers:

---
@Jpf.Controller(
    simpleActions={
        @Jpf.SimpleAction(name="simpleAction", path="index.jsp")
    }
)
public abstract class BaseController extends PageFlowController
{
}
---
@Jpf.Controller(
    simpleActions={
        @Jpf.SimpleAction(name="begin", action="simpleAction")
    }
)
public class DerivedController extends BaseController
{
}
---

EXPECTED: compiles file
ACTUAL: get the following error:

      [apt] C:\temp\todelete\inherit\WEB-INF\.tmpbeansrc\pageFlowCore\inheritActions\derived\Controller.java:14: Action "simpleAction" was not found.
      [apt] public class Controller extends pageFlowCore.inheritActions.base.Controller
      [apt]        ^
      [apt] 1 error

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Closed: (BEEHIVE-901) Cannot forward to an inherited simple action

Posted by "Rich Feit (JIRA)" <de...@beehive.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-901?page=all ]
     
Rich Feit closed BEEHIVE-901:
-----------------------------

    Resolution: Fixed
     Assign To:     (was: Rich Feit)

Fixed with revision 264849; submitted an automated test.  Closing.

> Cannot forward to an inherited simple action
> --------------------------------------------
>
>          Key: BEEHIVE-901
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-901
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: v1m1
>     Reporter: Rich Feit
>      Fix For: V1

>
> Repro:
> Create and build the following page flow controllers:
> ---
> @Jpf.Controller(
>     simpleActions={
>         @Jpf.SimpleAction(name="simpleAction", path="index.jsp")
>     }
> )
> public abstract class BaseController extends PageFlowController
> {
> }
> ---
> @Jpf.Controller(
>     simpleActions={
>         @Jpf.SimpleAction(name="begin", action="simpleAction")
>     }
> )
> public class DerivedController extends BaseController
> {
> }
> ---
> EXPECTED: compiles file
> ACTUAL: get the following error:
>       [apt] C:\temp\todelete\inherit\WEB-INF\.tmpbeansrc\pageFlowCore\inheritActions\derived\Controller.java:14: Action "simpleAction" was not found.
>       [apt] public class Controller extends pageFlowCore.inheritActions.base.Controller
>       [apt]        ^
>       [apt] 1 error

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (BEEHIVE-901) Cannot forward to an inherited simple action

Posted by "Rich Feit (JIRA)" <de...@beehive.apache.org>.
    [ http://issues.apache.org/jira/browse/BEEHIVE-901?page=comments#action_12320602 ] 

Rich Feit commented on BEEHIVE-901:
-----------------------------------

The diff is actually this (moving a loop inside of another loop):

Index: compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java
===================================================================
--- compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java (revision 264164)
+++ compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java (working copy)
@@ -66,7 +66,7 @@
                 int extensionPos = stringValue.lastIndexOf( ACTION_EXTENSION_DOT );
                 String actionMethodName = stringValue.substring( 0, extensionPos );
                 FlowControllerInfo fcInfo = getFlowControllerInfo();
-                boolean foundIt = actionExists( actionMethodName, outerType, null, getEnv(), fcInfo, false );
+                boolean foundIt = actionExists( actionMethodName, outerType, null, getEnv(), fcInfo, true );

                 if ( ! foundIt && actionMethodName.length() > 0 )
                 {
@@ -83,7 +83,7 @@
                         if ( sfTypeDecl != null )
                         {
                             actionMethodName = actionMethodName.substring( dot + 1 );
-                            foundIt = actionExists( actionMethodName, sfTypeDecl, null, getEnv(), fcInfo, false );
+                            foundIt = actionExists( actionMethodName, sfTypeDecl, null, getEnv(), fcInfo, true );
                         }
                     }
                 }
@@ -146,34 +146,32 @@
                 }
             }

-            ClassType superType = classDecl.getSuperclass();
-            classDecl = superType != null ? superType.getClassTypeDeclaration() : null;
-        } while ( classDecl != null );
-
-        //
-        // Next, look through the simple actions (annotations).
-        //
-        MergedControllerAnnotation mca = fcInfo.getMergedControllerAnnotation();
-        Collection simpleActionAnnotations =
-                checkInheritedActions
-                ? mca.getSimpleActions()
-                : CompilerUtils.getAnnotationArrayValue( type, CONTROLLER_TAG_NAME, SIMPLE_ACTIONS_ATTR, true );
-
-        if ( simpleActionAnnotations != null )
-        {
-            for ( Iterator ii = simpleActionAnnotations.iterator(); ii.hasNext(); )
+            //
+            // Next, look through the simple actions (annotations).
+            //
+            Collection simpleActionAnnotations =
+                CompilerUtils.getAnnotationArrayValue( classDecl, CONTROLLER_TAG_NAME, SIMPLE_ACTIONS_ATTR, true );
+
+            if ( simpleActionAnnotations != null )
             {
-                AnnotationInstance ann = ( AnnotationInstance ) ii.next();
-                String name = CompilerUtils.getString( ann, NAME_ATTR, false );
-
-                if ( actionName.equals( name )
-                     && ! CompilerUtils.annotationsAreEqual( ann, annotationToIgnore, false, env ) )
+                for ( Iterator i = simpleActionAnnotations.iterator(); i.hasNext(); )
                 {
-                    return true;
+                    AnnotationInstance ann = ( AnnotationInstance ) i.next();
+                    String name = CompilerUtils.getString( ann, NAME_ATTR, false );
+
+                    if ( actionName.equals( name )
+                            && ! CompilerUtils.annotationsAreEqual( ann, annotationToIgnore, false, env ) )
+                    {
+                        return true;
+                    }
                 }
             }
-        }
+
+            ClassType superType = classDecl.getSuperclass();
+            classDecl = superType != null ? superType.getClassTypeDeclaration() : null;
+        } while ( checkInheritedActions && classDecl != null );

+
         return false;
     }
 }

> Cannot forward to an inherited simple action
> --------------------------------------------
>
>          Key: BEEHIVE-901
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-901
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: v1m1
>     Reporter: Rich Feit
>     Assignee: Rich Feit
>      Fix For: V1

>
> Repro:
> Create and build the following page flow controllers:
> ---
> @Jpf.Controller(
>     simpleActions={
>         @Jpf.SimpleAction(name="simpleAction", path="index.jsp")
>     }
> )
> public abstract class BaseController extends PageFlowController
> {
> }
> ---
> @Jpf.Controller(
>     simpleActions={
>         @Jpf.SimpleAction(name="begin", action="simpleAction")
>     }
> )
> public class DerivedController extends BaseController
> {
> }
> ---
> EXPECTED: compiles file
> ACTUAL: get the following error:
>       [apt] C:\temp\todelete\inherit\WEB-INF\.tmpbeansrc\pageFlowCore\inheritActions\derived\Controller.java:14: Action "simpleAction" was not found.
>       [apt] public class Controller extends pageFlowCore.inheritActions.base.Controller
>       [apt]        ^
>       [apt] 1 error

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (BEEHIVE-901) Cannot forward to an inherited simple action

Posted by "Rich Feit (JIRA)" <de...@beehive.apache.org>.
    [ http://issues.apache.org/jira/browse/BEEHIVE-901?page=comments#action_12320598 ] 

Rich Feit commented on BEEHIVE-901:
-----------------------------------

These are the diffs for the fix.

Index: compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java
===================================================================
--- compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java (revision 264164)
+++ compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java (working copy)
@@ -66,7 +66,7 @@
                 int extensionPos = stringValue.lastIndexOf( ACTION_EXTENSION_DOT );
                 String actionMethodName = stringValue.substring( 0, extensionPos );
                 FlowControllerInfo fcInfo = getFlowControllerInfo();
-                boolean foundIt = actionExists( actionMethodName, outerType, null, getEnv(), fcInfo, false );
+                boolean foundIt = actionExists( actionMethodName, outerType, null, getEnv(), fcInfo, true );

                 if ( ! foundIt && actionMethodName.length() > 0 )
                 {
@@ -83,7 +83,7 @@
                         if ( sfTypeDecl != null )
                         {
                             actionMethodName = actionMethodName.substring( dot + 1 );
-                            foundIt = actionExists( actionMethodName, sfTypeDecl, null, getEnv(), fcInfo, false );
+                            foundIt = actionExists( actionMethodName, sfTypeDecl, null, getEnv(), fcInfo, true );
                         }
                     }
                 }
@@ -148,7 +148,7 @@

             ClassType superType = classDecl.getSuperclass();
             classDecl = superType != null ? superType.getClassTypeDeclaration() : null;
-        } while ( classDecl != null );
+        } while ( checkInheritedActions && classDecl != null );

         //
         // Next, look through the simple actions (annotations).

> Cannot forward to an inherited simple action
> --------------------------------------------
>
>          Key: BEEHIVE-901
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-901
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: v1m1
>     Reporter: Rich Feit
>     Assignee: Rich Feit
>      Fix For: V1

>
> Repro:
> Create and build the following page flow controllers:
> ---
> @Jpf.Controller(
>     simpleActions={
>         @Jpf.SimpleAction(name="simpleAction", path="index.jsp")
>     }
> )
> public abstract class BaseController extends PageFlowController
> {
> }
> ---
> @Jpf.Controller(
>     simpleActions={
>         @Jpf.SimpleAction(name="begin", action="simpleAction")
>     }
> )
> public class DerivedController extends BaseController
> {
> }
> ---
> EXPECTED: compiles file
> ACTUAL: get the following error:
>       [apt] C:\temp\todelete\inherit\WEB-INF\.tmpbeansrc\pageFlowCore\inheritActions\derived\Controller.java:14: Action "simpleAction" was not found.
>       [apt] public class Controller extends pageFlowCore.inheritActions.base.Controller
>       [apt]        ^
>       [apt] 1 error

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira