Bug 186065

Summary: StringIndexOutOfBoundsException in GCCScannerInfoConsoleParser
Product: [Tools] CDT Reporter: Sergey Prigogin <eclipse.sprigogin>
Component: cdt-buildAssignee: Anton Leherbauer <aleherb+eclipse>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: alexsli06, cdtdoug
Version: 4.0Keywords: contributed
Target Milestone: 4.0 RC3   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
Proposed fix cdtdoug: iplog+

Description Sergey Prigogin CLA 2007-05-08 22:30:16 EDT
CDT HEAD:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1768)
at org.eclipse.cdt.make.internal.core.scannerconfig.gnu.GCCScannerInfoConsoleParser.processSingleLine(GCCScannerInfoConsoleParser.java:131)
at org.eclipse.cdt.make.internal.core.scannerconfig.gnu.AbstractGCCBOPConsoleParser.processLine(AbstractGCCBOPConsoleParser.java:118)
at org.eclipse.cdt.internal.core.ConsoleOutputSniffer.processLine(ConsoleOutputSniffer.java:178)
at org.eclipse.cdt.internal.core.ConsoleOutputSniffer.access$0(ConsoleOutputSniffer.java:176)
at org.eclipse.cdt.internal.core.ConsoleOutputSniffer$ConsoleOutputStream.checkLine(ConsoleOutputSniffer.java:103)
at org.eclipse.cdt.internal.core.ConsoleOutputSniffer$ConsoleOutputStream.close(ConsoleOutputSniffer.java:77)
at org.eclipse.cdt.internal.core.ProcessClosure$ReaderThread.close(ProcessClosure.java:96)
at org.eclipse.cdt.internal.core.ProcessClosure.isAlive(ProcessClosure.java:191)
at org.eclipse.cdt.core.CommandLauncher.waitAndRead(CommandLauncher.java:149)
at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.invokeMake(CommonBuilder.java:1723)
at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.invokeBuilder(CommonBuilder.java:1602)
at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:751)
at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:513)
at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:482)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:273)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:354)
at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:494)
at org.eclipse.core.internal.resources.Project.build(Project.java:83)
at org.eclipse.cdt.make.internal.core.MakeTarget$1.run(MakeTarget.java:313)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1779)
at org.eclipse.cdt.make.internal.core.MakeTarget.build(MakeTarget.java:326)
at org.eclipse.cdt.make.ui.TargetBuild$1$1.run(TargetBuild.java:95)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1779)
at org.eclipse.cdt.make.ui.TargetBuild$1.run(TargetBuild.java:98)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 1 Anton Leherbauer CLA 2007-05-11 03:42:59 EDT
Do you have some sample build output which would show the error (to create a test case)?
Comment 2 Sergey Prigogin CLA 2007-05-11 22:17:31 EDT
Here is code that triggers the exception:

#include <sstream>
#include <string>

static void f() {
  ostringstream a;
  string b;

  a << "Missing closing quote << b;
}
Comment 3 Sergey Prigogin CLA 2007-06-02 17:52:27 EDT
Created attachment 69874 [details]
Proposed fix

Please apply.
Comment 4 Anton Leherbauer CLA 2007-06-04 06:01:35 EDT
Thanks Sergey, I have applied your patch and created a test case:
ScannerConfigConsoleParserTests.testParsingUnbalancedDoubleQuote_Bug186065
Comment 5 Chris Brealey CLA 2007-06-08 08:56:05 EDT
*** Bug 190334 has been marked as a duplicate of this bug. ***