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
private final IClassFile fFile;
			private ScrolledComposite fScrolledComposite;
			private Color fBackgroundColor;
			private Color fForegroundColor;
			private Color fSeparatorColor;
			private List fBannerLabels= new ArrayList();
			private List fHeaderLabels= new ArrayList();
			private Font fFont;
			
			/**
			 * Creates a source attachment form for a class file. 
			 */
			public SourceAttachmentForm(IClassFile file) {
				fFile= file;
			}
		
			/**
			 * Returns the package fragment root of this file.
			 */
			private IPackageFragmentRoot getPackageFragmentRoot(IClassFile file) {
		
				IJavaElement element= file.getParent();
				while (element != null && element.getElementType() != IJavaElement.PACKAGE_FRAGMENT_ROOT)
					element= element.getParent();
		
				return (IPackageFragmentRoot) element;		
			}