diff options
author | ehilsdal <ehilsdal> | 2003-07-31 06:52:04 +0000 |
---|---|---|
committer | ehilsdal <ehilsdal> | 2003-07-31 06:52:04 +0000 |
commit | abe271f8d46f33116d7a5af5048a88b7358b8b3f (patch) | |
tree | c35a1249b65c43f9965dec060257a0f7404612fd /docs/progGuideDB/semantics.xml | |
parent | a01ac454bb23e0df78b358b489f60bf53c147ebf (diff) | |
download | aspectj-abe271f8d46f33116d7a5af5048a88b7358b8b3f.tar.gz aspectj-abe271f8d46f33116d7a5af5048a88b7358b8b3f.zip |
Fix for
Bugzilla Bug 35551: "declare soft" in abstract aspect have no effect
Specifying that declare soft behaves like advice in that
it must be concretized to have an effect.
Diffstat (limited to 'docs/progGuideDB/semantics.xml')
-rw-r--r-- | docs/progGuideDB/semantics.xml | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/docs/progGuideDB/semantics.xml b/docs/progGuideDB/semantics.xml index 0bc896254..6e8f8f649 100644 --- a/docs/progGuideDB/semantics.xml +++ b/docs/progGuideDB/semantics.xml @@ -2224,6 +2224,23 @@ <para>except, in addition to wrapping the exception, it also affects Java's static exception checking mechanism. </para> + <para> Like advice, the declare soft form has no effect in an + abstract aspect that is not extended by a concreate aspect. So + the following code will not compile unless it is compiled with an + extending concrete aspect:</para> + +<programlisting> + abstract aspect A { + abstract pointcut softeningPC(); + + before() : softeningPC() { + Class.forName("FooClass"); // error: uncaught ClassNotFoundException + } + + declare soft : ClassNotFoundException : call(* Class.*(..)); + } +</programlisting> + </sect2> <sect2> |