- for (SourceSpecificContext source : sources) {
- final RootStatementContext<?, ?, ?> root = source.getRoot();
- rootStatements.add(root.buildDeclared());
- rootEffectiveStatements.add(root.buildEffective());
+ try {
+ for (SourceSpecificContext source : sources) {
+ final RootStatementContext<?, ?, ?> root = source.getRoot();
+ sourceId = Utils.createSourceIdentifier(root);
+ rootStatements.add(root.buildDeclared());
+ rootEffectiveStatements.add(root.buildEffective());
+ }
+ } catch (SourceException ex) {
+ throw new SomeModifiersUnresolvedException(currentPhase, sourceId, ex);
+ } finally {
+ RecursiveObjectLeaker.cleanup();