Merge "Projectless launch support."
diff --git a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/AbstractScriptLaunchConfigurationDelegate.java b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/AbstractScriptLaunchConfigurationDelegate.java
index 192248d..455a652 100644
--- a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/AbstractScriptLaunchConfigurationDelegate.java
+++ b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/AbstractScriptLaunchConfigurationDelegate.java
@@ -903,8 +903,8 @@
 		 */
 		launch.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, null);
 		try {
-			IProject project = ScriptRuntime.getScriptProject(configuration)
-					.getProject();
+			IScriptProject scriptProject = ScriptRuntime.getScriptProject(configuration);
+			IProject project = scriptProject == null ? null : scriptProject.getProject();
 
 			if (monitor == null) {
 				monitor = new NullProgressMonitor();
diff --git a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/DebuggingEngineRunner.java b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/DebuggingEngineRunner.java
index 6520684..de2e036 100644
--- a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/DebuggingEngineRunner.java
+++ b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/DebuggingEngineRunner.java
@@ -68,8 +68,9 @@
 		}
 		final IScriptDebugTarget target = createDebugTarget(launch, service);
 		launch.addDebugTarget(target);
-		IScriptDebugThreadConfigurator configurator = createThreadConfigurator(launch
-				.getLaunchConfiguration());
+		IScriptDebugThreadConfigurator configurator = createThreadConfigurator(
+				launch
+						.getLaunchConfiguration());
 		if (configurator != null) {
 			((ScriptDebugTarget) target)
 					.setScriptDebugThreadConfigurator(configurator);
@@ -128,7 +129,8 @@
 			return;
 		}
 		try {
-			PreferencesLookupDelegate delegate = createPreferencesLookupDelegate(launch);
+			PreferencesLookupDelegate delegate = createPreferencesLookupDelegate(
+					launch);
 
 			initializeLaunch(launch, config, delegate);
 			final ScriptDebugTarget target = (ScriptDebugTarget) launch
@@ -157,7 +159,7 @@
 
 	protected IProcess startProcess(InterpreterConfig config, ILaunch launch,
 			IProgressMonitor monitor, PreferencesLookupDelegate delegate)
-			throws CoreException {
+					throws CoreException {
 		InterpreterConfig newConfig = addEngineConfig(config, delegate, launch);
 
 		// Starting debugging engine
@@ -215,7 +217,8 @@
 	protected void waitDebuggerConnected(IProcess process, ILaunch launch,
 			IProgressMonitor monitor) throws CoreException {
 		ScriptDebugTarget target = (ScriptDebugTarget) launch.getDebugTarget();
-		waitDebuggerConnected(launch, new DebugSessionAcceptor(target, monitor));
+		waitDebuggerConnected(launch,
+				new DebugSessionAcceptor(target, monitor));
 	}
 
 	/**
@@ -275,7 +278,8 @@
 			ILaunch launch) throws CoreException {
 		IScriptProject sProject = ScriptRuntime.getScriptProject(launch
 				.getLaunchConfiguration());
-		return new PreferencesLookupDelegate(sProject.getProject());
+		return new PreferencesLookupDelegate(
+				sProject == null ? null : sProject.getProject());
 	}
 
 	/**