Uploaded image for project: 'IvyDE (Retired)'
  1. IvyDE (Retired)
  2. IVYDE-327

Problem when exporting the eclipse-plugins (compiler target 1.2)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Trivial
    • Resolution: Fixed
    • 2.2.0.beta1
    • 2.2.0.final
    • 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.

      Attachments

        1. eclipse-export.patch
          0.4 kB
          Carsten Pfeiffer

        Activity

          People

            hibou Nicolas Lalevée
            carsten.pfeiffer Carsten Pfeiffer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: