Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] CBuilder.java fix

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.53
diff -u -r1.53 ChangeLog
--- ChangeLog	20 Dec 2002 21:13:14 -0000	1.53
+++ ChangeLog	23 Dec 2002 18:52:52 -0000
@@ -1,3 +1,9 @@
+2002-12-23 Alain Magloire
+
+	* src/org/eclipse/cdt/internal/core/CBuilder.java (invokeMake):
+	NPE check the return of launcher.execute(), the executables
+	may not be found.
+
 2002-12-20 Alain Magloire
 
 	Bug fix, We use a feature of GNU make to help track the directories
Index: src/org/eclipse/cdt/internal/core/CBuilder.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CBuilder.java,v
retrieving revision 1.16
diff -u -r1.16 CBuilder.java
--- src/org/eclipse/cdt/internal/core/CBuilder.java	13 Dec 2002 15:43:40 -0000	1.16
+++ src/org/eclipse/cdt/internal/core/CBuilder.java	23 Dec 2002 18:52:52 -0000
@@ -147,28 +147,31 @@
 				OutputStream stderr = epm.getOutputStream();
 
 				Process p = launcher.execute(makepath, userArgs, env, workingDirectory);
-				try {
-					// Close the input of the Process explicitely.
-					// We will never write to it.
-					p.getOutputStream().close();
-				} catch (IOException e) {
-				}
-				if (launcher.waitAndRead(stdout, stderr, subMonitor) != CommandLauncher.OK)
-					errMsg = launcher.getErrorMessage();
+				if (p != null) {
+					try {
+						// Close the input of the Process explicitely.
+						// We will never write to it.
+						p.getOutputStream().close();
+					} catch (IOException e) {
+					}
+					if (launcher.waitAndRead(stdout, stderr, subMonitor) != CommandLauncher.OK)
+						errMsg = launcher.getErrorMessage();
 
-				isCanceled = monitor.isCanceled();
-				monitor.setCanceled(false);
-				subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
-				subMonitor.subTask("Refresh From Local");
+					isCanceled = monitor.isCanceled();
+					monitor.setCanceled(false);
+					subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
+					subMonitor.subTask("Refresh From Local");
 
-				try {
-					currProject.refreshLocal(IResource.DEPTH_INFINITE, subMonitor);
-				}
-				catch (CoreException e) {
-				}
+					try {
+						currProject.refreshLocal(IResource.DEPTH_INFINITE, subMonitor);
+					} catch (CoreException e) {
+					}
 
-				subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
-				subMonitor.subTask("Parsing");
+					subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
+					subMonitor.subTask("Parsing");
+				} else {
+					errMsg = launcher.getErrorMessage();
+				}
 
 				if (errMsg != null) {
 					String errorDesc = CCorePlugin.getFormattedString(BUILD_ERROR, makepath.toString());



Back to the top