Bug 37755 Inner class not displayed in Outline view
I've defined 2 inner classes, but only 1 is shown in the Outline view. With the 2 nested classes shown below, only DBChoice is displayed under the HearingFeedback class in the Outline: public class HearingFeedback extends Action { class DbAnswer { int question_d; String answer_text; String answered; ArrayList choices; DbAnswer() { // no-arg constructor } DbAnswer(int question_id, String answer_text, String answered) { this.question_d = question_id; this.answer_text = answer_text; this.answered = answered; } } // End of DbAnswer class DbChoice { int choice_id; String selected; DbChoice() { // no-arg constructor } DbChoice(int choice_id, String selected) { this.choice_id = choice_id; this.selected = selected; } } // End of DbChoice ...
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaOutlinePage.java
protected boolean mustUpdateParent(IJavaElementDelta delta, IJavaElement element) {
					if (element instanceof IMethod) {
						if ((delta.getKind() & IJavaElementDelta.ADDED) != 0) {
							try {
								return ((IMethod)element).isMainMethod();
							} catch (JavaModelException e) {
								JavaPlugin.log(e.getStatus());
							}
						}
						return "main".equals(element.getElementName()); 
					}
					return false;
				}
				
				protected ISourceRange getSourceRange(IJavaElement element) throws JavaModelException {
					if (element instanceof IMember && !(element instanceof IInitializer))
						return ((IMember) element).getNameRange();
					if (element instanceof ISourceReference)
						return ((ISourceReference) element).getSourceRange();
					return null;
				}
				
				protected boolean overlaps(ISourceRange range, int start, int end) {
					return start <= (range.getOffset() + range.getLength() - 1) && range.getOffset() <= end;
				}
				
				protected boolean filtered(IJavaElement parent, IJavaElement child) {
					
					Object[] result= new Object[] { child };
					ViewerFilter[] filters= getFilters();