eclipse / Xpect

This repository has been rewritten to move to the Eclipse Foundation. Find the old history here: https://github.com/TypeFox/Xpect
http://www.xpect-tests.org/
Eclipse Public License 2.0
30 stars 28 forks source link

Setup fails if the folder already exists #307

Closed iloveeclipse closed 2 years ago

iloveeclipse commented 2 years ago

With new 4.24 platform version, where new project has .settings folder by default (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=479450), following test file causes error because it fails to create already existing directory. Ideally xpect should simply use existing one if there is one.

      Workspace {
        Project {
            Folder ".settings" {
            }
        }
     }

Relevant part of the stack:

Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.eclipse.xpect.state.StateContainer.createInstance(StateContainer.java:187)
    ... 58 more
Caused by: java.lang.RuntimeException: org.eclipse.core.internal.resources.ResourceException: Resource '/java_project/.settings' already exists.
    at org.eclipse.xpect.xtext.lib.util.IFileUtil.createFolder(IFileUtil.java:54)
    at org.eclipse.xpect.xtext.lib.setup.workspace.Folder.create(Folder.java:39)
    at org.eclipse.xpect.xtext.lib.setup.workspace.Folder.create(Folder.java:1)
    at org.eclipse.xpect.xtext.lib.setup.workspace.Container.createMembers(Container.java:33)
    at org.eclipse.xpect.xtext.lib.setup.workspace.Project.create(Project.java:49)
    at org.eclipse.xpect.xtext.lib.setup.workspace.JavaProject.create(JavaProject.java:103)
cdietrich commented 2 years ago

fixed via https://github.com/iloveeclipse/Xpect/commit/b28f59b34eef611daa7d675bc0f777ce0bfb6d8e