diff options
author | aclement <aclement> | 2006-02-15 11:10:46 +0000 |
---|---|---|
committer | aclement <aclement> | 2006-02-15 11:10:46 +0000 |
commit | 9e06d0efc2697c328f95d468631ec009443f8e43 (patch) | |
tree | 9ec21fe30b6d3b7cf207e6128ed39217a8231741 /tests/bugs151/pr127299/ModelErrorConversion.aj | |
parent | 81228854e0cd74f3a771aafbffb06b264fdac59f (diff) | |
download | aspectj-9e06d0efc2697c328f95d468631ec009443f8e43.tar.gz aspectj-9e06d0efc2697c328f95d468631ec009443f8e43.zip |
test and fix for 120527 and test (commented out) for 127299
Diffstat (limited to 'tests/bugs151/pr127299/ModelErrorConversion.aj')
-rw-r--r-- | tests/bugs151/pr127299/ModelErrorConversion.aj | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/bugs151/pr127299/ModelErrorConversion.aj b/tests/bugs151/pr127299/ModelErrorConversion.aj new file mode 100644 index 000000000..3366e15ca --- /dev/null +++ b/tests/bugs151/pr127299/ModelErrorConversion.aj @@ -0,0 +1,51 @@ +aspect ModelErrorConversion { + + + // convert exception types + after(Entity entity) throwing (HibernateException e): modelExec(entity) { + convertException(e, entity, thisJoinPoint); + } + after(Entity entity) throwing (ServiceException e): modelExec(entity) { + convertException(e, entity, thisJoinPoint); + } + after(Entity entity) throwing (SOAPException e): modelExec(entity) { + convertException(e, entity, thisJoinPoint); + } + after(Entity entity) throwing (SOAPFaultException e): modelExec(entity) { + convertException(e, entity, thisJoinPoint); + } + + /** execution of any method in the model */ + pointcut modelExecStatic() : + execution(* model..*(..)); + + pointcut modelExec(Entity entity) : + modelExecStatic() && this(entity); + // soften the checked exceptions + declare soft: ServiceException: modelExecStatic(); + declare soft: SOAPException: modelExecStatic(); + + + /** Converts exceptions to model exceptions, storing context */ + private void convertException(Exception e, Entity entity, + JoinPoint jp) { + ModelException me = new ModelException(e); + me.setEntity(entity); + me.setArgs(jp.getArgs()); + // ModelException extends RuntimeException, so this is unchecked + throw me; + } +} + +class HibernateException extends RuntimeException {} +class ServiceException extends Exception {} +class SOAPException extends Exception {} +class SOAPFaultException extends RuntimeException {} + +class Entity {} + +class ModelException extends RuntimeException { + public ModelException(Throwable t) { super(t); } + public void setEntity(Entity entity) {} + public void setArgs(Object[] argz) {} +} |