You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by dhning <dh...@gaonline.com.cn> on 2008/04/03 12:25:30 UTC

[T5] Interesting bug of link render?

Hi,

I get a intersting problem:

Start.java:
public class Start
{
    private int _result;
    public int getResult() {
        return this._result;
    }

    public void setResult(int result) {
        _result = result;
    }    
    int onPassivate() {
        return _result;
    }
    void onActivate(int result) {
        _result = result;
    }
}

Start.tml
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
    <head>
        <title>t5first Start Page</title>
    </head>
    <body>
        <h1>t5first Start Page</h1>

            <a href="#" t:type="actionlink" t:id="view">View</a>

    </body>
</html>

Steps: 
When inputting url such as /t5start/start, no problem. But when I input url /t5start/start/ (pay attention to this redundant /), the href of actionlink component will be rendered as "http://localhost:8080/t5first/start/start.view?t:ac=0", then I click on "view" link, exception happens.
a.. org.apache.tapestry.runtime.ComponentEventException 
Exception in method com.yanziwang.pages.Start.onActivate(int) (at Start.java:34), parameter #1: Coercion of start.view to type java.lang.Integer (via String --> Long, Long --> Integer) failed: For input string: "start.view"
  context 
    a.. start.view
  eventType 
  activate
a.. java.lang.NumberFormatException 
For input string: "start.view"

The correct url of view component should be "http://localhost:8080/t5first/start.view?t:ac=0"

How to handle such problems, please help.

Thanks!
DH

Re: [T5] Interesting bug of link render?

Posted by Ted Steen <te...@gmail.com>.
A fix is committed, this issue will close when the commit goes through.
https://issues.apache.org/jira/browse/TAPESTRY-2333

2008/4/4, Howard Lewis Ship <hl...@gmail.com>:
> I think it's a bug; I believe there's an error related to the
>  RequestPathOptimizer ... the code that generates relative URLs from
>  Link instances; I think there's a bug there related to a trailing
>  slash in the request.  I noticed it because with a trailing slash,
>  relative URLs to assets are often broken.
>
>
>  On Fri, Apr 4, 2008 at 10:16 AM, Peter Beshai <pe...@gmail.com> wrote:
>  > I think this may work (as a workaround at least):
>  >
>  >  public class Start
>  >  {
>  >    private Integer _result;
>  >    public Integer getResult() {
>  >        return _result;
>  >    }
>  >
>  >    public void setResult(Integer result) {
>  >        _result = result;
>  >    }
>  >    Integer onPassivate() {
>  >        return _result;
>  >    }
>  >    Object onActivate(Integer result) {
>  >        _result = result;
>  >        if(result != null)
>  >              return null; // continue activating the page with context
>  >         else
>  >               return Start.class; // since the context is invalid, return
>  >  the page without context. This may happen automatically if you just change
>  >  the int to Integer and leave this method untouched, but I'm unsure.
>  >    }
>  >  }
>  >
>  >
>  >  Peter Beshai
>  >
>  >
>  >
>  >
>  >  On Thu, Apr 3, 2008 at 6:25 AM, dhning <dh...@gaonline.com.cn> wrote:
>  >
>  >  > Hi,
>  >  >
>  >  > I get a intersting problem:
>  >  >
>  >  > Start.java:
>  >  > public class Start
>  >  > {
>  >  >    private int _result;
>  >  >    public int getResult() {
>  >  >        return this._result;
>  >  >    }
>  >  >
>  >  >    public void setResult(int result) {
>  >  >        _result = result;
>  >  >    }
>  >  >    int onPassivate() {
>  >  >        return _result;
>  >  >    }
>  >  >    void onActivate(int result) {
>  >  >        _result = result;
>  >  >    }
>  >  > }
>  >  >
>  >  > Start.tml
>  >  > <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>  >  >    <head>
>  >  >        <title>t5first Start Page</title>
>  >  >    </head>
>  >  >    <body>
>  >  >        <h1>t5first Start Page</h1>
>  >  >
>  >  >            <a href="#" t:type="actionlink" t:id="view">View</a>
>  >  >
>  >  >    </body>
>  >  > </html>
>  >  >
>  >  > Steps:
>  >  > When inputting url such as /t5start/start, no problem. But when I input
>  >  > url /t5start/start/ (pay attention to this redundant /), the href of
>  >  > actionlink component will be rendered as "
>  >  > http://localhost:8080/t5first/start/start.view?t:ac=0", then I click on
>  >  > "view" link, exception happens.
>  >  > a.. org.apache.tapestry.runtime.ComponentEventException
>  >  > Exception in method com.yanziwang.pages.Start.onActivate(int) (at
>  >  > Start.java:34), parameter #1: Coercion of start.view to type
>  >  > java.lang.Integer (via String --> Long, Long --> Integer) failed: For input
>  >  > string: "start.view"
>  >  >  context
>  >  >    a.. start.view
>  >  >  eventType
>  >  >  activate
>  >  > a.. java.lang.NumberFormatException
>  >  > For input string: "start.view"
>  >  >
>  >  > The correct url of view component should be "
>  >  > http://localhost:8080/t5first/start.view?t:ac=0"
>  >  >
>  >  > How to handle such problems, please help.
>  >  >
>  >  > Thanks!
>  >  > DH
>  >
>
>
>
>
> --
>  Howard M. Lewis Ship
>
>  Creator Apache Tapestry and Apache HiveMind
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>  For additional commands, e-mail: users-help@tapestry.apache.org
>
>


