Bug 159494

Summary: Easier way to delete org.eclipse.jdt.core.prefs files
Product: [Eclipse Project] JDT Reporter: Gary Karasiuk <karasiuk>
Component: CoreAssignee: JDT-Core-Inbox <jdt-core-inbox>
Status: VERIFIED INVALID QA Contact:
Severity: normal    
Priority: P3 CC: Olivier_Thomann
Version: 3.2.1   
Target Milestone: 3.6 M1   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Gary Karasiuk CLA 2006-10-02 15:47:36 EDT
Here was my real life scenario:

1)	I needed to import a large customer workspace. I knew they were running on a 1.4.2 JRE so I set my Compiler compliance level to 1.4.

2)	I imported their workspace. 

3)	I noticed that almost all of my projects had errors. I then discovered that the customer was using asserts. 

4)	I then realized that compiler compliance of 1.4 doesn’t mean a source level of 1.4. I changed my working space settings to use a source level of 1.4, only to realize that all the projects now had .settings->org.eclipse.jdt.core.prefs files which set the source level back to something else. 

5)	I had to manually delete all these org.eclipse.jdt.core.prefs (there were over 50 of them) and then rebuild the workspace. 

I found this whole experience very awkward. There should be some easy way to delete all these project level compiler options. 

There is also something unusable about setting the compiler compliance to 1.4 but not having the source set to 1.4. Maybe because that part of the screen was grayed out, my eyes didn’t even bother to focus on that part of the page that mentioned source compliance. Perhaps the assert error message could mention source compliance settings.
Comment 1 Olivier Thomann CLA 2006-10-02 15:52:20 EDT
Compliance 1.4 doesn't set the source and target to 1.4, because this is not done by default by javac.
javac 1.4 cannot compile assert statements by default.
So you need to trigger it explicitely.
Comment 2 Gary Karasiuk CLA 2006-10-02 16:28:50 EDT
(In reply to comment #1)
My point is one of usability.  

Most user’s are not JDK experts and don’t understand the details of what 1.4 compiler compliance means. They see a drop down that has (1.3, 1.4, 5.0) and like me, immediately associate that with a JRE level (Java 1.3, Java 1.4 or Java 5). 

I’m just pointing out that this is an area that users will trip over. What would have really helped me, is if the Quick Fix support would have offered to set my source compliance to 1.4.   That would finesse away this whole difference of compiler vs source compliance

Comment 3 Olivier Thomann CLA 2009-06-25 14:32:19 EDT
If you are using project's specific settings, it makes senses that changing the workspace's settings doesn't change the project's settings.
We don't decide what are the compiler default settings according to the compliance.
Closing as INVALID since there is nothing we can do to fix this as we get a syntax error on an assert statement.
Comment 4 Frederic Fusier CLA 2009-08-03 08:49:23 EDT
Verified for 3.6M1