-
-
Notifications
You must be signed in to change notification settings - Fork 134
Description
Description
When using JADX 1.5.3 or JADX 1.5.2, the jadx-ai-mcp plugin is instantiated multiple times, which leads to port conflicts and prevents some plugin instances from starting their embedded HTTP server.
After importing a project and maximizing the JADX GUI window, the Plugins menu appears. Inside this menu, there are usually two or more instances of the jadx-ai-mcp plugin listed.
All plugin instances share the same configuration, including the HTTP server port. However, among these instances:
-
Only one instance can successfully bind to the port and shows server status:
Status Running -
All other instances fail to start the server and remain in:
Status Stopped
Changing the port number in the configuration affects all instances simultaneously, but the issue remains:
only one instance can run successfully, while the others still fail due to port conflicts.
Environment
- JADX Version: 1.5.3 or 1.5.2
- Plugin Version: 6.0
- OS: Windows 11
- Java Version: jadx-gui-1.5.2-with-jre-win
Steps to Reproduce
It may be created after performing certain actions, such as:
- Opening a rename mapping file
- Click the
Reset Code Cacheoption
Screenshots
Multiple instances of jadx-ai-mcp plugins:
Instance1 server status:
Instance2 server status:
Logs
ERROR: Failed to start Javalin
ERROR: JADX-AI-MCP Plugin Error: Could not start HTTP Server. Exception: Port already in use. Make sure no other process is using port 8652 and try again.
com.zin.jadxaimcp.deps.javalin.util.JavalinBindException: Port already in use. Make sure no other process is using port 8652 and try again.
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//com.zin.jadxaimcp.deps.javalin.jetty.JettyServer.start(JettyServer.kt:105)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//com.zin.jadxaimcp.deps.javalin.Javalin.start(Javalin.java:123)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//com.zin.jadxaimcp.server.PluginServer.start(PluginServer.java:53)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//com.zin.jadxaimcp.JadxAIMCP.startServer(JadxAIMCP.java:158)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//com.zin.jadxaimcp.JadxAIMCP.lambda$startDelayedInitialization$1(JadxAIMCP.java:124)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8652
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:304)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//org.eclipse.jetty.server.Server.lambda$doStart$0(Server.java:402)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//org.eclipse.jetty.server.Server.doStart(Server.java:398)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//com.zin.jadxaimcp.deps.javalin.jetty.JettyServer.start(JettyServer.kt:97)
... 10 common frames omitted
Caused by: java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Unknown Source)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(Unknown Source)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at jadx-plugin:jadx-ai-mcp-6.0.0.jar//org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:339)
... 25 common frames omitted
ERROR: JADX-AI-MCP Plugin: Failed to start server: Failed to start Javalin Server