Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 331798

Summary: Use scan preference page does not validate archives
Product: [Eclipse Project] PDE Reporter: Michael Rennie <Michael_Rennie>
Component: API ToolsAssignee: Michael Rennie <Michael_Rennie>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: ankur_sharma, curtis.windatt.public
Version: 3.6Flags: curtis.windatt.public: review+
Target Milestone: 3.7 M4   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
proposed fix
none
patch none

Description Michael Rennie CLA 2010-12-03 13:21:27 EST
code from HEAD

The new Use scan preference page allows you to select an archive that contains a use scan, which is pretty cool, but currently you can select *any* archive, and no validation is done on it to see if it actually has a use scan in it.

When the build runs with an archive that does not contain a use scan you get this handsome exception:

java.lang.Exception: The directory that contains xml reports must be specified
at org.eclipse.pde.api.tools.internal.search.UseScanParser.parse(UseScanParser.java:230)
at org.eclipse.pde.api.tools.internal.search.UseScanManager.fetch(UseScanManager.java:181)
at org.eclipse.pde.api.tools.internal.search.UseScanManager.getExternalDependenciesFor(UseScanManager.java:118)
at org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.checkExternalDependencies(BaseApiAnalyzer.java:314)
at org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.analyzeComponent(BaseApiAnalyzer.java:281)
at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.buildAll(ApiAnalysisBuilder.java:517)
at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.build(ApiAnalysisBuilder.java:292)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:713)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:188)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:225)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:278)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:281)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:242)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:380)
at org.eclipse.core.internal.resources.Project$1.run(Project.java:620)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2313)
at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:599)
at org.eclipse.core.internal.resources.Project.build(Project.java:116)
at org.eclipse.pde.api.tools.internal.util.Util$BuildJob.run(Util.java:216)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

The longer the build went the more of these exceptions I got. I am assuming I get one per project that got built (before I cancelled the build).
Comment 1 Michael Rennie CLA 2010-12-03 16:34:27 EST
Created attachment 184516 [details]
proposed fix

patch checks the form of an archive to see if it has a directory like:

/xml/<versioned dir>/<versioned dir>/

The patch also contains some polish in wording and the fix to bug 331815
Comment 2 Michael Rennie CLA 2010-12-03 16:35:55 EST
applied to HEAD
Comment 3 Ankur Sharma CLA 2010-12-04 17:18:57 EST
Small glitch. The valid archive is shown invalid if the extension is in uppercase ('ZIP')
Comment 4 Ankur Sharma CLA 2010-12-04 17:20:59 EST
Created attachment 184542 [details]
patch
Comment 5 Ankur Sharma CLA 2010-12-04 17:21:49 EST
Fixed in HEAD
Comment 6 Curtis Windatt CLA 2010-12-07 13:52:51 EST
Verified in I20101206-1800