diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCatchSectionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCatchSectionImpl.java index f7b9b8ff77c8..6dd26b59e597 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCatchSectionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCatchSectionImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 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. @@ -43,6 +43,7 @@ import java.util.List; public class PsiCatchSectionImpl extends CompositePsiElement implements PsiCatchSection, Constants { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.tree.java.PsiCatchSectionImpl"); + private final Object myTypesCacheLock = new Object(); private CachedValue> myTypesCache = null; public PsiCatchSectionImpl() { @@ -75,17 +76,27 @@ public class PsiCatchSectionImpl extends CompositePsiElement implements PsiCatch return getTypesCache().getValue(); } - private synchronized CachedValue> getTypesCache() { - if (myTypesCache == null) { - final CachedValuesManager cacheManager = CachedValuesManager.getManager(getProject()); - myTypesCache = cacheManager.createCachedValue(new CachedValueProvider>() { - @Override public Result> compute() { - final List types = computePreciseCatchTypes(getParameter()); - return Result.create(types, PsiModificationTracker.MODIFICATION_COUNT); - } - }, false); + @Override + public void clearCaches() { + super.clearCaches(); + synchronized (myTypesCacheLock) { + myTypesCache = null; + } + } + + private CachedValue> getTypesCache() { + synchronized (myTypesCacheLock) { + if (myTypesCache == null) { + final CachedValuesManager cacheManager = CachedValuesManager.getManager(getProject()); + myTypesCache = cacheManager.createCachedValue(new CachedValueProvider>() { + @Override public Result> compute() { + final List types = computePreciseCatchTypes(getParameter()); + return Result.create(types, PsiModificationTracker.MODIFICATION_COUNT); + } + }, false); + } + return myTypesCache; } - return myTypesCache; } private List computePreciseCatchTypes(final PsiParameter parameter) { diff --git a/platform/lang-impl/src/com/intellij/codeInspection/AbstractInspectionToolStarter.java b/platform/lang-impl/src/com/intellij/codeInspection/AbstractInspectionToolStarter.java index 9e3bf6e4c513..08efa6c3682d 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/AbstractInspectionToolStarter.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/AbstractInspectionToolStarter.java @@ -66,7 +66,7 @@ public abstract class AbstractInspectionToolStarter implements ApplicationStarte if (!myOptions.suppressHelp()) { printHelpAndExit(args, myOptions); } - return; + System.exit(1); } myApplication = new InspectionApplication(); diff --git a/platform/platform-impl/src/com/intellij/ide/ClipboardSynchronizer.java b/platform/platform-impl/src/com/intellij/ide/ClipboardSynchronizer.java index 690849d70f6d..6c7283520aa6 100644 --- a/platform/platform-impl/src/com/intellij/ide/ClipboardSynchronizer.java +++ b/platform/platform-impl/src/com/intellij/ide/ClipboardSynchronizer.java @@ -391,12 +391,14 @@ public class ClipboardSynchronizer implements ApplicationComponent { if (formats == null || formats.length == 0) { return Collections.emptySet(); } - for (int i = 0, length = formats.length; i < length; i++) { - if (formats[i] == 0) return Collections.emptySet(); + try { + @SuppressWarnings({"unchecked", "UnnecessaryLocalVariable"}) + final Set set = DataTransferer.getInstance().getFlavorsForFormats(formats, FLAVOR_MAP).keySet(); + return set; + } + catch (NullPointerException e) { + LOG.warn("Sun bug #6322854", e); } - @SuppressWarnings({"unchecked", "UnnecessaryLocalVariable"}) - final Set set = DataTransferer.getInstance().getFlavorsForFormats(formats, FLAVOR_MAP).keySet(); - return set; } catch (IllegalAccessException ignore) { } catch (IllegalArgumentException ignore) { } diff --git a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java index 3123a0cc0255..17e795cc856a 100644 --- a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java +++ b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java @@ -462,8 +462,11 @@ public class FileUtil extends FileUtilRt { if (syncTimestamp) { final long timeStamp = fromFile.lastModified(); - if (!toFile.setLastModified(timeStamp)) { - LOG.warn("Unable to set timestamp " + timeStamp + " to " + toFile); + if (timeStamp < 0) { + LOG.warn("Invalid timestamp " + timeStamp + " of '" + fromFile + "'"); + } + else if (!toFile.setLastModified(timeStamp)) { + LOG.warn("Unable to set timestamp " + timeStamp + " to '" + toFile + "'"); } } diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/CalendarView.png b/plugins/android-designer/src/com/intellij/android/designer/icons/CalendarView.png new file mode 100644 index 000000000000..033c51ca7c07 Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/CalendarView.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/DatePicker.png b/plugins/android-designer/src/com/intellij/android/designer/icons/DatePicker.png new file mode 100644 index 000000000000..107529e7a2f4 Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/DatePicker.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/GridView.png b/plugins/android-designer/src/com/intellij/android/designer/icons/GridView.png new file mode 100644 index 000000000000..33ae3cb80405 Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/GridView.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/ListView.png b/plugins/android-designer/src/com/intellij/android/designer/icons/ListView.png new file mode 100644 index 000000000000..09aaea9dde24 Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/ListView.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/NumberPicker.png b/plugins/android-designer/src/com/intellij/android/designer/icons/NumberPicker.png new file mode 100644 index 000000000000..755706748fca Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/NumberPicker.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/SearchView.png b/plugins/android-designer/src/com/intellij/android/designer/icons/SearchView.png new file mode 100644 index 000000000000..2b45fc240c30 Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/SearchView.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/TimePicker.png b/plugins/android-designer/src/com/intellij/android/designer/icons/TimePicker.png new file mode 100644 index 000000000000..5115f6df7bed Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/TimePicker.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/WebView.png b/plugins/android-designer/src/com/intellij/android/designer/icons/WebView.png new file mode 100644 index 000000000000..90b3c06c5da4 Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/WebView.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/ZoomControls.png b/plugins/android-designer/src/com/intellij/android/designer/icons/ZoomControls.png new file mode 100644 index 000000000000..7928c65cfd0f Binary files /dev/null and b/plugins/android-designer/src/com/intellij/android/designer/icons/ZoomControls.png differ diff --git a/plugins/android-designer/src/com/intellij/android/designer/model/views-meta-model.xml b/plugins/android-designer/src/com/intellij/android/designer/model/views-meta-model.xml index 8cdf52ed49a1..7cd95b75a6d6 100644 --- a/plugins/android-designer/src/com/intellij/android/designer/model/views-meta-model.xml +++ b/plugins/android-designer/src/com/intellij/android/designer/model/views-meta-model.xml @@ -564,6 +564,175 @@ + + + + + + + + + + + ]]> + + + + + + + + + + + + ]]> + + + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + + + ]]> + + + + + + + + + + + + ]]> + + + + + + + + + + + + ]]> + + + + + + + + + + ]]> + + + + + + + + + + + + + +