I believe that Hibernate does dynamic bytecode modification of classes specified in the mapping file, correct?
Assuming that's true, is there any possibility that Hibernate could possibly have any impact on other classes that are not specified in the mapping file? I'm seeing a strange symptom in RAD 6 (Eclipse 3.0) where I'm realizing that my class files are losing their LocalVariableTable, which causes the debugger to not know the names of local variables.
I see this symptom appear when I restart my project, which (among other things) causes the Hibernate startup code to execute.
If I manually change the source file and save it, RAD does hot swapping, so it compiles the file and uses the new class file, without having to restart the server (WebSphere). When I do this, it "fixes" the problem. The next time I hit the breakpoint in that source file, all the local variable names are present.
We've added some debugging to RAD that shows detailed events in the Error Log when RAD itself has to recompile classes. When I do a "Restart Project", I see that event, but it only lists some other generated classes, and not the classes I'm trying to debug. However, when I check the timestamp of the class file, and use "javap" to see the LocalVariableTable, I see that the file was just modified (about the time I did the restart project), and "javap" shows that there is no LocalVariableTable.
|