You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2018/02/23 16:08:00 UTC

[jira] [Created] (ISIS-1874) Parented checkboxes fails - NPEs and incorrect facets.

Dan Haywood created ISIS-1874:
---------------------------------

             Summary: Parented checkboxes fails - NPEs and incorrect facets.
                 Key: ISIS-1874
                 URL: https://issues.apache.org/jira/browse/ISIS-1874
             Project: Isis
          Issue Type: Bug
            Reporter: Dan Haywood


Two separate issues:
 # NPE for a parented collection with no toggle box column (the AssociatedWithProvider is always created, but may return a null toggle box column; this isn't guarded for.
 # When a choices facet is installed for a parameter, doesn't check the type of the parameter against the collection, meaning cannot invoke action.

Workaround: disable the "associateWith" or memberOrder

Example of (1) - fails with NPE (though action is executed)
{code:java}
@Getter @Setter
private SortedSet<Occupancy> occupancies = new TreeSet<>();

// associated via .layout.xml
public Occupancy newOccupancy(
        final @Parameter(optionality = Optionality.OPTIONAL) LocalDate startDate,
        final Unit unit) {
    Occupancy occupancy = occupancyRepository.newOccupancy(this, unit, startDate);
    occupancies.add(occupancy);
    return occupancy;
}

public LocalDate default0NewOccupancy() {
    return getTenancyStartDate();
}

public List<Unit> choices1NewOccupancy() {
    return getProperty()!=null ? unitRepository.findByProperty(getProperty()) : unitRepository.allUnits();
}
{code}
 

Example of (2) - fails with AgreementRole incompatible with Party.  Workaround is to ensure there's an explicit autoComplete or choices
{code:java}

@javax.jdo.annotations.Persistent(mappedBy = "agreement", defaultFetchGroup = "true")
@Collection(editing = Editing.DISABLED)
@CollectionLayout(render = RenderType.EAGERLY)
@Getter @Setter
private SortedSet<AgreementRole> roles = new TreeSet<>();

@MemberOrder(name = "roles", sequence = "1")
public Agreement newRole(
        final AgreementRoleType type,
        final Party party,
        final @Parameter(optionality = Optionality.OPTIONAL) LocalDate startDate,
        final @Parameter(optionality = Optionality.OPTIONAL) LocalDate endDate) {
    createRole(type, party, startDate, endDate);
    return this;
}
public List<AgreementRoleType> choices0NewRole() {
    return agreementRoleTypeRepository.findApplicableTo(getType());
}

public LocalDate default2NewRole() {
    return getEffectiveInterval().startDate();
}

public LocalDate default3NewRole() {
    return getEffectiveInterval().endDate();
}
{code}
^^^ the problem triggers on Party, not on AgreementRoleType, because the latter has an explicit choices method.

 



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