| Summary: | Missing error prevents edtCompiler.eglar from loading | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Joseph Vincens <jvincens> |
| Component: | EDT | Assignee: | Paul Harmon <pharmon> |
| Status: | CLOSED WONTFIX | QA Contact: | |
| Severity: | normal | ||
| Priority: | P1 | CC: | jspadea |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | |||
|
Description
Joseph Vincens
This is a separate issue from the defect, but is shown in the stack trace - it's possible for an exception to be thrown before the builder has invoked Environment.pushEnv() in ProjectEnvironmentManager.beginBuilding(), meaning its environment is not pushed, but then it will still invoke Environment.popEnv() in ProjectEnvironmentManager.endBuilding() - causing the EmptyStackException. We can either add a check in endBuilding() to see if we should do a pop, or we can just put that safety net directly in Environment.popEnv() (and PartEnvironment.popEnv()). I have added a flag to ProjectEnvironmentManager to fix the problem that Justin mentioned. The reason that an error is not thrown during validation for the missing enumeration is because we are getting the enumeration from the systemparts eglar, since the source is missing. I would like to add a step in the instructions on how to modify system parts to say that, before bringing up the IDE, you should delete the edtCompiler.eglar. However, this is not possible at the moment, due to the fact that this eglar is actually used to help bootstrap the compilation of the systemparts. Without this eglar in place, compilation of the system parts in edt.compiler will fail. This will be fixed once the part binders are updated to not hardcode the primitive parts. Until then, you will need to be careful not to delete system parts when editing the egl source in edt.compiler Looking back at this, I do not think that we will ever be able to compile the system parts if the EGLARs are not present. Because of this, there is no way to prevent someone from deleting the source for a system part and then creating a bad eglar. won't be fixed |