Details
-
Bug
-
Resolution: Fixed
-
Medium
-
3.2, 3.3, 3.4, 3.5, 4.0, 4.1
Description
Searching for a specific term will take several minutes and will eventually time out. Some search terms work while others don't.
A thread dump taken during this action will reveal something similar to:
java.util.regex.Pattern$Curly.match0(Pattern.java:3782) java.util.regex.Pattern$Curly.match(Pattern.java:3744) java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3366) java.util.regex.Pattern$Start.match(Pattern.java:3055) java.util.regex.Matcher.search(Matcher.java:1105) java.util.regex.Matcher.find(Matcher.java:535) java.util.regex.Matcher.replaceAll(Matcher.java:809) java.lang.String.replaceAll(String.java:2189) com.atlassian.renderer.util.RendererUtil.stripBasicMarkup(RendererUtil.java:46) com.atlassian.confluence.search.summary.HitHighlighter.stripMarkup(HitHighlighter.java:166) com.atlassian.confluence.search.summary.HitHighlighter.getSummary(HitHighlighter.java:86) com.atlassian.confluence.search.actions.SearchSiteAction.getSummaryForResult(SearchSiteAction.java:418) sun.reflect.GeneratedMethodAccessor812.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389) org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378) com.atlassian.confluence.velocity.introspection.AnnotationBoxingMethod.invoke(AnnotationBoxingMethod.java:28) com.atlassian.confluence.velocity.introspection.UnboxingMethod.invoke(UnboxingMethod.java:31) org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270) org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252) org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:332) org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87) org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336) org.apache.velocity.Template.merge(Template.java:328) org.apache.velocity.Template.merge(Template.java:235) com.atlassian.confluence.util.velocity.VelocityUtils.renderTemplateWithoutSwallowingErrors(VelocityUtils.java:62) com.atlassian.confluence.util.velocity.VelocityUtils.renderTemplateWithoutSwallowingErrors(VelocityUtils.java:68) com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedTemplateWithoutSwallowingErrors(VelocityUtils.java:55) com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedTemplate(VelocityUtils.java:38) com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedTemplate(VelocityUtils.java:31) com.atlassian.confluence.search.DefaultSearchResultResultRenderer.render(DefaultSearchResultResultRenderer.java:27) com.atlassian.confluence.search.DelegatedSearchResultRenderer.render(DelegatedSearchResultRenderer.java:60) com.atlassian.confluence.search.actions.SearchSiteAction.newSearchResult(SearchSiteAction.java:281)
The problem is due to a renderer bug which strips out certain syntax, the performance of this can be very poor. The bug has been fixed in Confluence 4.2.4