Skip to content

Aspectj 1.9.25#70

Merged
aclement merged 14 commits intoeclipse-aspectj:masterfrom
basilevs:aspectj_1.9.24
Nov 20, 2025
Merged

Aspectj 1.9.25#70
aclement merged 14 commits intoeclipse-aspectj:masterfrom
basilevs:aspectj_1.9.24

Conversation

@basilevs
Copy link
Copy Markdown
Contributor

@basilevs basilevs commented Nov 3, 2025

  • Use the latest released AspectJ.
  • A script to make AspectJ updates repeatable (updates the version in all required Maven projects, preventing P2 IU resolution aliasing)
  • Drop support for Java 1.5
  • Java 25 runtime support in RCPTT (or at least I could not quickly find any issues with it).

These are done in three separate PRs, but each change applied individually can not be tested. I had to merge them all together to produce a reliable build.

Fixes #64
Fixes #65
Fixes #67

This state does not compile.
JDT has been updated and changed interfaces.
@basilevs
Copy link
Copy Markdown
Contributor Author

basilevs commented Nov 3, 2025

@aclement could you please approve the workflow run?

@kriegaex
Copy link
Copy Markdown
Contributor

kriegaex commented Nov 4, 2025

@basilevs, workflow is running. 🙂

@basilevs basilevs marked this pull request as draft November 5, 2025 06:26
@basilevs
Copy link
Copy Markdown
Contributor Author

basilevs commented Nov 5, 2025

When installed in Eclipse Platform 2024-12 this throws:

eclipse.buildId=4.34.0.20241128-0756
java.version=23.0.2
java.vendor=Eclipse Adoptium
BootLoader constants: OS=macosx, ARCH=aarch64, WS=cocoa, NL=en_GE
Framework arguments:  -product org.eclipse.epp.package.committers.product -keyring /Users/vasiligulevich/.eclipse_keyring
Command-line arguments:  -os macosx -ws cocoa -arch aarch64 -product org.eclipse.epp.package.committers.product -keyring /Users/vasiligulevich/.eclipse_keyring -data file:/Users/vasiligulevich/xored/rcptt/ws/pde/

org.eclipse.ajdt.ui
Error
Wed Nov 05 10:26:17 GMT+04:00 2025
Compile error: AssertionError thrown: Attempt to push null on operand stack!

java.lang.AssertionError: Attempt to push null on operand stack!
	at org.aspectj.org.eclipse.jdt.internal.compiler.codegen.OperandStack.push(OperandStack.java:58)
	at org.aspectj.org.eclipse.jdt.internal.compiler.codegen.OperandStack.push(OperandStack.java:84)
	at org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream.aload(CodeStream.java:305)
	at org.aspectj.ajdt.internal.compiler.ast.AdviceDeclaration.generateProceedMethod(AdviceDeclaration.java:227)
	at org.aspectj.ajdt.internal.compiler.ast.AdviceDeclaration.generateCode(AdviceDeclaration.java:284)
	at org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:777)
	at org.aspectj.ajdt.internal.compiler.ast.AspectDeclaration.generateCode(AspectDeclaration.java:297)
	at org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:875)
	at org.aspectj.org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode(CompilationUnitDeclaration.java:403)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:837)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:458)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:359)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:310)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1102)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:276)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:189)
	at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.performBuild(AjdeCoreBuildManager.java:105)
	at org.aspectj.ajde.core.AjCompiler.buildFresh(AjCompiler.java:100)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:251)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1077)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:296)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:352)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:441)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:444)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:555)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:503)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:585)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:207)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:300)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

and

eclipse.buildId=4.34.0.20241128-0756
java.version=23.0.2
java.vendor=Eclipse Adoptium
BootLoader constants: OS=macosx, ARCH=aarch64, WS=cocoa, NL=en_GE
Framework arguments:  -product org.eclipse.epp.package.committers.product -keyring /Users/vasiligulevich/.eclipse_keyring
Command-line arguments:  -os macosx -ws cocoa -arch aarch64 -product org.eclipse.epp.package.committers.product -keyring /Users/vasiligulevich/.eclipse_keyring -data file:/Users/vasiligulevich/xored/rcptt/ws/pde/

org.eclipse.ajdt.ui
Error
Wed Nov 05 10:26:21 GMT+04:00 2025
Compile error: AssertionError thrown: array store with invalid types

