Bug 82041 [misc] ClassFileEditor uses generic names for method arguments when source info is available in class file
Version: 3.1.0 Build id: 200412210800 When you open a class file that has no source attachment but has full debugging information the editor does not show the real names of method arguments. 1. Open a class file editor on a class file that does not have a source attachment but has local variable debugging info. 2. Notice that the method arguments have generic names "arg<n>" ClassFileEditor is not asking the class file reader to look in the method bodies for info. In ClassFileEditor#updateCodeView, change: int flags= IClassFileReader.FIELD_INFOS | IClassFileReader.METHOD_INFOS | IClassFileReader.SUPER_INTERFACES; to: int flags= IClassFileReader.FIELD_INFOS | IClassFileReader.METHOD_INFOS | IClassFileReader.METHOD_BODIES | IClassFileReader.SUPER_INTERFACES; It doesn't appear to parse all of the byte code of the method bodies so it shouldn't slow things down too much for large class files.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/ClassFileEditor.java
fScrolledComposite.addControlListener(new ControlListener() {
					public void controlMoved(ControlEvent e) {}
					public void controlResized(ControlEvent e) {
						Rectangle clientArea = fScrolledComposite.getClientArea();
						
						ScrollBar verticalBar= fScrolledComposite.getVerticalBar();
						verticalBar.setIncrement(VERTICAL_SCROLL_INCREMENT);
						verticalBar.setPageIncrement(clientArea.height - verticalBar.getIncrement());
		
						ScrollBar horizontalBar= fScrolledComposite.getHorizontalBar();
						horizontalBar.setIncrement(HORIZONTAL_SCROLL_INCREMENT);
						horizontalBar.setPageIncrement(clientArea.width - horizontalBar.getIncrement());
					}
				});
	
				Composite composite= createComposite(fScrolledComposite);
				composite.setLayout(new GridLayout());
		
				createTitleLabel(composite, JavaEditorMessages.getString("SourceAttachmentForm.title")); 
				createLabel(composite, null);
				createLabel(composite, null);
		
				createHeadingLabel(composite, JavaEditorMessages.getString("SourceAttachmentForm.heading")); 
		
				Composite separator= createCompositeSeparator(composite);
				GridData data= new GridData(GridData.FILL_HORIZONTAL);
				data.heightHint= 2;
				separator.setLayoutData(data);