diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java index 642a8edb755f..ffbacaad7f08 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java @@ -701,7 +701,7 @@ public class AnnotationsHighlightUtil { } @Nullable - private static RetentionPolicy getRetentionPolicy(PsiClass annotation) { + public static RetentionPolicy getRetentionPolicy(@NotNull PsiClass annotation) { PsiModifierList modifierList = annotation.getModifierList(); if (modifierList != null) { PsiAnnotation retentionAnno = modifierList.findAnnotation(CommonClassNames.JAVA_LANG_ANNOTATION_RETENTION); diff --git a/platform/core-impl/src/com/intellij/openapi/editor/ex/util/SegmentArrayWithData.java b/platform/core-impl/src/com/intellij/openapi/editor/ex/util/SegmentArrayWithData.java index 8463c49b339f..27f65f9f1e88 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/ex/util/SegmentArrayWithData.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/ex/util/SegmentArrayWithData.java @@ -31,7 +31,7 @@ public class SegmentArrayWithData extends SegmentArray { } public void setElementAt(int i, int startOffset, int endOffset, int data) { - if (data < 0 && data > Short.MAX_VALUE) throw new IndexOutOfBoundsException("data out of short range" + data); + if (data < 0 || data > Short.MAX_VALUE) throw new IndexOutOfBoundsException("data out of short range" + data); setElementAt(i, startOffset, endOffset); myData = reallocateArray(myData, i+1); myData[i] = (short)data; diff --git a/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java b/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java index cd070861ee50..d9dce154db7b 100644 --- a/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java +++ b/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java @@ -349,7 +349,7 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { attr.setErrorStripeColor(defaultColor); } } - private static final Map DEFAULT_ERROR_STRIPE_COLOR = new THashMap(); + public static final Map DEFAULT_ERROR_STRIPE_COLOR = new THashMap(); static { DEFAULT_ERROR_STRIPE_COLOR.put(CodeInsightColors.ERRORS_ATTRIBUTES.getExternalName(), Color.red); DEFAULT_ERROR_STRIPE_COLOR.put(CodeInsightColors.WRONG_REFERENCES_ATTRIBUTES.getExternalName(), Color.red); diff --git a/platform/util/src/com/intellij/util/lang/UrlClassLoader.java b/platform/util/src/com/intellij/util/lang/UrlClassLoader.java index 7661baa44cb5..acbdb38a3a7c 100644 --- a/platform/util/src/com/intellij/util/lang/UrlClassLoader.java +++ b/platform/util/src/com/intellij/util/lang/UrlClassLoader.java @@ -46,6 +46,9 @@ public class UrlClassLoader extends ClassLoader { @NonNls static final String CLASS_EXTENSION = ".class"; static { + // Since Java 7 classloading is parallel on parallel capable classloader (http://docs.oracle.com/javase/7/docs/technotes/guides/lang/cl-mt.html) + // Parallel classloading avoids deadlocks like https://youtrack.jetbrains.com/issue/IDEA-131621 + // Unless explicitly disabled, request parallel loading capability via reflection due to current platform's Java 6 baseline // todo[r.sh] drop condition in IDEA 15 // todo[r.sh] drop reflection after migrating to Java 7+ boolean parallelLoader = Boolean.parseBoolean(System.getProperty("idea.parallel.class.loader", "true")); diff --git a/plugins/terminal/resources/icons/OpenTerminal_13x13@2x.png b/plugins/terminal/resources/icons/OpenTerminal_13x13@2x.png index de3cf3c60ac8..80364d2c6bef 100644 Binary files a/plugins/terminal/resources/icons/OpenTerminal_13x13@2x.png and b/plugins/terminal/resources/icons/OpenTerminal_13x13@2x.png differ diff --git a/python/edu/learn-python/gen/icons/StudyIcons.java b/python/edu/learn-python/gen/icons/StudyIcons.java index 477e5ed54364..f1db45d83e73 100644 --- a/python/edu/learn-python/gen/icons/StudyIcons.java +++ b/python/edu/learn-python/gen/icons/StudyIcons.java @@ -13,7 +13,7 @@ public class StudyIcons { return IconLoader.getIcon(path, StudyIcons.class); } - public static final Icon EducationalProjectType = load("/icons/com/jetbrains/python/edu/EducationalProjectType.png"); // 32x32 + public static final Icon EducationalProjectType = load("/icons/com/jetbrains/python/edu/EducationalProjectType.png"); // 16x16 public static final Icon Lesson = load("/icons/com/jetbrains/python/edu/Lesson.png"); // 16x16 public static final Icon LessonCompl = load("/icons/com/jetbrains/python/edu/LessonCompl.png"); // 16x16 public static final Icon Prev = load("/icons/com/jetbrains/python/edu/prev.png"); // 16x16 diff --git a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java index 1b432994924c..a94f11e3d2c9 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java @@ -1190,7 +1190,23 @@ public class PyClassImpl extends PyBaseElementImpl implements PyCla continue; } final PyType type = context.getType(expression); - result.add(type instanceof PyClassLikeType ? (PyClassLikeType)type : null); + PyClassLikeType classLikeType = null; + if (type instanceof PyClassLikeType) { + classLikeType = (PyClassLikeType)type; + } + else { + final PsiReference ref = expression.getReference(); + if (ref != null) { + final PsiElement resolved = ref.resolve(); + if (resolved instanceof PyClass) { + final PyType resolvedType = context.getType((PyClass)resolved); + if (resolvedType instanceof PyClassLikeType) { + classLikeType = (PyClassLikeType)resolvedType; + } + } + } + } + result.add(classLikeType); } } final PyBuiltinCache builtinCache = PyBuiltinCache.getInstance(this);