gwt-plugins / gwt-eclipse-plugin

GWT Eclipse Plugin Documentation
http://gwt-plugins.github.io/documentation/
Eclipse Public License 1.0
114 stars 47 forks source link

Module creation is broken #452

Closed protoism closed 1 year ago

protoism commented 1 year ago

In AbstractModule.getShortName the plugin assumes that the module (i.e. the .gwt.xml file) is an IFile.

But when a new module is inserted, project is scanned for modules in jars, and modules are now.. JarEntryFile, so that we get a ClassCastException in AbstractModule.getShortName and AbstractModule.getModuleNameGwtMaven2

protoism commented 1 year ago

Here the stack trace: there's some maven related logic which assumes that the module is a "file" module, which is applied to modules stored in jars.

java.lang.ClassCastException: class org.eclipse.jdt.internal.core.JarEntryFile cannot be cast to class org.eclipse.core.resources.IFile (org.eclipse.jdt.internal.core.JarEntryFile is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @42d25580; org.eclipse.core.resources.IFile is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @63e5a6e7)
    at com.google.gwt.eclipse.core.modules.AbstractModule.getShortName(AbstractModule.java:294)
    at com.google.gwt.eclipse.core.modules.AbstractModule.getQualifiedName(AbstractModule.java:272)
    at com.google.gwt.eclipse.core.modules.ModuleJarResource.getQualifiedName(ModuleJarResource.java:1)
    at com.google.gwt.eclipse.core.modules.AbstractModule.getSimpleName(AbstractModule.java:342)
    at com.google.gwt.eclipse.core.modules.ModuleJarResource.getSimpleName(ModuleJarResource.java:1)
    at com.google.gwt.eclipse.core.modules.ModuleUtils$3.visit(ModuleUtils.java:220)
    at com.google.gwt.eclipse.core.modules.ModuleUtils$3.visit(ModuleUtils.java:1)
    at com.google.gwt.eclipse.core.modules.ModuleUtils.visitFragments(ModuleUtils.java:338)
    at com.google.gwt.eclipse.core.modules.ModuleUtils.findModule(ModuleUtils.java:212)
    at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.addCommonGWTModulesAsDefaultInherits(NewModuleWizardPage.java:367)
    at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.moduleContainerChanged(NewModuleWizardPage.java:496)
    at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.doFieldChange(NewModuleWizardPage.java:291)
    at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.handleFieldChanged(NewModuleWizardPage.java:322)
    at org.eclipse.jdt.ui.wizards.NewContainerWizardPage.containerDialogFieldChanged(NewContainerWizardPage.java:356)
    at org.eclipse.jdt.ui.wizards.NewContainerWizardPage$ContainerFieldAdapter.dialogFieldChanged(NewContainerWizardPage.java:337)
    at org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField.dialogFieldChanged(DialogField.java:78)
    at org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField.setText(StringDialogField.java:195)
    at org.eclipse.jdt.ui.wizards.NewContainerWizardPage.setPackageFragmentRoot(NewContainerWizardPage.java:507)
    at org.eclipse.jdt.ui.wizards.NewContainerWizardPage.initContainerPage(NewContainerWizardPage.java:200)
    at org.eclipse.jdt.ui.wizards.NewContainerWizardPage.initContainerPage(NewContainerWizardPage.java:141)
    at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.initModulePage(NewModuleWizardPage.java:328)
    at com.google.gwt.eclipse.core.wizards.NewModuleWizard.addPages(NewModuleWizard.java:55)