In ERXSqlHelper-->MySQLHelper-->handleDatabaseException it swallows the jdbc exception whole and never reports it. The best you ever get bubbled up to you in a completely non-descriptive custom validator exception.........
I have been meaning to log this as an issue for a long time, sorry for that, unless of course that is the intended behavior though I can't see why it would be.... ~Jake Code snippet from ERXSQLHelper reposted below for evaluation by more eyes. ------ @Override public boolean handleDatabaseException(EODatabaseContext databaseContext, Throwable throwable) { if(throwable instanceof EOGeneralAdaptorException) { EOGeneralAdaptorException e = (EOGeneralAdaptorException)throwable; NSDictionary userInfo = e.userInfo(); EOAdaptorOperation failedOp = userInfo==null?null:(EOAdaptorOperation)userInfo.objectForKey(EOAdaptorChannel.FailedAdaptorOperationKey); if(failedOp != null && failedOp.exception() instanceof JDBCAdaptorException) { JDBCAdaptorException ae = (JDBCAdaptorException)failedOp.exception(); // MySQL error codes: http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html switch(ae.sqlException().getErrorCode()) { case 1062: //Violates unique constraint handleUniqueConstraintAdaptorException(databaseContext, failedOp); break; default: } } } return false; } /** * Throws a validation exception for a unique constraint failure. * @param context The database context * @param failedOp The operation that failed * @throws NSValidation.ValidationException The exception thrown. The key for the validation template strings file is <code>UniqueConstraintException</code> */ protected void handleUniqueConstraintAdaptorException(EODatabaseContext context, EOAdaptorOperation failedOp) throws NSValidation.ValidationException { NSValidation.ValidationException ve = ERXValidationFactory.defaultFactory().createCustomException(null, "UniqueConstraintException"); throw ve; } } On Fri, Jan 28, 2011 at 5:22 PM, Chuck Hill <ch...@global-village.net> wrote: > > On Jan 28, 2011, at 2:16 PM, Simon wrote: > >> Check for a custom EC, custom DB context, or delegates for either of those >> as a place to start. At what point are you NOT seeing it? Could it just be >> getting ignored at the UI level? I have seen "clever" handling like this: >> >> public WOActionResults save() { >> try { >> editingContext().saveChanges(); >> } >> catch (Exception e) { >> } >> return context().page(); >> } >> >> nice :-) we have 'L' plates in the office that we dish out to people for >> that kind of stuff > > We used to have a cane, it was a caning offense. > > >> ('L' plates in the UK are for learner drivers - i have no idea if that >> translates around the globe..) > > It does in British Columbia. We also have N for the Newfie drivers (or is > that New drivers...). I can think of a few others that would be useful. > > >> > ps. is WOVNG still progressing ? >> >> Yes, about as well as your exception. :-P >> >> ahhh. ok. i guessed that form the number of files release on sourceforge :-P >> >> if there is anything worth punting out then please do so - we're about to >> start reviewing how we can improve validation and it would be good to see >> what you were trying to do with that stuff. > > I don't think much more got done, though I have more internally. It is an > interest of mine, so I would be keen on being part of the discussion. > > > Chuck > > -- > Chuck Hill Senior Consultant / VP Development > > Practical WebObjects - for developers who want to increase their overall > knowledge of WebObjects or who are trying to solve specific problems. > http://www.global-village.net/products/practical_webobjects > > > > > > > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/webobjects-dev/fisherja%40gmail.com > > This email sent to fishe...@gmail.com > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com