java.lang.AssertionError: array store with invalid types
	at org.aspectj.org.eclipse.jdt.internal.compiler.codegen.OperandStack.xastore(OperandStack.java:177)
	at org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream.aastore(CodeStream.java:231)
	at org.aspectj.ajdt.internal.compiler.ast.AdviceDeclaration.generateProceedMethod(AdviceDeclaration.java:246)
	at org.aspectj.ajdt.internal.compiler.ast.AdviceDeclaration.generateCode(AdviceDeclaration.java:284)
	at org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:777)
	at org.aspectj.ajdt.internal.compiler.ast.AspectDeclaration.generateCode(AspectDeclaration.java:297)
	at org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:875)
	at org.aspectj.org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode(CompilationUnitDeclaration.java:403)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:837)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:458)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:359)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:310)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1102)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:276)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:189)
	at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.performBuild(AjdeCoreBuildManager.java:105)
	at org.aspectj.ajde.core.AjCompiler.buildFresh(AjCompiler.java:100)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:251)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1077)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:296)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:352)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:441)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:444)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:555)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:503)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:585)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:207)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:300)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

@aclement
Copy link
Copy Markdown
Contributor

aclement commented Nov 6, 2025

Those will be variants of things fixed in 1.9.25 I suspect (e.g eclipse-aspectj/aspectj#336, eclipse-aspectj/aspectj#337)

@basilevs basilevs changed the title Aspectj 1.9.24 Aspectj 1.9.25 Nov 6, 2025
@basilevs
Copy link
Copy Markdown
Contributor Author

basilevs commented Nov 6, 2025

@aclement thank you. I've updated to 1.9.25 and this error went away.

My basic manual tests seem fine now, but I fail to make even minimal JUnit suite to pass.
For example, org.eclipse.ajdt.core.tests.ajde.Bug273770Tests fails consistently. It does not seem to be related to AspectJ. I'm not sure if it worked in a previous AJDT version.

@basilevs
Copy link
Copy Markdown
Contributor Author

basilevs commented Nov 11, 2025

I'm not sure if it worked in a previous AJDT version.

I've confirmed same tests were failing on AspectJ 22. So this PR adds no regressions in that regard.

@basilevs basilevs marked this pull request as ready for review November 11, 2025 16:17
@basilevs
Copy link
Copy Markdown
Contributor Author

@aclement @kriegaex This PR is ready for review.

@basilevs
Copy link
Copy Markdown
Contributor Author

basilevs commented Nov 18, 2025

@aclement @kriegaex could you make me a committer or otherwise grant push and CI access? My goal is to publish a release usable from RCPTT builds.

org.eclipse.team.core;bundle-version="3.8.1100",
org.aspectj.runtime
org.aspectj.runtime,
org.eclipse.jdt.ui;bundle-version="[3.9.0,4.3.0)"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this extra dependency on jdt.ui required?

Copy link
Copy Markdown
Contributor Author

@basilevs basilevs Nov 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without this dependency, Eclipse PDE produces "org.eclipse.jdt.internal.ui.refactoring.UserInterfaceManager cannot be resolved to a type" error for org.eclipse.ajdt.core.ReflectionUtils.executePrivateMethod(Class<T>, String, Class<?>[], UserInterfaceManager, Object[]):

public static <T> Object executePrivateMethod(Class<T> clazz, String methodName, Class<?>[] types, org.eclipse.jdt.internal.ui.refactoring.UserInterfaceManager target, Object[] args) {
// forget caching for now...
try {
Method method = clazz.getDeclaredMethod(methodName, types);
method.setAccessible(true);
return method.invoke(target, args);
} catch (Exception ignored) {
}
return null;
}

The problem is not reproducible with Tycho compiler.

This explicit type is unnecessary for this method to function, so I'm reverting a part of commit where it was introduced and the additional dependency I've added to appease the compiler.

Thank you for pointing this out. I also found a new dependency in an update strange , and failed to realize that it had always been superfluous.

@basilevs basilevs requested a review from aclement November 19, 2025 18:37
@aclement aclement merged commit 5c7de2d into eclipse-aspectj:master Nov 20, 2025
4 checks passed
@basilevs basilevs deleted the aspectj_1.9.24 branch November 26, 2025 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants