[Geoserver-devel] [jira] Created: (GEOS-2975) Providing an invalid or unreachable URL to GeoTIFF store causes RuntimeException

Providing an invalid or unreachable URL to GeoTIFF store causes RuntimeException
--------------------------------------------------------------------------------

                 Key: GEOS-2975
                 URL: http://jira.codehaus.org/browse/GEOS-2975
             Project: GeoServer
          Issue Type: Bug
    Affects Versions: 2.0-alpha2
         Environment: Ubuntu Jaunty
            Reporter: Tim Coulter
            Assignee: Andrea Aime

When providing an invalid or unreachable URL while adding a GeoTIFF store, Geoserver throws a RuntimeException.

Steps to reproduce:
1) Login to Geosever and click on the Stores link on the left hand side of the page.
2) Scroll down to the bottom of the stores list, and select an item from within the "Add new store to workspace". I used the "topp" workspace.
3) When shown the list of store types, click the GeoTIFF link under the Raster Data Sources heading.
4) On the resulting page, enter an invalid or unreachable URL in the "URL" field. I used "file:coverages/img_sample/Pk50095.ti", which is a URL pointing to the Pk50095 tif file, though with the last character removed.
5) Click the "Save" button, and notice you are shown the first RuntimeException shown below.

Discussion:

Though the RuntimeException is an error in itself, the URL field is fairly confusing: For instance, less-than-power users may interpret this field as accepting all types of URLs, such as external URLs found on the internet that point to their favorite GeoTIFF file. It appears this field only supports a non-standard file descriptor (URL) pointing to a path relative to the data directory; though this is technically 'correct,' we want to support our less-than-power users, and so should consider renaming the "URL" field and/or providing better error messages.

Note that after completing step #5, if you click the back button in your browser, input the correct path entered in step #4 and then click the Save button again, Geoserver returns the second RuntimeException listed below.

First exception:

WicketMessage: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = rasterStoreForm]] threw an exception
Root cause:
java.lang.IllegalArgumentException: No input stream for the provided source
     at org.geotools.gce.geotiff.GeoTiffReader.<init>(GeoTiffReader.java:204)
     at org.geotools.gce.geotiff.GeoTiffFormat.getReader(GeoTiffFormat.java:257)
     at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:648)
     at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:475)
     at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:78)
     at org.geoserver.web.wicket.GeoServerDataProvider.getFilteredItems(GeoServerDataProvider.java:92)
     at org.geoserver.web.data.layer.NewLayerPageProvider.getFilteredItems(NewLayerPageProvider.java:104)
     at org.geoserver.web.wicket.GeoServerDataProvider.size(GeoServerDataProvider.java:105)
     at org.geoserver.web.wicket.GeoServerTablePanel.<init>(GeoServerTablePanel.java:158)
     at org.geoserver.web.data.layer.NewLayerPage$1.<init>(NewLayerPage.java:54)
     at org.geoserver.web.data.layer.NewLayerPage.<init>(NewLayerPage.java:51)
     at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:43)
     at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:102)
     at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1351)
     at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:810)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
     at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1175)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1252)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1353)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355)
     at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:145)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
     at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158)
     at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
     at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
     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 org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
     at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
     at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
     at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:176)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
     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:152)
     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)
Complete stack:
org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = rasterStoreForm]] threw an exception
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:194)
     at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1175)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1252)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1353)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355)
java.lang.reflect.InvocationTargetException
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
     at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1175)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1252)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1353)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355)
java.lang.RuntimeException: Could not read the coverage name, see detailed error report
     at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:96)
     at org.geoserver.web.wicket.GeoServerDataProvider.getFilteredItems(GeoServerDataProvider.java:92)
     at org.geoserver.web.data.layer.NewLayerPageProvider.getFilteredItems(NewLayerPageProvider.java:104)
     at org.geoserver.web.wicket.GeoServerDataProvider.size(GeoServerDataProvider.java:105)
     at org.geoserver.web.wicket.GeoServerTablePanel.<init>(GeoServerTablePanel.java:158)
     at org.geoserver.web.data.layer.NewLayerPage$1.<init>(NewLayerPage.java:54)
     at org.geoserver.web.data.layer.NewLayerPage.<init>(NewLayerPage.java:51)
     at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:43)
     at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:102)
     at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1351)
     at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:810)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
     at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1175)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1252)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1353)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355)

Second exception:

WicketMessage: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = rasterStoreForm]] threw an exception
Root cause:
java.lang.IllegalArgumentException: not a proxy instance
     at java.lang.reflect.Proxy.getInvocationHandler(Proxy.java:637)
     at org.geoserver.catalog.impl.CatalogImpl.saved(CatalogImpl.java:1226)
     at org.geoserver.catalog.impl.CatalogImpl.save(CatalogImpl.java:172)
     at org.geoserver.security.SecureCatalogImpl.save(SecureCatalogImpl.java:950)
     at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:42)
     at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:102)
     at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1351)
     at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:810)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
     at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1175)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1252)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1353)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355)
     at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:145)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
     at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158)
     at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
     at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
     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 org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
     at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
     at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
     at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
     at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:176)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
     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:152)
     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)
Complete stack:
org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = rasterStoreForm]] threw an exception
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:194)
     at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1175)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1252)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1353)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355)
java.lang.reflect.InvocationTargetException
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
     at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1175)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1252)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1353)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355)

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