Skip to content

Conversation

@Luis-St
Copy link
Owner

@Luis-St Luis-St commented Nov 5, 2025

No description provided.

- Updated ClassFileScanner to use ClassNode instead of custom Class
- Updated Agent to cache ClassNode instances
- Created ASMTreeUtils with helper methods for ClassNode/MethodNode/FieldNode
- Updated base classes (MethodOnlyClassVisitor, LabelTrackingMethodVisitor)
- Updated ASMUtils to use ClassNode/MethodNode
- Updated RestrictedAccessTransformer as example

Note: Additional transformers still need migration.
ClassNode uses List<MethodNode> not Map, so cache mutation pattern needs rework.
- BaseClassTransformer now reloads ClassNode from transformed bytes
- Added Agent.updateCache() to update cache with transformed bytecode
- Removed manual cache mutation in AccessorTransformer
- Cache now automatically reflects all transformations

This solves the cache mutation problem: transformers no longer need to
manually update the cache. The transformed ClassNode is automatically
reloaded from the written bytecode, ensuring cache consistency.
@Luis-St Luis-St self-assigned this Nov 5, 2025
@Luis-St Luis-St force-pushed the claude/java-bytecode-work-011CUpGLqgMKCaHTENHfVPxC branch from 5c5c7bf to bf9523b Compare December 4, 2025 16:11
…GLqgMKCaHTENHfVPxC' into claude/java-bytecode-work-011CUpGLqgMKCaHTENHfVPxC

# Conflicts:
#	agent/src/main/java/net/luis/agent/asm/transformer/implementation/AccessorTransformer.java
#	agent/src/main/java/net/luis/agent/asm/transformer/implementation/AssignorTransformer.java
#	agent/src/main/java/net/luis/agent/asm/transformer/implementation/ImplementedTransformer.java
#	agent/src/main/java/net/luis/agent/asm/transformer/implementation/InterfaceTransformer.java
#	agent/src/main/java/net/luis/agent/asm/transformer/implementation/InvokerTransformer.java
#	agent/src/main/java/net/luis/agent/asm/transformer/method/CaughtTransformer.java
#	agent/src/main/java/net/luis/agent/asm/transformer/method/DefaultTransformer.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants