You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@click.apache.org by "Gilberto C. Andrade" <gi...@gmail.com> on 2008/11/03 14:35:19 UTC

java.lang.StringIndexOutOfBoundsException: String index out of range: 0

[environment]
gilberto@SUGEP-DMASI:~> mvn -v
Maven version: 2.0.9
Java version: 1.5.0_15
OS name: "linux" version: "2.6.22.19-3-default" arch: "i386" Family: "unix"
gilberto@SUGEP-DMASI:~> ll .m2/repository/net/sf/click/click/1.5/
total 2036
drwxr-xr-x 2 gilberto users    4096 2008-11-03 09:31 .
drwxr-xr-x 8 gilberto users    4096 2008-11-03 09:30 ..
-rw-r--r-- 1 gilberto users 2059523 2008-11-03 09:31 click-1.5.jar
-rw-r--r-- 1 gilberto users      40 2008-11-03 09:31 click-1.5.jar.sha1
-rw-r--r-- 1 gilberto users    2775 2008-11-03 09:30 click-1.5.pom
-rw-r--r-- 1 gilberto users      40 2008-11-03 09:30 click-1.5.pom.sha1
gilberto@SUGEP-DMASI:~>
[/environment]

Hi, congratulations for final release!

I'm getting this exception:

DEBUG - BaseService.insert(128) | Inserção realizada com sucesso.
DEBUG - EditUnidadeMedida.onOkClick(88) | Operação de inserção realizada.
[Click] [error] handleException:
java.lang.StringIndexOutOfBoundsException: String index out of range:
0
        at java.lang.String.charAt(String.java:558)
        at net.sf.click.Page.setRedirect(Page.java:982)
        at com.gilbertoca.gfi.page.EditUnidadeMedida.onOkClick(EditUnidadeMedida.java:92)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at net.sf.click.util.ClickUtils.invokeListener(ClickUtils.java:1532)
        at net.sf.click.util.ActionListenerAdaptor.onAction(ActionListenerAdaptor.java:43)
        at net.sf.click.ControlRegistry.fireActionEvents(ControlRegistry.java:147)
        at net.sf.click.ClickServlet.processPage(ClickServlet.java:563)
        at net.sf.click.ClickServlet.handleRequest(ClickServlet.java:331)
        at net.sf.click.ClickServlet.doPost(ClickServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at net.sf.click.extras.filter.CompressionFilter.doFilter(CompressionFilter.java:188)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
[Click] [info ] renderTemplate: /click/error.htm - 10 ms
[Click] [info ] handleRequest:  /edit-unidade-medida.htm - 776 ms

Here is my code:

            String referrer = referrerField.getValue();
            if (referrer != null) {
                setRedirect(referrer); <===============================
            } else {
                setRedirect(HomePage.class);
            }
            return true;

Thanks in advance,

Gilberto

Re: java.lang.StringIndexOutOfBoundsException: String index out of range: 0

Posted by "Gilberto C. Andrade" <gi...@gmail.com>.
On Mon, Nov 3, 2008 at 1:16 PM, Bob Schellink <sa...@gmail.com> wrote:
> Hi Gilberto,
>
>
>>            String referrer = referrerField.getValue();
>>            if (referrer != null) {
>>                setRedirect(referrer); <===============================
>>            } else {
>>                setRedirect(HomePage.class);
>>            }
>>            return true;
>
>
> I think what happens here is referrerField returns an empty string "".
> Probably not where you would like to redirect to.
>
> You should probably change the code slightly to redirect to HomePage if the
> referrer is null or empty:
>
>
> String referrer = referrerField.getValue();
> if (StringUtils.isNotBlank(referrer)) {
>    setRedirect(referrer);
> ...
>
Yes, you're correct! One exception two line before was causing
(referrerField) it.
Sorry, sometimes the error is on your face but you don't see anything!

Thanks,

Gilberto

Re: java.lang.StringIndexOutOfBoundsException: String index out of range: 0

Posted by Bob Schellink <sa...@gmail.com>.
Hi Gilberto,


>             String referrer = referrerField.getValue();
>             if (referrer != null) {
>                 setRedirect(referrer); <===============================
>             } else {
>                 setRedirect(HomePage.class);
>             }
>             return true;


I think what happens here is referrerField returns an empty string "". 
Probably not where you would like to redirect to.

You should probably change the code slightly to redirect to HomePage 
if the referrer is null or empty:


String referrer = referrerField.getValue();
if (StringUtils.isNotBlank(referrer)) {
     setRedirect(referrer);
...


kind regards

bob