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

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

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Trivial
    • Resolution: Fixed
    • Affects Version/s: 2.2.0.beta1
    • Fix Version/s: 2.2.0.final
    • Component/s: None
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: