Browse Source

Add release notes for AspectJ 1.9.21.2

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
tags/V1_9_21_2
Alexander Kriegisch 1 month ago
parent
commit
25175216ab
2 changed files with 42 additions and 1 deletions
  1. 41
    1
      docs/release/README-1.9.21.adoc
  2. 1
    0
      docs/release/README-1.9.9.adoc

+ 41
- 1
docs/release/README-1.9.21.adoc View 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


+ 1
- 0
docs/release/README-1.9.9.adoc View 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

Loading…
Cancel
Save