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.