Hi Ari,
As I've mentioned offline, I think that if an exception message is
set by the user, it may be a bad idea to clobber it
(CayenneRuntimeException 'getMessage()' kind of does it too, doh!).
The good news is that Cayenne internally uses a constructor without a
message: "ValidationException(ValidationResult)", so we can use the
code below to build an informative message:
private static String createMessage(ValidationResult result) {
// Ari's code goes here
}
public ValidationException(ValidationResult result) {
this(createMessage(result), result);
}
Do you think this'll work?
Andrus
On Jul 9, 2007, at 1:05 PM, Aristedes Maniatis wrote:
> Validation exception messages in three tier are pretty unhelpful by
> the time they get to the client. We've been extending them by
> adding this to ValidationException:
>
>
> /**
> * Returns message that includes the details of the validation
> failures.
> */
> public String getMessage() {
> String message = super.getMessage();
> if (result.hasFailures()) {
> message = message + " validation failures: ";
> for (int i = 0; i < result.getFailures().size(); i++) {
> message = message + ((ValidationFailure)
> result.getFailures().get(i)).toString();
> if (i < result.getFailures().size() - 1) {
> message = message + ", ";
> }
> }
> }
> return message;
> }
>
>
> Any thoughts about side effects this might have for anyone?
>
>
> As an aside, what would be even more helpful is if three tier
> returned not a CayenneRuntimeException, but a ValidationException
> to the client. I don't know if that is hard to change.
>
>
> Ari
>
>
>
>
>
> -------------------------->
> ish
> http://www.ish.com.au
> Level 1, 30 Wilson Street Newtown 2042 Australia
> phone +61 2 9550 5001 fax +61 2 9550 4001
> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
>
>
This archive was generated by hypermail 2.0.0 : Mon Jul 09 2007 - 06:28:26 EDT