[ 
https://issues.apache.org/jira/browse/TAPESTRY-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship updated TAPESTRY-2184:
-------------------------------------------

    Summary: Invoking createActionLink() in code throws an NullPointerException 
even though using an ActionLink component in the template does not  (was: 
createActionLink cause exception when it is called in the page class,  but 
works when it is called from the template. )

So far I can't get this to fail the way you list it, short of:

Object[] onPassivate() { return new Object[] { null }; }

Which fails a bit differently:

java.lang.IllegalArgumentException: Parameter value was null.
        at 
org.apache.tapestry.ioc.internal.util.Defense.notNull(Defense.java:37)
        at 
org.apache.tapestry.internal.services.ContextValueEncoderImpl.toClient(ContextValueEncoderImpl.java:33)
        at 
$ContextValueEncoder_118435737b3.toClient($ContextValueEncoder_118435737b3.java)
        at 
org.apache.tapestry.internal.services.LinkFactoryImpl.toContextStrings(LinkFactoryImpl.java:239)
        at 
org.apache.tapestry.internal.services.LinkFactoryImpl.collectActivationContextForPage(LinkFactoryImpl.java:229)
        at 
org.apache.tapestry.internal.services.LinkFactoryImpl.createActionLink(LinkFactoryImpl.java:134)
        at 
$LinkFactory_118435737b9.createActionLink($LinkFactory_118435737b9.java)
        at 
org.apache.tapestry.internal.structure.PageImpl.createActionLink(PageImpl.java:156)
        at 
org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.createActionLink(InternalComponentResourcesImpl.java:123)
        at 
org.apache.tapestry.integration.app1.pages.ActionViaLinkDemo.getActionURL(ActionViaLinkDemo.java:34)
        at $PropertyConduit_11843573b25.get($PropertyConduit_11843573b25.java)
        at 
org.apache.tapestry.internal.bindings.PropBinding.get(PropBinding.java:54)


> Invoking createActionLink() in code throws an NullPointerException even 
> though using an ActionLink component in the template does not
> -------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAPESTRY-2184
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2184
>             Project: Tapestry
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.10
>            Reporter: Angelo Chen
>            Assignee: Howard M. Lewis Ship
>
> createActionLink cause exception when it is called in the page class(see 
> onActionFromDelete), but works when it is called from the template, this 
> works in 5.0.6 and 7, but fails in 5.0.9 and 5.0.10, sample code and error 
> follows:
> public class TestPage1 {
>     @Inject
>     private ComponentResources resources;
>     private Object[] _objs;
>     public Class onActivate(Object[] obj) { _objs = obj; return null; }
>     public Object[] onPassivate() { return _objs;}
>     Link onActionFromDelete(Long id) {
>         String x = getTheLink();        // this fails with exception
>         return null;
>     }
>     public String getTheLink() {
>         Link l = resources.createActionLink("DeleteConfirm", false);
>         return l.toURI();
>     }
>     public Object onDeleteConfirm(Long id) {
>          return null;
>     }
> }
> template:
> <body>
>     <t:ActionLink t:id="Delete" context="1">Delete me</t:ActionLink><br />
>     <p>My Link is : ${theLink}</p>
> </body>
> errors:
> java.lang.NullPointerException
> Stack trace
>         * 
> org.apache.tapestry.internal.services.LinkFactoryImpl.collectActivationContextForPage(LinkFactoryImpl.java:217)
>         * 
> org.apache.tapestry.internal.services.LinkFactoryImpl.createActionLink(LinkFactoryImpl.java:129)
>         * 
> org.apache.tapestry.internal.structure.PageImpl.createActionLink(PageImpl.java:156)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to