From ab8693f4cd814b1590f5ecf88eb6111fdbd863fd Mon Sep 17 00:00:00 2001 From: Sergey Ignatov Date: Thu, 28 Aug 2014 17:43:42 +0400 Subject: [PATCH 1/2] sql infinite formatter fix --- .../formatting/alignment/AlignmentStrategy.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/formatting/alignment/AlignmentStrategy.java b/platform/lang-impl/src/com/intellij/formatting/alignment/AlignmentStrategy.java index 1844a0a217d2..0be9a469a03e 100644 --- a/platform/lang-impl/src/com/intellij/formatting/alignment/AlignmentStrategy.java +++ b/platform/lang-impl/src/com/intellij/formatting/alignment/AlignmentStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -69,8 +69,7 @@ public abstract class AlignmentStrategy { * @return alignment strategy for the given arguments */ public static AlignmentPerTypeStrategy createAlignmentPerTypeStrategy(@NotNull Collection targetTypes, - boolean allowBackwardShift) - { + boolean allowBackwardShift) { return new AlignmentPerTypeStrategy(targetTypes, null, allowBackwardShift, Alignment.Anchor.LEFT); } @@ -85,8 +84,7 @@ public abstract class AlignmentStrategy { * @return alignment retrieval strategy that follows the rules described above */ public static AlignmentPerTypeStrategy createAlignmentPerTypeStrategy( - @NotNull Collection targetTypes, @Nullable IElementType parentType, boolean allowBackwardShift) - { + @NotNull Collection targetTypes, @Nullable IElementType parentType, boolean allowBackwardShift) { return createAlignmentPerTypeStrategy(targetTypes, parentType, allowBackwardShift, Alignment.Anchor.LEFT); } @@ -115,8 +113,7 @@ public abstract class AlignmentStrategy { */ public static AlignmentPerTypeStrategy createAlignmentPerTypeStrategy( @NotNull Collection targetTypes, @Nullable IElementType parentType, boolean allowBackwardShift, - @NotNull Alignment.Anchor anchor) - { + @NotNull Alignment.Anchor anchor) { return new AlignmentPerTypeStrategy(targetTypes, parentType, allowBackwardShift, anchor); } @@ -162,7 +159,7 @@ public abstract class AlignmentStrategy { @Override @Nullable public Alignment getAlignment(@Nullable IElementType parentType, @Nullable IElementType childType) { - return (myFilterElementTypes.contains(childType) ^ myIgnoreFilterTypes) ? myAlignment : null; + return myFilterElementTypes.contains(childType) ^ myIgnoreFilterTypes ? myAlignment : null; } } @@ -171,7 +168,6 @@ public abstract class AlignmentStrategy { * same types. */ public static class AlignmentPerTypeStrategy extends AlignmentStrategy { - private final Map myAlignments = new HashMap(); private final IElementType myParentType; @@ -180,8 +176,7 @@ public abstract class AlignmentStrategy { AlignmentPerTypeStrategy(Collection targetElementTypes, IElementType parentType, boolean allowBackwardShift, - Alignment.Anchor anchor) - { + Alignment.Anchor anchor) { myParentType = parentType; myAllowBackwardShift = allowBackwardShift; for (IElementType elementType : targetElementTypes) { From cdff9865ad0fd0615215b9d53cb8e0f3129e395a Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Thu, 28 Aug 2014 16:27:53 +0200 Subject: [PATCH 2/2] move runnables on top --- .../com/intellij/diagnostic/ThreadDumper.java | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/platform/util/src/com/intellij/diagnostic/ThreadDumper.java b/platform/util/src/com/intellij/diagnostic/ThreadDumper.java index 0a8208a55d53..a67cc6cbdc31 100644 --- a/platform/util/src/com/intellij/diagnostic/ThreadDumper.java +++ b/platform/util/src/com/intellij/diagnostic/ThreadDumper.java @@ -24,6 +24,8 @@ import java.io.Writer; import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; +import java.util.Arrays; +import java.util.Comparator; /** * @author yole @@ -76,18 +78,21 @@ public class ThreadDumper { } private static ThreadInfo[] sort(ThreadInfo[] threads) { - int edtIndex = -1; - for (int i = 0; i < threads.length; i++) { - if (threads[i].getThreadName().startsWith("AWT-EventQueue")) { - edtIndex = i; - break; + Arrays.sort(threads, new Comparator() { + @Override + public int compare(ThreadInfo o1, ThreadInfo o2) { + final String t1 = o1.getThreadName(); + final String t2 = o2.getThreadName(); + if (t1.startsWith("AWT-EventQueue")) return -1; + if (t2.startsWith("AWT-EventQueue")) return 1; + final boolean r1 = o1.getThreadState() == Thread.State.RUNNABLE; + final boolean r2 = o2.getThreadState() == Thread.State.RUNNABLE; + if (r1 && !r2) return -1; + if (r2 && !r1) return 1; + return 0; } - } - if (edtIndex > 0) { - ThreadInfo edt = threads[edtIndex]; - System.arraycopy(threads, 0, threads, 1, edtIndex); - threads[0] = edt; - } + }); + return threads; }