summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-09-02 06:53:14 -0700
committerTor Norbye <tnorbye@google.com>2014-09-02 15:30:17 +0000
commitffc7c39f9e6b13a8613e57bd0c165a7abcf9d798 (patch)
tree66918c594f40bc134e2e2b74626be5fb26e4a8e8
parent4324c2e655e57533e122d59fa03508bf1d1a15fa (diff)
downloadidea-ffc7c39f9e6b13a8613e57bd0c165a7abcf9d798.tar.gz
73999: Corrupt installation: Still contains android-designer bits
Change-Id: I33ce74f7b61423f0c7e63db1d5ebad01c8ffc2ff (cherry picked from commit 5416bb1377d39bd78882d44bf1369f327de7ac70)
-rw-r--r--platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
index 0b889127a880..86f31e970084 100644
--- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
+++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
@@ -30,6 +30,7 @@ import org.picocontainer.MutablePicoContainer;
import org.picocontainer.PicoContainer;
import org.picocontainer.defaults.ConstructorInjectionComponentAdapter;
+import javax.swing.*;
import java.io.IOException;
import java.io.StringWriter;
import java.util.*;
@@ -314,6 +315,21 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
@NotNull PluginDescriptor descriptor,
@NotNull ExtensionPoint.Kind kind) {
if (hasExtensionPoint(extensionPointName)) {
+ // Android Studio workaround for
+ // 73999: Corrupt installation: Still contains android-designer bits
+ // https://code.google.com/p/android/issues/detail?id=73999
+ if ("Designer.customizations".equals(extensionPointName)) {
+ String msg = "Your Android Studio installation is corrupt and will not work properly.\n" +
+ "\n" +
+ "This can happen if Android Studio is extracted into an existing older version.\n\n" +
+ "Please reinstall (and make sure the new installation directory is empty first!)";
+ String title = "Corrupt Installation";
+ // Using JOptionPane rather than the better looking com.intellij.openapi.ui.Messages support
+ // here because this is called during early initialization
+ JOptionPane.showMessageDialog(null, msg, title, JOptionPane.ERROR_MESSAGE);
+ System.exit(-1);
+ }
+
if (DEBUG_REGISTRATION) {
final ExtensionPointImpl oldEP = getExtensionPoint(extensionPointName);
myLogger.error("Duplicate registration for EP: " + extensionPointName + ": original plugin " + oldEP.getDescriptor().getPluginId() +