]> source.dussan.org Git - aspectj.git/commitdiff
Add release notes for AspectJ 1.9.21.2
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Wed, 13 Mar 2024 08:20:55 +0000 (09:20 +0100)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Wed, 13 Mar 2024 08:20:55 +0000 (09:20 +0100)
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
docs/release/README-1.9.21.adoc
docs/release/README-1.9.9.adoc

index de94479372bd8ddadc3a466eec27ce4373702366..fab41ae57e155c698032aac9b89264d6dff28b13 100644 (file)
@@ -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
 
index 98834a7bb086ef7034b14ad997f13ea88fbecedc..80408baf1d12088e83a3565bb587b6ca4da59477 100644 (file)
@@ -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