Hotswap

Hi.

Can anyone tell me how to get started with HotSwap? I guess I am missing
something and need some guidance to get started.

Thanks,
Amnon


8 comments
Comment actions Permalink

When debugging choose Run | Hot Swap from main menu.

--
Best regards,
Dmitry Peshehonov
JetBrains, Inc, http://www.intellij.com

"Develop with pleasure!"

"Amnon I. Govrin" <agovrin@freshwater.com> wrote in message
news:bjimf0$3rp$1@is.intellij.net...

Hi.

>

Can anyone tell me how to get started with HotSwap? I guess I am missing
something and need some guidance to get started.

>

Thanks,
Amnon

>
>


0
Comment actions Permalink

Dmitry Peshehonov (JetBrains) wrote:

>When debugging choose Run | Hot Swap from main menu.

>

Just did, and I got (see attached image) :

image: hotswapScreenshot.png

I'm not sure how to interpret this info :
- error: add method not implemented
- error: operation not supported by VM (I'm on 1.4.2)
but, on the other side
- Class xxxx : added for Hotwap.

One thing is for sure: the hotswap didn't happen, as I could notice when
I proceeded with the debugging session.

Alain



Attachment(s):
hotswapProblem.png
0
Comment actions Permalink

hotswap is going to be vm specific. Changing the implementation of a method will work, but adding methods, changing method signature ect are not allowed yet. This is not an intellij thing, but a jvm thing

0
Comment actions Permalink

charles decroes wrote:

>hotswap is going to be vm specific. Changing the implementation of a method will work, but adding methods, changing method signature ect are not allowed yet. This is not an intellij thing, but a jvm thing

>

Too bad.
Actually, I was overwritting toString(), not really "adding" a method,
but close enough. Too bad.

Thanks for the info.

Alain

0
Comment actions Permalink

I got this:

java.lang.Throwable

at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:92)

at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:14)

at com.intellij.debugger.f.bz.run(bz.java:1)

at com.intellij.psi.impl.r.run(r.java:4)

at com.intellij.openapi.application.b.d.runReadAction(d.java:24)

at com.intellij.psi.impl.cb.commitAndRunReadAction(cb.java:109)

at com.intellij.debugger.f.cw.a(cw.java:72)

at com.intellij.debugger.f.cw.a(cw.java:17)

at com.intellij.debugger.f.cw.a(cw.java:77)

at com.intellij.debugger.f.cc.run(cc.java)

at com.intellij.progress.c.a(c.java:52)

at com.intellij.debugger.f.cb.run(cb.java)

at java.lang.Thread.run(Unknown Source)

I guess this is because we don't have the internal compiler configured as we
only build with Ant. Is this the case?

"Dmitry Peshehonov (JetBrains)" <dyoma@intellij.com> wrote in message
news:bjioq6$i9c$1@is.intellij.net...

When debugging choose Run | Hot Swap from main menu.

>

--
Best regards,
Dmitry Peshehonov
JetBrains, Inc, http://www.intellij.com

>

"Develop with pleasure!"

>

"Amnon I. Govrin" <agovrin@freshwater.com> wrote in message
news:bjimf0$3rp$1@is.intellij.net...

Hi.

>

Can anyone tell me how to get started with HotSwap? I guess I am missing
something and need some guidance to get started.

>

Thanks,
Amnon

>
>

>
>


0
Comment actions Permalink

Adding of methods to a class appears to be one of the things that isn't
supported by the hotswap implementation in jdk1.4.2 However I have
managed to change the internals of a method and hotswapped successfully.

I'm guessing what you're seeing here is :
a) the info methods are IDEA telling you it's found a class that's
changed and is adding it to the list that the vm must reload - at this
point it doesn't look at what's supported
b) the error methods are subsequently produced when IDEA tries to swap
the classes into the vm and the vm complains because it doesn't support it.

You're right though it is a bit confusing. Maybe the "added for Hotwap"
message should be a bit more like "added for attempted hotswap"

N.

Alain Ravet wrote:

Dmitry Peshehonov (JetBrains) wrote:

>>When debugging choose Run | Hot Swap from main menu.
>>
>>


Just did, and I got (see attached image) :



I'm not sure how to interpret this info :
- error: add method not implemented
- error: operation not supported by VM (I'm on 1.4.2)
but, on the other side
- Class xxxx : added for Hotwap.

One thing is for sure: the hotswap didn't happen, as I could notice when
I proceeded with the debugging session.

Alain


0
Comment actions Permalink

Fixed in Build #921.

This bug is not because of Ant, it's because of InvalidThreadState exception... Try to use HotSwap when the process is paused at the breakpoint. This may help.

0
Comment actions Permalink

I did, and I'll try again with 922...

Thanks,
Amnon
"Alexei Nikitin" <lex@intellij.com> wrote in message
news:28302267.1063102622372.JavaMail.itn@is.intellij.net...

Fixed in Build #921.

>

This bug is not because of Ant, it's because of InvalidThreadState

exception... Try to use HotSwap when the process is paused at the
breakpoint. This may help.


0

Please sign in to leave a comment.