Details
-
Bug
-
Status: Resolved
-
Trivial
-
Resolution: Fixed
-
2.2.0.beta1
-
None
-
None
Description
This is more a development environment issue than a bug in IvyDE.
The JDT compiler settings in the org.apache.ivyde.eclipse plugins are explicitly configured to compile for Java 1.2 (option "Generated .class files compatibility").
When exporting that plugin (or the feature), eclipse uses ant to compile the plugin, which happens to use the default javac compiler instead of the eclipse Java compiler. The Sun/Oracle compilers have a little problem with target < 1.4, leading to a NullPointerException at runtime in SettingsSetupEditor.java.
The issue in SettingsSetupEditor is it creates an anonymous subclass of PathEditor, reimplementing its createText() method. That method is directly called in the PathEditor constructor. Inside the createText() reimplementation, you access fields from the outer instance SettingsSetupEditor (errorDecoration, settingsTextDeco). With target 1.2 or 1.3, the other instance is not available though:
java.lang.NullPointerException at org.apache.ivyde.eclipse.ui.SettingsSetupEditor.access$0(SettingsSetupEditor.java:59) at org.apache.ivyde.eclipse.ui.SettingsSetupEditor$1.createText(SettingsSetupEditor.java:86) at org.apache.ivyde.eclipse.ui.PathEditor.<init>(PathEditor.java:73) at org.apache.ivyde.eclipse.ui.SettingsSetupEditor$1.<init>(SettingsSetupEditor.java:83) at org.apache.ivyde.eclipse.ui.SettingsSetupEditor.<init>(SettingsSetupEditor.java:83) at org.apache.ivyde.eclipse.ui.SettingsSetupTab.createSetupEditor(SettingsSetupTab.java:39) at org.apache.ivyde.eclipse.ui.AbstractSetupTab.<init>(AbstractSetupTab.java:83) at org.apache.ivyde.eclipse.ui.SettingsSetupTab.<init>(SettingsSetupTab.java:35) at org.apache.ivyde.eclipse.cpcontainer.IvydeContainerPage$1.<init>(IvydeContainerPage.java:291) at org.apache.ivyde.eclipse.cpcontainer.IvydeContainerPage.createControl(IvydeContainerPage.java:291) at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1247) at org.eclipse.jface.wizard.WizardDialog.access$4(WizardDialog.java:1239) at org.eclipse.jface.wizard.WizardDialog$8.run(WizardDialog.java:1228) [...]
I suggest changing the target to 1.4 to avoid these problems or somehow ensure that the plugin gets always compiled with the eclipse java compiler, even on PDE export.