Col-E / Recaf

The modern Java bytecode editor
https://recaf.coley.software
MIT License
6.02k stars 465 forks source link

Variable exception after modifying bytecode #797

Closed 1470429149 closed 4 months ago

1470429149 commented 4 months ago

This is very strange. I changed iconst_0 of a certain row to iconst_1, but a strange prompt appeared when running

java.lang.ClassFormatError: Duplicated LocalVariableTable attribute entry for 'e' in class file net/playavalon/mythicdungeons/dungeons/Instance

image

MythicDungeons2.zip

1470429149 commented 4 months ago

I used the following startup parameters C:\Users\Administrator\Desktop\bash\jdk-22.0.1+8\bin\java -jar recaf-launcher-0.4.1.jar auto

1470429149 commented 4 months ago

image

1470429149 commented 4 months ago

This is the complete modification log. I hope I can provide as much detailed information as possible to help troubleshoot the problem. If you need anything else, please contact me.

C:\Users\Administrator\Desktop\bash>C:\Users\Administrator\Desktop\bash\jdk-22.0.1+8\bin\java -jar recaf-launcher-0.4.1.jar auto
Attempting to resolve installed Recaf version...
Found Recaf's build config, checking contents...
 - MAVEN_GROUP = software.coley
 - MAVEN_NAME = recaf-core
 - VERSION = 4.0.0-SNAPSHOT
 - GIT_REVISION = 1
 - GIT_SHA = 1e4d85eff78cdaec3b683855e14435d85f88e6eb
 - GIT_DATE = 2024 05/29 09:02
 - GIT_BRANCH = dev4
 - BUILD_DATE = 2024 05/29 09:03
 - BUILD_UNIX_TIME = 1716973387954
 - DIRTY = 0
Attempting to resolve JFX version...
No JavaFX version class found in the current classpath
Java Properties:
 - java.home = C:\Users\Administrator\Desktop\bash\jdk-22.0.1+8
 - java.version = 22.0.1
 - java.vm.vendor = Eclipse Adoptium
 - java.vm.version = 22.0.1+8
 - javafx.platform = win
 - javafx.version = -1
 - os.arch = amd64
 - os.bitness = 64
 - os.name = Windows 10
 - os.processors = 12
 - os.version = 10.0
 - recaf.version = 4.0.0-SNAPSHOT

JFX cache:
 - Files: 20622910
 - Size:  20622910
Current JavaFX is up-to-date: '23-ea+18'
Checked for update recently on 2024/05/31 22:24:08, will check again later in 8m 47s
Looking in 'C:\Users\Administrator\AppData\Roaming\Recaf' for Recaf/dependencies...
Running Recaf '4.0.0-SNAPSHOT' with JavaFX '23-ea+18:win'
22:45:21.673 [AccessPatcher/main] DEBUG: Opening access to all packages
22:45:21.683 [AccessPatcher/main] DEBUG: Patching package reflection restrictions
22:45:21.707 [JFXValidation/main] INFO : JavaFX successfully initialized: 23-ea
22:45:21.708 [Bootstrap/main] INFO : Initializing Recaf 4.0.0-SNAPSHOT
22:45:21.708 [Bootstrap/main] INFO : Creating Recaf CDI container...
22:45:21.710 [Bootstrap/main] INFO : CDI: Adding interceptors & extensions
22:45:21.711 [Bootstrap/main] INFO : CDI: Registering bean packages
22:45:21.712 [Bootstrap/main] INFO : CDI: Running user-defined Consumer<Weld>
22:45:21.712 [Bootstrap/main] INFO : CDI: Initializing...
22:45:22.538 [Bootstrap/main] INFO : Recaf CDI container created in 829ms
22:45:22.549 [Main/main] TRACE: Compressing 0 old log files
22:45:22.562 [Lang/main] DEBUG: Found 5 translations
22:45:22.570 [Lang/main] INFO : Loaded translations 'zh_CN'
22:45:22.574 [Lang/main] INFO : Loaded translations 'sv_SE'
22:45:22.575 [Lang/main] INFO : Loaded translations 'cs_CZ'
22:45:22.577 [Lang/main] INFO : Loaded translations 'de_DE'
22:45:22.580 [Lang/main] INFO : Loaded translations 'en_US'
22:45:22.590 [Main/main] INFO : Initialization: No plugins found
May 31, 2024 10:45:22 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @5faeada1'
22:45:23.329 [ScriptManager/JavaFX Application Thread] DEBUG: Starting script directory watch task
22:45:24.000 [WindowManager/JavaFX Application Thread] TRACE: Register stage: system-information
22:45:24.016 [WindowManager/JavaFX Application Thread] TRACE: Register stage: quick-nav
22:45:24.028 [WindowManager/JavaFX Application Thread] TRACE: Register stage: mapping-progress
22:45:24.029 [WindowManager/JavaFX Application Thread] TRACE: Register stage: script-manager
22:45:24.033 [WindowManager/JavaFX Application Thread] TRACE: Register stage: remote-vms
22:45:24.062 [WindowManager/JavaFX Application Thread] TRACE: Register stage: config
22:45:24.063 [WindowManager/JavaFX Application Thread] TRACE: Register stage: main
22:45:24.065 [RecafURLStreamHandlerProvider/JavaFX Application Thread] TRACE: Installed Recaf URL stream handler
22:45:26.003 [WindowManager/JavaFX Application Thread] TRACE: Register stage: b25da060-6535-48b0-a62c-6dc03e474259
22:45:34.091 [BasicResourceImporter/path-loader-0] INFO : Reading input from ZIP container 'MythicDungeons2.jar'
22:45:34.124 [WindowManager/JavaFX Application Thread] TRACE: Stage hiding: b25da060-6535-48b0-a62c-6dc03e474259
22:45:34.312 [WorkspaceProcessing/path-loader-0] TRACE: Applying workspace processor: Mark throwable types
22:46:11.133 [PathExportingManager/JavaFX Application Thread] INFO : Exported workspace to path 'C:\Users\Administrator\Desktop\bash\MythicDungeons6.jar'
Col-E commented 4 months ago

This got fixed in d07739627c5482320d17cc67cfccbec4a253c275 unintentionally. Editing the methods and checking the javap outputs no longer shows duplicate e entries in the local var table.