Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 319439 - EAR Validation throws exceptions on project close
Summary: EAR Validation throws exceptions on project close
Status: RESOLVED FIXED
Alias: None
Product: WTP Java EE Tools
Classification: WebTools
Component: jst.j2ee (show other bugs)
Version: 3.0.5   Edit
Hardware: PC Windows Server 2003
: P3 normal (vote)
Target Milestone: 3.0.5 P   Edit
Assignee: Jason Sholl CLA
QA Contact: Chuck Bridgham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 319440
  Show dependency tree
 
Reported: 2010-07-09 17:58 EDT by Jason Sholl CLA
Modified: 2010-07-26 17:38 EDT (History)
1 user (show)

See Also:
cbridgha: review+


Attachments
patch for 305P (1.29 KB, patch)
2010-07-09 18:02 EDT, Jason Sholl CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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