1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-09 17:25:38 +02:00

close() the streams before reportProblems()

This commit is contained in:
Alain Magloire 2002-11-24 16:05:02 +00:00
parent ba1e859eba
commit 562eea247e

View file

@ -5,6 +5,7 @@ package org.eclipse.cdt.internal.core;
* All Rights Reserved. * All Rights Reserved.
*/ */
import java.io.OutputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Enumeration; import java.util.Enumeration;
@ -141,9 +142,11 @@ public class CBuilder extends ACBuilder {
} }
ErrorParserManager epm = new ErrorParserManager(this); ErrorParserManager epm = new ErrorParserManager(this);
epm.setOutputStream(cos); epm.setOutputStream(cos);
OutputStream stdout = epm.getOutputStream();
OutputStream stderr = epm.getOutputStream();
launcher.execute(makepath, userArgs, env, workingDirectory); launcher.execute(makepath, userArgs, env, workingDirectory);
if (launcher.waitAndRead(epm.getOutputStream(), epm.getOutputStream(), subMonitor) != CommandLauncher.OK) if (launcher.waitAndRead(stdout, stderr, subMonitor) != CommandLauncher.OK)
errMsg = launcher.getErrorMessage(); errMsg = launcher.getErrorMessage();
isCanceled = monitor.isCanceled(); isCanceled = monitor.isCanceled();
@ -160,8 +163,6 @@ public class CBuilder extends ACBuilder {
subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN); subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
subMonitor.subTask("Parsing"); subMonitor.subTask("Parsing");
epm.reportProblems();
if (errMsg != null) { if (errMsg != null) {
String errorDesc = CCorePlugin.getFormattedString(BUILD_ERROR, makepath.toString()); String errorDesc = CCorePlugin.getFormattedString(BUILD_ERROR, makepath.toString());
StringBuffer buf = new StringBuffer(errorDesc); StringBuffer buf = new StringBuffer(errorDesc);
@ -170,12 +171,16 @@ public class CBuilder extends ACBuilder {
cos.write(buf.toString().getBytes()); cos.write(buf.toString().getBytes());
cos.flush(); cos.flush();
} }
stdout.close();
stderr.close();
epm.reportProblems();
subMonitor.done(); subMonitor.done();
monitor.setCanceled(isCanceled); monitor.setCanceled(isCanceled);
cos.close();
} }
} } catch (Exception e) {
catch (Exception e) {
CCorePlugin.log(e); CCorePlugin.log(e);
} }
monitor.done(); monitor.done();