Bug 159494 - Easier way to delete org.eclipse.jdt.core.prefs files
Summary: Easier way to delete org.eclipse.jdt.core.prefs files
Status: VERIFIED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.6 M1   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-02 15:47 EDT by Gary Karasiuk CLA
Modified: 2009-08-03 08:49 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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