- 
    CSR 
- 
    Resolution: Approved
- 
     P4 P4
- 
        source
- 
        minimal
- 
        A new method is added to an abstract class. The new method references a newly added type so even existing subclasses won't have a compilation or linkage issue.
- 
        Java API
- 
        JDK
Summary
Adding a way to inject better parameter names to method parameters when the names are not available in the classfiles.
Problem
Classfiles may record method parameters in two forms: either in the MethodParameters or the LocalVariableTable attribute. But if a method has neither of these attributes, then its parameters get a cryptic synthetic name.
An important group of methods that typically get the synthetic parameter names are abstract methods - these don't get debugging info (LocalVariableTable), so unless the classfile was compiled with an explicit "-parameters" option, there are not parameter names for the method.
The parameter names are visible to the API clients using VariableElements.getSimpleName().
Solution
The proposal is to augment com.sun.source.util.JavacTask with a way to set a provider of names for the parameters that don't have names in the classfiles.
Specification
Proposed is ParameterNameProvider which can be plugged into JavacTask and should provide user-friendly parameter names. A spec diff is attached and is also for convenience here:
http://cr.openjdk.java.net/~jlahoda/8217047/specdiff.04/overview-summary.html
- csr of
- 
                    JDK-8217047 Provide a way to inject missing parameter names -           
- Resolved
 
-         
