Community
Participate
Working Groups
DW (6/7/01 9:27:33 AM) 119++ When doing an eval in the scrapbook/debugger, the package "org.eclipse.jdt.internal.eval.target" appears in the workspace, which is the home of "CodeSnippet". We do not clean-up (remove) this package when the target termiantes. DW (6/7/01 2:09:06 PM) Simple fix would be to have the snippet support change the "CodeSnippet" class to be in the default package. There is a nasty side effect here. When a project uses the defualt source and binary folder config (i.e. project is the root), a new package appears when a evaluation is done. This package will also show up when releasing to a repository. This problem does not surface in the self hosting world because the package is hidden in the output directory. Another potential fix is to have the debugger delete the package - but that should only be done if the package is empty. Propose fix in JCORE. DW (6/8/01 8:54:09 AM) Make into a README. DW (6/15/01 10:08:55 AM) Added to README.
Fixed. The scrapbook now uses the meta-data area for temp class files required for evaluation. The debugger still uses the project output area, but it does not trigger builds/resource deltas anymore, as we write to java.io.Files instead of using IFiles. The temp files will not appear in the resource tree unless a user does a "refresh from local" in the output directory of a java project.
Please verify
Unfortunately you get weird deletion problems once you have done an evaluation. Perform an evaluation in a debug session. Then attempt to delete the project. If fails with a whole bunch of Resource is out of synch with the file system details. The files that are out of synch are all of the ones the debugger writes to the project output area.
The problem is the folder hierarchy as the files are all deleted on termination. Couldn't we delete the evaluation folders as well?
We have to be careful in which folders we delete. We should only delete the folders we create.
*** Bug 1639 has been marked as a duplicate of this bug. ***
Fixed. The evaluation engine now keeps track of which directories it created when deploying snippet (evaluation) class files. It deletes only those directories when the associated debug target terminates. re-assigning for verification.
Please verify.
I am getting upon completion of the target: Internal error logged from JDI debug model: org.eclipse.debug.core.DebugException: Unable to delete temporary evaluation class file C:\workspaces\Evaluation\org\eclipse\jdt\internal\eval\target\CodeSnippet.class at org.eclipse.jdt.internal.debug.eval.LocalEvaluationEngine.dispose (LocalEvaluationEngine.java:577) at org.eclipse.jdt.debug.eval.EvaluationManager.disposeEvaluationEngine (EvaluationManager.java:135) at org.eclipse.jdt.debug.eval.EvaluationManager.access$0 (EvaluationManager.java:126) at org.eclipse.jdt.debug.eval.EvaluationManager$VMMonitor.handleDebugEvent (EvaluationManager.java:154) at org.eclipse.debug.core.DebugPlugin.fireDebugEvent (DebugPlugin.java:151) at org.eclipse.jdt.internal.debug.core.JDIDebugElement.fireEvent (JDIDebugElement.java:123) at org.eclipse.jdt.internal.debug.core.JDIDebugElement.fireTerminateEvent (JDIDebugElement.java:152) at org.eclipse.jdt.internal.debug.core.JDIDebugTarget.terminated (JDIDebugTarget.java:1126) at org.eclipse.jdt.internal.debug.core.JDIDebugTarget.handleVMDeath (JDIDebugTarget.java:924) at org.eclipse.jdt.internal.debug.core.EventDispatcher.dispatch (EventDispatcher.java:114) at org.eclipse.jdt.internal.debug.core.EventDispatcher$1.run (EventDispatcher.java:143) at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1186) at org.eclipse.jdt.internal.debug.core.EventDispatcher.run (EventDispatcher.java:160) at java.lang.Thread.run(Thread.java:498)
Which platform? and does the file actually exist, or did it get deleted (i.e. :\workspaces\Evaluation\org\eclipse\jdt\internal\eval\target\CodeSnippet.c lass)
Released changes to check for the existance of the files and directories in LocalEvaluationEngine. Verified.