aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
index e3e97517a..d534405da 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
@@ -215,12 +215,15 @@ public class BcelWeaver {
}
return type;
} else {
- // FIXME AV - better warning upon no such aspect from aop.xml
- RuntimeException ex = new RuntimeException("Cannot register non aspect: " + type.getName() + " , " + aspectName);
- if (trace.isTraceEnabled()) {
- trace.exit("addLibraryAspect", ex);
- }
- throw ex;
+ if (type.isMissing()) {
+ // May not be found if not visible to the classloader that can see the aop.xml during LTW
+ IMessage message = new Message("The specified aspect '"+aspectName+"' cannot be found", null, true);
+ world.getMessageHandler().handleMessage(message);
+ } else {
+ IMessage message = new Message("Cannot register '"+aspectName+"' because the type found with that name is not an aspect", null, true);
+ world.getMessageHandler().handleMessage(message);
+ }
+ return null;
}
}