Details
-
Bug
-
Resolution: Fixed
-
Neutral
-
1.4
Description
java.lang.StringIndexOutOfBoundsException: String index out of range: -1 java.lang.String.substring(String.java:1911) info.magnolia.module.diff.VersionDiffHtmlGenerator.diff(VersionDiffHtmlGenerator.java:80) info.magnolia.module.diff.VersionDiffHtmlGenerator.diff(VersionDiffHtmlGenerator.java:96) info.magnolia.module.diff.VersionDiffHtmlServlet.getVersionDiffHtml(VersionDiffHtmlServlet.java:244) info.magnolia.module.diff.VersionDiffHtmlServlet.doGet(VersionDiffHtmlServlet.java:127) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:129) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:70) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58) info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:66) info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:153) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:76) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:60) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:86) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:93) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.module.templatingkit.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:106) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.multisite.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:106) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:82) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:104) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:56) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85) info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:91) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.module.devicedetection.filter.DeviceDetectionFilter.doFilter(DeviceDetectionFilter.java:71) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:102) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:131) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83) info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91) info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:108) info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67) info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108) info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
We should either improve error message and say that pages that have no HTML tags can't be compared or we should allow comparison of such pages.
To allow comparison we would need to improve VersionDiffHtmlGenerator.diff method to also process non html text.
Checklists
Acceptance criteria