Community
Participate
Working Groups
1. Go to Windows -> Preferences -> Java -> Compiler 2. Leave it at 5.0. Don't change anything. 3. Hit OK Expected: The dialog is dismissed. Nothing else since you made no changes. Actual: You are prompted that the compiler changed and a full rebuild is required (even in a new workspace where there is no projects).
The reason is the option COMPILER_CODEGEN_INLINE_JSR_BYTECODE: when compliance >= 1.5 we force it to 'ENABLED' what can be a change from the settings set by the launching plug-in on startup. Olivier, what do you think is the correct thing to do: Always set the option to 'ENABLED' when in 1.5 or 1. mode. Or as this option ignored anyways; don't care what setting is? If you think it's better to write it to 'ENABLED'; then JavaCore.setComplianceOptions should implement this too. If you think we should not care about the value in 1.5 or 1.6 mode, I can fix this on the preference page.
This option should be set to ENABLED. IN 1.5 and 1.6, the jsr and ret bytecodes are not supposed to be generated anymore and this can only happen if this option is set. Therefore it should be set in JavaCore.setComplianceOptions(..). So moving to JDT/Core. Philippe, ok to change this? This method is called to set the right options according to the compliance. I missed the inlineJsr option.
Since this can trigger a full build, I would fix it for RC1.
We do override it in the org.eclipse.jdt.internal.compiler.impl.CompilerOptions.set(Map) method, but this is still consider as an option change. I'll provide a patch.
Created attachment 66677 [details] Proposed fix
(In reply to comment #1) > If you think we should not care about the value in 1.5 or 1.6 mode, I can fix > this on the preference page. We are overriding it anyway if target >= 1.5. So whatever value you have for this option, we set it to ENABLED. Philippe, should we handle this in the JavaCore method or let the preference page take care of it?
+1 for RC1. This is consistent with our other preferences which are compliance specific.
Release for 3.3RC1. Martin, please confirm this is fixing the issue on the UI side as well.
scenario as described in comment 0 seems to work now
Verified for 3.3 RC1 using I20070515-0010