Community
Participate
Working Groups
Build I20040512 There are a number of occurrences in this component of the dangerous idiom: try { ... } catch (Throwable e) { ... // e not re-thrown } It is very bad practice to catch Throwable (or Error) and eat it because there are myriad unrecoverable situations (like out of memory) that this will hide. A (partial) list of the places that look dangerous are: org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch - Main.java org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util - Dumper.java
The batch compiler is an independant tool which going to trap this exception and report it as an internal error. It isn't used inside Eclipse per se. Though we could probably only catch RuntimeException which are the ones we do mean to catch anyway here. Need to look closer at Dumper.
Just checked that Dumper (and IDumpable) are not used in jdt.core. We should just delete those.
Removed Dumper & IDumpable.
Replacing catch Throwable in compiler with: catch RuntimeException. VM traps are now surfaced. Fixed
Verified in 200405180816