Dan Haywood created ISIS-1848:
---------------------------------

             Summary: References of type java.lang.Object (sometimes) not 
rendered correctly in Wicket viewer
                 Key: ISIS-1848
                 URL: https://issues.apache.org/jira/browse/ISIS-1848
             Project: Isis
          Issue Type: Bug
    Affects Versions: 1.15.1
            Reporter: Dan Haywood
             Fix For: 1.16.1


This is down to a race condition, I think.

At any rate, the ObjectSpecificationOnStandaloneList for FreeStandingList (the 
internal pojo that holds the result of an action invocation) is asked for its 
ObjectSpecId.  It tries to do this by asking for the value of the corresponding 
ObjectSpecIfFacet.

However, no such facet (in some circumstances, presumably) is installed for 
this ObjectSpec, and so it searches up the hierarchy.  The superclass is 
java.lang.Object, and so we return the ObjectSpecId for java.lang.Object.

This in turn causes the cache of ObjectSpecId -> ObjectSpecification's to be 
corrupted, with java.lang.Object mapping to the list.

In the Wicket viewer, when attempting to render a reference property of type 
java.lang.Object (such as the Task_object mixin for Estatio), the 
SpecificationLoader reports that a reference of this type is not isObject() 
(because it's using ObjectSpecificationOnStandaloneList), resulting in an 
UnknownPanel being selected to render the Wicket model for the reference 
property.  This simply shows a toString().

The fix, I think, is to not search up the hierarchy in the case of 
ObjectSpecIdFacet... an ObjectSpecification must be able to answer this 
question itself.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to