Community
Participate
Working Groups
This bug is a regression in the M5 driver. This behaviour is not observed in the M4 driver or any of the previous releases of Eclipse. To reproduce, follow the instructions below: - In the M5 driver, create a new Java project - Create a source folder in the project - Create a simple "Hello World" class in the source folder - Switch to the 'Navigator' view and create a few different files in the *bin* directory of your project. Create the files by right clicking on the bin directory -> new -> file. Call them "hello1" and "hello2". - Open the .class file generated by Eclipse in an editor and make a modification in it (e.g. on the last line of the file, enter an extra space and save it) - Switch back to Eclipse -> right click on your project -> click on Refresh - Run your Java class - Notice that "hello1" and "hello2" have been deleted from the 'bin' directory of your project. - The .class file is also recompiled. This happens even if the "build automatically" option is turned off Note that sometimes the files are deleted and the class file is recompiled as soon as the user does a refresh. This bug is breaking the probekit tool in TPTP, which modifies the .class files and creates a backup version of the classes in the bin directory by using the class name followed by ".bak"
Consequence of fix for bug 99497
We've added an option to control when output folders will be searched during incremental builds. Until JDT/UI adds support for it (see bug 133668), you can enable the option by setting: org.eclipse.jdt.core.builder.makeOutputFolderConsistent=enabled in the jdt.core.prefs of your .settings folder. By default the option will be disabled and the builder's behaviour will be the same as it was before we released the changes for bug 99497
This API addition (pref) already got approved before EclipseCon by PMC.
Renamed the option to: org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=enabled
Verified for 3.2 M6 using build I20060329-0010.
Verified on the M6 driver. Closing.