Uploaded image for project: 'JCommune'
  1. JCommune
  2. JC-1504

Number Format Exception

VotersWatchers
    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.8 Larks
    • Fix Version/s: 2.0 Larks
    • Labels:
      None
    • Sprint:
      1.9 Larks, 2.0 Larks

      Description

      Steps to reproduce

      1. Find any multipage topic.
      2. Create topic page URL with invalid page number, for example "garbage" instead of "2" in the next URL http://javatalks.ru/topics/12048?page=garbage
      3. Insert this URL in to the address bar and press ENTER

      AR: Redirecting to 404 page and adding log entry with NFE as in example below.
      ER: Redirecting to first topic page.

      How to test
      1. Provide a not a number page number in topic URL - you must be redirected to first page.
      2. Provide a page number more than max page number in topic - you must be redirected to last page.

      2013-07-02 15:02:22 [DEBUG][http-8080-46    ][anonymous-6CC5][org.jtalks.jcommune.web.exception.PrettyLogExceptionResolver] - Exposing Exception as model attribute 'exception'
      2013-07-02 15:02:23 [DEBUG][http-8080-46    ][anonymous-6CC5][org.jtalks.jcommune.web.exception.PrettyLogExceptionResolver] - Resolving exception from handler [public org.springframework.web.servlet.ModelAndView org.jtalks.jcommune.web.controller.TopicController.showTopi
      cPage(java.lang.Long,int,java.lang.Boolean) throws org.jtalks.jcommune.service.exceptions.NotFoundException]: org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberF
      ormatException: For input string: "1#191459"
      2013-07-02 15:02:23 [WARN ][http-8080-46    ][anonymous-6CC5][                 org.jtalks.jcommune] - Handler execution resulted in exception
      org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "1#191459"
              at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:74)
              at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:45)
              at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:595)
              at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:101)
              at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:77)
              at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:162)
              at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:123)
              at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
              at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
              at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
              at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
              at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
              at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
              at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
              at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
              at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.jtalks.jcommune.web.filters.LoggingConfigurationFilter.doFilter(LoggingConfigurationFilter.java:66)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
              at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
              at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:112)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
              at org.jtalks.jcommune.web.filters.UsernamePasswordAuthenticationFilter.doFilter(UsernamePasswordAuthenticationFilter.java:64)
              at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
      Caused by: java.lang.NumberFormatException: For input string: "1#191459"
              at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
              at java.lang.Integer.parseInt(Integer.java:458)
              at java.lang.Integer.valueOf(Integer.java:554)
              at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:155)
              at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)
              at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:452)
              at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:424)
              at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:181)
              at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:93)
              at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:61)
              ... 86 more
      2013-07-02 15:02:23 [DEBUG][http-8080-46    ][anonymous-6CC5][org.jtalks.jcommune.web.exception.PrettyLogExceptionResolver] - Resolving to view 'redirect:/errors/400' for exception of type [org.springframework.beans.TypeMismatchException], based on exception mapping [org
      .springframework.beans.TypeMismatchException]
      2013-07-02 15:02:23 [DEBUG][http-8080-46    ][anonymous-6CC5][org.jtalks.jcommune.web.exception.PrettyLogExceptionResolver] - Exposing Exception as model attribute 'exception'

        Attachments

          Issue Links

            Structure

              Activity

                People

                • Assignee:
                  julik Julia Atlygina
                  Reporter:
                  ctapobep Stanislav Bashkyrtsev
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Remaining Estimate - 0h
                    0h
                    Logged:
                    Time Spent - 9h 22m
                    9h 22m

                      Structure Helper Panel