package com.intellij.unscramble; import junit.framework.TestCase; import org.jetbrains.annotations.NonNls; /** * @author cdr */ public class NormalizeTextTest extends TestCase { public void testCausedBy() { doTest("javax.faces.FacesException: Error calling action method of component with id _id6:_id10\n" + " at java.lang.Th\n" + "read.run(Thread.java:626)\n" + "Caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{_loginAction.login}\n" + " at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:153)\n" + " at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)\n", "javax.faces.FacesException: Error calling action method of component with id _id6:_id10\n" + " at java.lang.Thread.run(Thread.java:626)\n" + "Caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{_loginAction.login}\n" + " at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:153)\n" + " at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)" ); } public void testThreadNames() { doTest("\"Background process\" prio=6 tid=0x21193b88 nid=0x11ea4 waiting on condition [0x2\n" + "2cbf000..0x22cbfd68]\n" + " at java.lang.Thread.sleep(Native Method)\n" + " at com.intellij.util.ui.Timer$1.run(Timer.java:23)\n" + "\n" + "\"Alarm pool\" prio=6 tid=0x37cacbe0 nid=0x7940 waiting on condition [0x3972f000..\n" + "0x3972fae8]\n" + " at sun.misc.Unsafe.park(Native Method)\n" + " at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\n" + " at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject\n" + ".await(AbstractQueuedSynchronizer.java:1767)\n\n" + " at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav\n" + "a:359)\n" + " at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja\n" + "va:470)\n" + " at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor\n" + ".java:674)\n" + " at java.lang.Thread.run(Thread.java:595)", "\"Background process\" prio=6 tid=0x21193b88 nid=0x11ea4 waiting on condition [0x22cbf000..0x22cbfd68]\n" + " at java.lang.Thread.sleep(Native Method)\n" + " at com.intellij.util.ui.Timer$1.run(Timer.java:23)\n" + "\n" + "\"Alarm pool\" prio=6 tid=0x37cacbe0 nid=0x7940 waiting on condition [0x3972f000..0x3972fae8]\n" + " at sun.misc.Unsafe.park(Native Method)\n" + " at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\n" + " at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\n" + " at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\n" + " at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\n" + " at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\n" + " at java.lang.Thread.run(Thread.java:595)" ); } public void testLocked() { doTest(" at com.intellij.lang.jsp.JspFileViewProviderImpl.getKeyPrefixes(JspFileV\n" + "iewProviderImpl.java:76)\n" + " at com.intellij.lang.jsp.JspFileViewProviderImpl.getKnownTaglibPrefixes(\n" + "JspFileViewProviderImpl.java:89)\n" + " - locked <0x04cc0768> (a java.lang.Object)\n" + " at com.intellij.psi.impl.source.parsing.jsp.JspLexer.doInitOriginal(JspL\n" + "exer.java:39)\n" + " at com.intellij.psi.impl.source.parsing.jsp.JspLexer.start(JspLexer.java\n" + ":49)", " at com.intellij.lang.jsp.JspFileViewProviderImpl.getKeyPrefixes(JspFileViewProviderImpl.java:76)\n" + " at com.intellij.lang.jsp.JspFileViewProviderImpl.getKnownTaglibPrefixes(JspFileViewProviderImpl.java:89)\n" + " - locked <0x04cc0768> (a java.lang.Object)\n" + " at com.intellij.psi.impl.source.parsing.jsp.JspLexer.doInitOriginal(JspLexer.java:39)\n" + " at com.intellij.psi.impl.source.parsing.jsp.JspLexer.start(JspLexer.java:49)"); } public void testAtSplit() { doTest("java.lang.Throwable\n" + "at\n" + "com.intellij.openapi.util.objectTree.ObjectNode.(ObjectNode.jav\n" + "a:31)\n" + "at\n" + "com.intellij.openapi.util.objectTree.ObjectTree.getNodeFor(ObjectTree\n" + ".java:79)", "java.lang.Throwable\n" + "at com.intellij.openapi.util.objectTree.ObjectNode.(ObjectNode.java:31)\n" + "at com.intellij.openapi.util.objectTree.ObjectTree.getNodeFor(ObjectTree.java:79)"); } public void testSplitMergedLines() { doTest("org.apache.velocity.exception.MethodInvocationException " + "at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:246) " + "at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175) " + "at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:327) " + "at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:51) " + "at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:95) " + "at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55) " + "at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166) " + "at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114) " + "at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230) " + "at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:172) " + "at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114) " + "at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230) " + "at org.apache.velocity.Template.merge(Template.java:256)", "org.apache.velocity.exception.MethodInvocationException\n" + "at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:246)\n" + "at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175)\n" + "at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:327)\n" + "at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:51)\n" + "at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:95)\n" + "at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)\n" + "at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166)\n" + "at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114)\n" + "at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)\n" + "at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:172)\n" + "at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114)\n" + "at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)\n" + "at org.apache.velocity.Template.merge(Template.java:256)"); } public void testWithoutAt() { doTest(" java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)\n" + " java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)\n" + " java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:400)\n" + " java.util.concurrent.ForkJoinTask.invokeAll(ForkJoinTask.java:837)\n", " java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)\n" + " java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)\n" + " java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:400)\n" + " java.util.concurrent.ForkJoinTask.invokeAll(ForkJoinTask.java:837)"); } private static void doTest(@NonNls String stackTrace, @NonNls String expected) { String normalized = UnscrambleDialog.normalizeText(stackTrace); assertEquals(expected, normalized); } }