Intellij Idea Hot swap failed
Hi
I'm debugging my application deployed on a remote server and I get this error while building the project when the server is running.
Compilation completed successfully in 7s 12ms
Hot Swap failed
add method not implemented;
Operation not supported by VM
It is either - "add method not implemented" or "hierarchy change not implemented" or "schema change not implemented".
I initially added new method, new inner class, later reverted these changes as I found another simpler solution for my problem.
While making the code changes, I repeatedly test by rebuilding the project while the remote server is running and end up with any of the above errors.
I tried all options I knew and what google gave me - Hot swap properties changes, Compiler JDK version changes, try in duplicate versions of the project and server, but nothing seems to be a permanent solution.
I need to build while the server is running otherwise the changes do not reflect.
I'm not sure what I'm missing here, any help is appreciated.
请先登录再写评论。
HotSwap doesn't support adding methods or hierarchy changes as indicated by the error messages. It's the limitation of Java HotSwap, not IntelliJ IDEA. Some third-party tools like JRebel enhance standard HotSwap by implementing support for this type of code modifications.
Thank you, I'll try out JRebel.
I have 1 more question. Right now, I checked out the project again into a separate folder and haven't done any changes to it, when I rebuild the project I still get the same error.
Hot Swap failed
add method not implemented;
Operation not supported by VM
Why this is still coming? Is there any way to stop this error?
Do you build the project using Build | Make in IDEA? If there are no changes, it will not compile any files.
I build the project using Build > Rebuild project for which I always get this log - Compilation completed successfully in Xs Yms (even if I haven't done any changes).
I checkout the project again, after restarting IDEA and now I don't get this error (Hot Swap failed) when I don't make any change.
Since it's a small application and simple change I'm able to repeat it many times.
The change to the application is adding a Frame, Panel, Combobox, Button and Action listener to the JButton in the same method.
And I assume I get this error - "Hot Swap failed add method not implemented;" because the action listener needs to override a method of it's interface.
Is my assumption right?
main method {...
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent event) {
JButton button = (JButton) event.getSource();
...
}
}
}
Rebuild will rebuild all the files. Use Make to build only changed and dependent files.
Got you, thanks a lot for your inputs.