aboutsummaryrefslogtreecommitdiffstats
path: root/docs/progGuideDB/semantics.xml
diff options
context:
space:
mode:
authorehilsdal <ehilsdal>2003-07-31 06:52:04 +0000
committerehilsdal <ehilsdal>2003-07-31 06:52:04 +0000
commitabe271f8d46f33116d7a5af5048a88b7358b8b3f (patch)
treec35a1249b65c43f9965dec060257a0f7404612fd /docs/progGuideDB/semantics.xml
parenta01ac454bb23e0df78b358b489f60bf53c147ebf (diff)
downloadaspectj-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.xml17
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>