aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/release/README-1.9.21.adoc42
-rw-r--r--docs/release/README-1.9.9.adoc1
2 files changed, 42 insertions, 1 deletions
diff --git a/docs/release/README-1.9.21.adoc b/docs/release/README-1.9.21.adoc
index de9447937..fab41ae57 100644
--- a/docs/release/README-1.9.21.adoc
+++ b/docs/release/README-1.9.21.adoc
@@ -5,7 +5,47 @@
// AspectJ_JDK_Update: Each a.b.c release needs a new release notes document. For a.b.c.d minors, the existing a.b.c
// document can be updated. After copying this document, remove the comment from the previous one.
-The releases 1.9.21 and 1.9.21.1 are described together in this document.
+The releases 1.9.21, 1.9.21.1 and 1.9.21.2 are described together in this document.
+
+= AspectJ 1.9.21.2
+
+_© Copyright 2024 Contributors. All rights reserved._
+
+_Release info: 1.9.21.2 available 13-Mar-2024_
+
+Please note that Bugzilla for issue management is deprecated and new issues should be filed as
+https://github.com/eclipse-aspectj/aspectj/issues/new[GitHub issues]. The list of issues addressed for 1.9.21.2 can be
+found here:
+
+* https://github.com/eclipse-aspectj/aspectj/issues?q=is%3Aissue+is%3Aclosed++milestone%3A1.9.21.2[GitHub 1.9.21.2]
+* https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&f0=OP&f1=OP&f3=CP&f4=CP&j1=OR&list_id=16866879&product=AspectJ&query_format=advanced&target_milestone=1.9.21.2[Bugzilla 1.9.21.2]
+
+== New features
+
+AspectJ 1.9.21.2 is a maintenance release with no new language features, but an important improvement and a bugfix,
+see below.
+
+== Improvements
+
+Previously, when targeting the same join point from multiple around advices in annotation-style @AspectJ syntax, there
+were limitations in functionality in concurrent (multi-threaded) situations, if the around advice code was not inlined.
+This was improved in xref:README-1.9.9#async_proceed[AspectJ 1.9.9] (see also https://github.com/eclipse-aspectj/aspectj/issues/128[issue #128]),
+but the improvement only applied to child threads directly created during aspect execution and would fail for
+pre-existing, long-lived threads, e.g. thread pools used by executor services. Furthermore, the improvement could lead
+to memory leaks, not cleaning up thread-local references to posssibly expensive objects. In such situations, users had
+to switch to native-syntax aspects which never had that problem to begin with due to their different internal structure.
+
+Now, https://github.com/eclipse-aspectj/aspectj/issues/141[issue #141] has been resolved, closing the gap and, as well
+as possible given their different internal structure, bringing @AspectJ aspects up to par with native-syntax aspects in
+concurrent situations, while simultaneously also addressing the memory leak https://github.com/eclipse-aspectj/aspectj/issues/288[issue #288]. This is a substantial improvement, and annotation-style syntax users are strongly engouraged to upgrade. Thanks
+to user _pagrawalgit_ for raising the memory leak issue and triggering me to think about the concurrency issue more
+broadly and finally solve both in one shot.
+
+== Other changes and bugfixes
+
+The fix for https://github.com/eclipse-aspectj/aspectj/issues/277[issue #277] in AspectJ 1.9.21.1 introduced a
+regression bug in the optional weaving cache now fixed in https://github.com/eclipse-aspectj/aspectj/issues/285[issue #285].
+Thanks to user _Kimming Lau_ for raising and re-testing both issues.
= AspectJ 1.9.21.1
diff --git a/docs/release/README-1.9.9.adoc b/docs/release/README-1.9.9.adoc
index 98834a7bb..80408baf1 100644
--- a/docs/release/README-1.9.9.adoc
+++ b/docs/release/README-1.9.9.adoc
@@ -38,6 +38,7 @@ AspectJ 1.9.9 supports https://openjdk.java.net/projects/jdk/18/[Java 18] and it
== Improvements
+[[async_proceed]]
In annotation style aspects, asynchronous `proceed()` calls in `@Around` advice now works in threads created from within
the advice. Previously, this was only working in native syntax aspects. There is still a limitation with regard to
asynchronous proceed, if you do not create the thread in the advice but want to use e.g. an `ExecutorService` with its