You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2018/01/24 15:16:00 UTC

[jira] [Commented] (ISIS-1848) References of type java.lang.Object (sometimes) not rendered correctly in Wicket viewer

    [ https://issues.apache.org/jira/browse/ISIS-1848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16337731#comment-16337731 ] 

ASF subversion and git services commented on ISIS-1848:
-------------------------------------------------------

Commit a56f19dad5a628d059fd561c076aa3f5b6edca41 in isis's branch refs/heads/maint-1.16.1 from [~danhaywood]
[ https://gitbox.apache.org/repos/asf?p=isis.git;h=a56f19d ]

ISIS-1848: ensures that FreeStandingList does not incorrectly return java.lang.Object's specId, and adds new metamodel validator to detect this situation in future.


> 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
>            Assignee: Dan Haywood
>            Priority: Major
>             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)