You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Oscar Bou (JIRA)" <ji...@apache.org> on 2013/07/31 21:37:52 UTC
[jira] [Updated] (ISIS-485) Clearer messages for validation
exceptions (specially MandatoryExceptions)
[ https://issues.apache.org/jira/browse/ISIS-485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oscar Bou updated ISIS-485:
---------------------------
Attachment: patch_validation_messages.diff
Find a git patch for this one.
We have created a new "getReasonMessage()" method on InteractionEvent as this:
public abstract class InteractionEvent extends EventObject {
.....
/**
* The reason message, if any, that this interaction may have been vetoed or
* otherwise disallowed.
*
* <p>
* This message should be overridden by subclasses for containing the Reason, the Identifier and any other relevant context information.
*
* @return
*/
public String getReasonMessage() {
if (this.getIdentifier() != null) {
return String.format("Reason: %s. Identifier: %s", this.getReason(), this.getIdentifier());
} else {
return String.format("Reason: %s", this.getReason());
}
}
.....
}
And use that method to "construct" the InteractionException, instead of "getReason()":
public abstract class InteractionException extends ApplicationException {
....
public InteractionException(final InteractionEvent interactionEvent) {
- super(interactionEvent.getReason());
+ super(interactionEvent.getReasonMessage());
this.interactionEvent = interactionEvent;
}
....
> Clearer messages for validation exceptions (specially MandatoryExceptions)
> --------------------------------------------------------------------------
>
> Key: ISIS-485
> URL: https://issues.apache.org/jira/browse/ISIS-485
> Project: Isis
> Issue Type: Improvement
> Components: Core
> Affects Versions: core-1.2.0
> Reporter: Oscar Bou
> Assignee: Dan Haywood
> Attachments: patch_validation_messages.diff
>
>
> Move from validation exception messages like this one:
> org.apache.isis.applib.services.wrapper.InvalidException: Mandatory
> at org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.toException(DomainObjectInvocationHandler.java:584)
> at org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.notifyListenersAndVetoIfRequired(DomainObjectInvocationHandler.java:556)
> at org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.handleActionMethod(DomainObjectInvocationHandler.java:506)
> at org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:236)
> at org.apache.isis.core.wrapper.internal.InvocationHandlerMethodInterceptor.intercept(InvocationHandlerMethodInterceptor.java:37)
> at ....
> To clear messages like the following one that allow to better identify the source of the validation exception:
> org.apache.isis.applib.services.wrapper.InvalidException: Source: com.xms.framework.risk.domain.model.RiskRegister@2012052f. Reason: Mandatory. Identifier: com.xms.framework.risk.domain.model.RiskRegister#addQuantitativeRiskToAsset(java.lang.String,java.lang.String,com.xms.framework.architecture.domain.model.Entity,com.xms.framework.risk.domain.model.threat.Threat,java.math.BigDecimal,java.math.BigDecimal). Position: 2. Proposed: null
> at org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.toException(DomainObjectInvocationHandler.java:584)
> at org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.notifyListenersAndVetoIfRequired(DomainObjectInvocationHandler.java:556)
> at org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.handleActionMethod(DomainObjectInvocationHandler.java:506)
> at org.apache.isis.core.wrapper.internal.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:236)
> at org.apache.isis.core.wrapper.internal.InvocationHandlerMethodInterceptor.intercept(InvocationHandlerMethodInterceptor.java:37)
> at ...
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira