| --- a/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java 2012-05-05 14:41:12.000000000 +0200 |
| +++ a/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java 2012-05-18 15:28:28.553493782 +0200 |
| @@ -8,7 +8,7 @@ |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| * Anton Leherbauer (Wind River Systems) - bug 301226 |
| - * Red Hat Inc. - bug 373640 |
| + * Red Hat Inc. - bug 373640, 379102 |
| *******************************************************************************/ |
| package org.eclipse.equinox.launcher; |
| |
| @@ -235,6 +235,9 @@ |
| protected BufferedWriter log = null; |
| protected boolean newSession = true; |
| |
| + private boolean forbiddenMasterEclipse; |
| + private static final String FORBIDDEN_MASTER_ECLIPSE = "-preventMasterEclipseLaunch"; |
| + |
| // for variable substitution |
| public static final String VARIABLE_DELIM_STRING = "$"; //$NON-NLS-1$ |
| public static final char VARIABLE_DELIM_CHAR = '$'; |
| @@ -555,6 +558,12 @@ |
| setupVMProperties(); |
| processConfiguration(); |
| |
| +if (forbiddenMasterEclipse && System.getProperty(PROP_SHARED_CONFIG_AREA) == null) { //$NON-NLS-1$ |
| + System.err.println("This application should not be run by the owner of the shared configuration."); |
| + System.setProperty(PROP_EXITCODE, "" + 14); //$NON-NLS-1$ |
| + return; |
| + } |
| + |
| // need to ensure that getInstallLocation is called at least once to initialize the value. |
| // Do this AFTER processing the configuration to allow the configuration to set |
| // the install location. |
| @@ -1532,6 +1541,10 @@ |
| // passed thru this arg (i.e., do not set found = true) |
| continue; |
| } |
| + if (args[i].equalsIgnoreCase(FORBIDDEN_MASTER_ECLIPSE)) { |
| + forbiddenMasterEclipse = true; |
| + found = true; |
| + } |
| |
| // check if development mode should be enabled for the entire platform |
| // If this is the last arg or there is a following arg (i.e., arg+1 has a leading -), |