Hi , 
I debug simple-app for  issue #1596 ,and trace into FacetProcessor.java 
        public class FacetProcessor implements ServicesInjectorAware {        
........             public void processParams(

                        final Class<?> introspectedClass,

                        final Method method,

                        final int paramNum,

                        final MethodRemover methodRemover,

                        final FacetedMethodParameter facetedMethodParameter) {

 355             for (FeatureType featureType : FeatureType.PARAMETERS_ONLY) {

 356                      processParams(introspectedClass, method, paramNum, 
methodRemover, facetedMethodParameter, featureType);

 357             }

            }       ......       }
From line 355 to 357, the loop controlled by FeatureType.PARAMETERS_ONLY ,  in 
version 1.13.0 FeatureType.PARAMETERS_ONLY  just contain 1 element, but in 
version 1.14.0 it contain 2elements.so in version 1.14.0 processParams will be 
called twice, and create a NameFacet instance tree like below:
           namedFacetForParameterLayoutAnnotation                               
      |- underlyingFacet :  namedFacetTranslated                                
                                              |- underlyingFacet : 
namedFacetForParameterLayoutAnnotation
 So when       ObjectActionParameterAbstract#getName()  get called, it  return 
a NamedFacetForParameterLayoutAnnotation instance  in isis version 1.14.0, but 
namedFacetTranslated in version 1.13.0.
May be above loop need some decision machanism to avoid call twice ?
Best Reagrds, 
James.



Reply via email to