aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Regression test for #190Alexander Kriegisch2022-12-303-0/+36
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix indentation in ajc1919.xml (cosmetics)Alexander Kriegisch2022-12-301-8/+8
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Improve code and documentation for #366085 fixAlexander Kriegisch2022-12-281-39/+52
| | | | | | | | | | | This commit is a follow-up for 65f1ec72. The SOURCE retention case is documented now and considered in a few more call sites. The previously already similar code structures in - DeclareAnnotation.ensureAnnotationDiscovered, - DeclareAnnotation.getAnnotationType have both been streamlined and still remain logically in sync. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* IDE.md: update AJDT version infoAlexander Kriegisch2022-12-221-2/+2
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Set version to 1.9.20-SNAPSHOTAlexander Kriegisch2022-12-2128-28/+28
|
* AspectJ release 1.9.19V1_9_19Alexander Kriegisch2022-12-2128-28/+28
|
* BCEL: use MAX_CP_ENTRIES from internal class, not from JREAlexander Kriegisch2022-12-211-5/+4
| | | | | | | | | | | | Instead of importing com.sun.org.apache.bcel.internal.Const, use use org.aspectj.apache.bcel.Constants. The former class is from the internal JRE module 'java.xml' which is not exposed by default. Actually, no existing test failed because of it, but javadoc generation for the AspectJ weaver. Relates to #192. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Bump JDT Core to release 1.9.19Alexander Kriegisch2022-12-211-1/+1
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Update release notes for 1.9.19 (Java 19)Alexander Kriegisch2022-12-211-31/+26
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix #366085 concerning declared annotations with source retentionAlexander Kriegisch2022-12-218-7/+55
| | | | | | | | | | | | | | | See https://bugs.eclipse.org/bugs/show_bug.cgi?id=366085. See https://stackoverflow.com/q/74618269/1082681. The issue described in the Bugzilla issue is about 'declare @type', but similar issues also existed for 'declare @field', 'declare @method', 'declare @constructor'. This fix is rather superficial and leaves things to be desired, because it is rather hacky and simply ignores errors source retention annotation declarations during weaving. A better fix would drop the corresponding declarations while parsing and also issue compiler warnings in each case. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Merge pull request #187 from eclipse/java-19Alexander Kriegisch2022-12-2181-395/+1638
|\ | | | | Java 19 support
| * Add release notes for 1.9.19 (Java 19)Alexander Kriegisch2022-12-212-0/+165
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Add tests for Java 19 record patternsAlexander Kriegisch2022-12-2111-7/+297
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Bump ECJ version in messages_aspectj.propertiesAlexander Kriegisch2022-12-201-1/+1
| | | | | | | | | | | | Eclipse Compiler 19f448f47c9e3e (15Dec2022) - Java19 Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Merge branch 'master' into java-19Alexander Kriegisch2022-11-131-4/+21
| |\ | |/ |/|
* | Address upstream BCEL vulnerability CVE-2022-42920Alexander Kriegisch2022-11-131-4/+21
| | | | | | | | | | | | | | | | | | | | Fixes #192. See https://github.com/advisories/GHSA-97xg-phpr-rg8q. See https://issues.apache.org/jira/browse/BCEL-363. See https://github.com/apache/commons-bcel/pull/147. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * OutputSpec.matchesThisVm better supports version rangesAlexander Kriegisch2022-10-0512-293/+298
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vmVersionRanges might be a single version like "9", a list of versions like "1.2,1.3,1.4,1.5", an equivalent range of "1.2-1.5", an open range like "-1.8", "9-" (equivalent to "9+") or a more complex list of ranges like "-1.6,9-11,13-14,17-" or "8,11,16+". Empty ranges like in "", " ", "8,,14", ",5", "6-," will be ignored. I.e., they will not yield a positive match. Bogus ranges like "9-11-14" will be ignored, too. Existing XML test specs using '<line text="..." vm="v,v2,...,vn"/> have been adjusted to use version ranges rather than long lists of consecutive versions. Furthermore, ranges with a trailing '+' like '14+' were replaced by using the new canonical format '14-', even though the parser still correctly recognises '14+'. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * LangUtil: improve Java version major/minor parsingAlexander Kriegisch2022-10-051-3/+4
| | | | | | | | | | | | | | - Ignore everything including and after '+' in versions like '19+36-2238' - Add minor '.0' to Java versions like '19', '19+36-2238' Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Fix tests due to changed JDK 'toString' methods in Java 19Alexander Kriegisch2022-10-033-42/+51
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Add the first few Java 19 testsAlexander Kriegisch2022-10-0316-3/+770
| | | | | | | | | | | | | | | | | | | | For now, only the "pattern matching for switch" tests from previews 1 and 2 were adjusted to work in preview 3, because guarded patterns were replaced by 'when' clauses in 'switch' blocks. Therefore, existing test classes did not compile anymore and had to be replaced by syntactically upgraded versions with content merged from preview 1 and 2 classes. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Deactivate Java 18 preview language feature testsAlexander Kriegisch2022-10-033-11/+14
| | | | | | | | | | | | and enable LangUtil to parse Java versions like '19+36-2238'. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Remove Batik path entries from test classpathAlexander Kriegisch2022-10-031-7/+8
| | | | | | | | | | | | | | | | | | | | | | Firstly, Batik is not needed for running AspectJ tests. Secondly, the fixed Windows path separators led to GitHub CI/CD tests failing under Java 18+ on GitHub. Replacing ';' by 'File.pathSeparator' would have fixed the problem, but removing the paths altogether is the cleaner solution. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Cosmetic fixes in Java 18 tests (e.g. copyright year 2022)Alexander Kriegisch2022-10-038-13/+9
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Do not run Java 18 preview feature tests with Java 19 JDT CoreAlexander Kriegisch2022-10-031-2/+2
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Bump ASM to 9.4, supporting Java 20 class filesAlexander Kriegisch2022-10-021-1/+1
| | | | | | | | | | | | | | Even though we just upgraded to 9.3 for Java 19, it does not hurt to have ASM recognise the Java 20 class file major version. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Set Maven version to 1.9.19-SNAPSHOTAlexander Kriegisch2022-10-0228-29/+29
| | | | | | | | | | | | | | It makes sense to indicate the Java version in the minor-minor of AspectJ artifacts. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Set Java 19 compiler version after JDT Core mergeAlexander Kriegisch2022-10-021-1/+1
| | | | | | | | | | | | | | In messages_aspectj.properties, set compiler.version to "Eclipse Compiler 5fd28398cc7aba (21Sep2022) - Java19". Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * First Java 19 version, barely tested.Alexander Kriegisch2022-10-015-10/+16
|/ | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add docs/dist/LICENSE-AspectJ.html to all public artifactsAlexander Kriegisch2022-10-019-7/+65
| | | | | | | | | | | | | | The license file will be included right in the main directory of both binary and source artifacts for - AspectJ Matcher, - AspectJ Runtime, - AspectJ Weaver, - AspectJ Tools (Compiler), - AspectJ Installer. Fixes #185. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* vuln-fix: Partial Path Traversal VulnerabilityJonathan Leitschuh2022-09-102-2/+2
| | | | | | | | | | | | | | | | | | | | | | | This fixes a partial path traversal vulnerability. Replaces `dir.getCanonicalPath().startsWith(parent.getCanonicalPath())`, which is vulnerable to partial path traversal attacks, with the more secure `dir.getCanonicalFile().toPath().startsWith(parent.getCanonicalFile().toPath())`. To demonstrate this vulnerability, consider `"/usr/outnot".startsWith("/usr/out")`. The check is bypassed although `/outnot` is not under the `/out` directory. It's important to understand that the terminating slash may be removed when using various `String` representations of the `File` object. For example, on Linux, `println(new File("/var"))` will print `/var`, but `println(new File("/var", "/")` will print `/var/`; however, `println(new File("/var", "/").getCanonicalPath())` will print `/var`. Weakness: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') Severity: Medium CVSSS: 6.1 Detection: CodeQL & OpenRewrite (https://public.moderne.io/recipes/org.openrewrite.java.security.PartialPathTraversalVulnerability) Reported-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com> Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com> Bug-tracker: https://github.com/JLLeitschuh/security-research/issues/13 Co-authored-by: Moderne <team@moderne.io>
* Improve condy (constant dynamic) supportAlexander Kriegisch2022-08-134-8/+34
| | | | | | Relates to #170. Fixes the "Unknown constant type 17" problem. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* CI build: upgrade from Java 18-EA to 18Alexander Kriegisch2022-07-031-2/+2
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Use System.lineSeparator() instead of hand-crafted methodAndrey Turbanov2022-04-211-17/+1
|
* Make IStateListener.aboutToCompareClasspaths use typed listsAlexander Kriegisch2022-04-184-5/+4
| | | | | | | | | | | | | | | | Before, the signature was: void aboutToCompareClasspaths( List oldClasspath, List newClasspath); Now it is: void aboutToCompareClasspaths( List<String> oldClasspath, List<String> newClasspath); AJDT will also use the typed version after generics refactoring. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Cleanup redundant null check before instanceofAndrey Turbanov2022-04-178-11/+10
|
* Do not use String literal as synchronized lockAndrey Turbanov2022-04-151-1/+1
|
* Reduce 'Object' class usageAndrey Turbanov2022-04-1523-64/+53
|
* Fix suspicious Map.get callAndrey Turbanov2022-04-151-1/+1
|
* Merge pull request #155 from turbanoff/cleanup_redundant_castsAndy Clement2022-04-1250-112/+99
|\ | | | | Remove redundant casts after generics update
| * Remove redundant casts after generics updateAndrey Turbanov2022-04-1250-112/+99
|/
* Merge pull request #131 from turbanoff/use_generics_ajdt.coreAndy Clement2022-04-1121-59/+66
|\ | | | | Update 'org.aspectj.ajdt.core' code to use generics
| * Update 'org.aspectj.ajdt.core' code to use genericsAndrey Turbanov2022-02-2821-59/+66
| |
* | BcelWorld.reportMatch: handle 'kind.getName() == null' correctlyAlexander Kriegisch2022-04-101-5/+7
| | | | | | | | | | | | Fixes #153. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Make TypeSafeEnum immutableAlexander Kriegisch2022-04-101-4/+4
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | JavaVersionCompatibility.md: add link to "Java language changes since Java 9"Alexander Kriegisch2022-04-101-1/+6
| | | | | | | | | | https://docs.oracle.com/en/java/javase/18/language/java-language-changes.html Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Remove obsolete comments in POM mentioning GitHub PackagesAlexander Kriegisch2022-04-101-2/+0
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Merge pull request #151 from eclipse/150-improve-ci-buildAlexander Kriegisch2022-04-021-1/+51
|\ \ | | | | | | Improve CI build: create docs, use Maven cache, attach artifacts
| * | CI build: attach main artifacts to buildAlexander Kriegisch2022-04-021-0/+27
| | | | | | | | | | | | | | | | | | Relates to #150. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | CI build: create docs and attach them to buildAlexander Kriegisch2022-04-021-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to create the docs separately, running just a single module, add 'install' to the previous build step, so the 'docs' module can find the 'lib' dummy JAR in the local Maven repo. Relates to #150. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | CI build: use Maven cacheAlexander Kriegisch2022-04-021-0/+12
|/ / | | | | | | | | | | Relates to #150. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>