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

Bug 319439

Summary: EAR Validation throws exceptions on project close
Product: [WebTools] WTP Java EE Tools Reporter: Jason Sholl <jsholl>
Component: jst.j2eeAssignee: Jason Sholl <jsholl>
Status: RESOLVED FIXED QA Contact: Chuck Bridgham <cbridgha>
Severity: normal    
Priority: P3 CC: ccc
Version: 3.0.5Flags: cbridgha: review+
Target Milestone: 3.0.5 P   
Hardware: PC   
OS: Windows Server 2003   
Whiteboard:
Bug Depends on:    
Bug Blocks: 319440    
Attachments:
Description Flags
patch for 305P none

Description Jason Sholl CLA 2010-07-09 17:58:22 EDT
The EAR Validator is throwing exceptions when its module projects are closed.  Here is an example of the exceptions:

org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException
Stack trace of nested exception:
org.eclipse.jst.j2ee.commonarchivecore.internal.exception.NoModuleFileException: A file does not exist for module element having uri: EAR14Client.jar
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.checkType(ModuleRefImpl.java:497)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.initModuleFileFromEAR(ModuleRefImpl.java:128)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.getModuleFile(ModuleRefImpl.java:106)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EARFileImpl.getModuleFile(EARFileImpl.java:93)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EARFileImpl.getDeploymentDescriptor(EARFileImpl.java:333)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.getDeploymentDescriptor(ModuleRefImpl.java:165)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.clearUpSubTaskMessageDestinationMessages(EarValidator.java:838)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validateMessageDestinationRefs(EarValidator.java:811)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validateMessageDestinationRefs(EarValidator.java:803)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validateMessageDestinations(EarValidator.java:748)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validate(EarValidator.java:125)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validateInJob(EarValidator.java:144)
	at org.eclipse.jst.j2ee.internal.validation.UIEarValidator.validateInJob(UIEarValidator.java:276)
	at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException
Stack trace of nested exception:
org.eclipse.jst.j2ee.commonarchivecore.internal.exception.NoModuleFileException: A file does not exist for module element having uri: EAR14EJB.jar
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.checkType(ModuleRefImpl.java:497)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.initModuleFileFromEAR(ModuleRefImpl.java:128)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.getModuleFile(ModuleRefImpl.java:106)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EARFileImpl.getModuleFile(EARFileImpl.java:93)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EARFileImpl.getDeploymentDescriptor(EARFileImpl.java:333)
	at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.getDeploymentDescriptor(ModuleRefImpl.java:165)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.clearUpSubTaskMessageDestinationMessages(EarValidator.java:838)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validateMessageDestinationRefs(EarValidator.java:811)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validateMessageDestinationRefs(EarValidator.java:803)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validateMessageDestinations(EarValidator.java:748)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validate(EarValidator.java:125)
	at org.eclipse.jst.j2ee.model.internal.validation.EarValidator.validateInJob(EarValidator.java:144)
	at org.eclipse.jst.j2ee.internal.validation.UIEarValidator.validateInJob(UIEarValidator.java:276)
	at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 1 Jason Sholl CLA 2010-07-09 18:02:17 EDT
Created attachment 173928 [details]
patch for 305P

The fix is simple; eat the exception is it is the result of a NoModuleFileException.  There is no point in logging this error to the user.  Also fixed up the stack dump to use the logger when a different exception is thrown.
Comment 2 Chuck Bridgham CLA 2010-07-12 13:39:04 EDT
approved
Comment 3 Carl Anderson CLA 2010-07-26 17:38:44 EDT
Committed to R3_0_5_patches