-- 
/ted

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5] Interesting bug of link render?

Posted by Howard Lewis Ship <hl...@gmail.com>.
I think it's a bug; I believe there's an error related to the
RequestPathOptimizer ... the code that generates relative URLs from
Link instances; I think there's a bug there related to a trailing
slash in the request.  I noticed it because with a trailing slash,
relative URLs to assets are often broken.

On Fri, Apr 4, 2008 at 10:16 AM, Peter Beshai <pe...@gmail.com> wrote:
> I think this may work (as a workaround at least):
>
>  public class Start
>  {
>    private Integer _result;
>    public Integer getResult() {
>        return _result;
>    }
>
>    public void setResult(Integer result) {
>        _result = result;
>    }
>    Integer onPassivate() {
>        return _result;
>    }
>    Object onActivate(Integer result) {
>        _result = result;
>        if(result != null)
>              return null; // continue activating the page with context
>         else
>               return Start.class; // since the context is invalid, return
>  the page without context. This may happen automatically if you just change
>  the int to Integer and leave this method untouched, but I'm unsure.
>    }
>  }
>
>
>  Peter Beshai
>
>
>
>
>  On Thu, Apr 3, 2008 at 6:25 AM, dhning <dh...@gaonline.com.cn> wrote:
>
>  > Hi,
>  >
>  > I get a intersting problem:
>  >
>  > Start.java:
>  > public class Start
>  > {
>  >    private int _result;
>  >    public int getResult() {
>  >        return this._result;
>  >    }
>  >
>  >    public void setResult(int result) {
>  >        _result = result;
>  >    }
>  >    int onPassivate() {
>  >        return _result;
>  >    }
>  >    void onActivate(int result) {
>  >        _result = result;
>  >    }
>  > }
>  >
>  > Start.tml
>  > <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>  >    <head>
>  >        <title>t5first Start Page</title>
>  >    </head>
>  >    <body>
>  >        <h1>t5first Start Page</h1>
>  >
>  >            <a href="#" t:type="actionlink" t:id="view">View</a>
>  >
>  >    </body>
>  > </html>
>  >
>  > Steps:
>  > When inputting url such as /t5start/start, no problem. But when I input
>  > url /t5start/start/ (pay attention to this redundant /), the href of
>  > actionlink component will be rendered as "
>  > http://localhost:8080/t5first/start/start.view?t:ac=0", then I click on
>  > "view" link, exception happens.
>  > a.. org.apache.tapestry.runtime.ComponentEventException
>  > Exception in method com.yanziwang.pages.Start.onActivate(int) (at
>  > Start.java:34), parameter #1: Coercion of start.view to type
>  > java.lang.Integer (via String --> Long, Long --> Integer) failed: For input
>  > string: "start.view"
>  >  context
>  >    a.. start.view
>  >  eventType
>  >  activate
>  > a.. java.lang.NumberFormatException
>  > For input string: "start.view"
>  >
>  > The correct url of view component should be "
>  > http://localhost:8080/t5first/start.view?t:ac=0"
>  >
>  > How to handle such problems, please help.
>  >
>  > Thanks!
>  > DH
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5] Interesting bug of link render?

Posted by Peter Beshai <pe...@gmail.com>.
I think this may work (as a workaround at least):

public class Start
{
   private Integer _result;
   public Integer getResult() {
       return _result;
   }

   public void setResult(Integer result) {
       _result = result;
   }
   Integer onPassivate() {
       return _result;
   }
   Object onActivate(Integer result) {
       _result = result;
       if(result != null)
             return null; // continue activating the page with context
        else
              return Start.class; // since the context is invalid, return
the page without context. This may happen automatically if you just change
the int to Integer and leave this method untouched, but I'm unsure.
   }
}


Peter Beshai


On Thu, Apr 3, 2008 at 6:25 AM, dhning <dh...@gaonline.com.cn> wrote:

> Hi,
>
> I get a intersting problem:
>
> Start.java:
> public class Start
> {
>    private int _result;
>    public int getResult() {
>        return this._result;
>    }
>
>    public void setResult(int result) {
>        _result = result;
>    }
>    int onPassivate() {
>        return _result;
>    }
>    void onActivate(int result) {
>        _result = result;
>    }
> }
>
> Start.tml
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>    <head>
>        <title>t5first Start Page</title>
>    </head>
>    <body>
>        <h1>t5first Start Page</h1>
>
>            <a href="#" t:type="actionlink" t:id="view">View</a>
>
>    </body>
> </html>
>
> Steps:
> When inputting url such as /t5start/start, no problem. But when I input
> url /t5start/start/ (pay attention to this redundant /), the href of
> actionlink component will be rendered as "
> http://localhost:8080/t5first/start/start.view?t:ac=0", then I click on
> "view" link, exception happens.
> a.. org.apache.tapestry.runtime.ComponentEventException
> Exception in method com.yanziwang.pages.Start.onActivate(int) (at
> Start.java:34), parameter #1: Coercion of start.view to type
> java.lang.Integer (via String --> Long, Long --> Integer) failed: For input
> string: "start.view"
>  context
>    a.. start.view
>  eventType
>  activate
> a.. java.lang.NumberFormatException
> For input string: "start.view"
>
> The correct url of view component should be "
> http://localhost:8080/t5first/start.view?t:ac=0"
>
> How to handle such problems, please help.
>
> Thanks!
> DH