GWT SuperDevMode stopped working

I have been developing a GWT/Errai application in IntelliJ for a while now, and have used the built in support for SuperDevMode to test and debug my code. Then all of a sudden SuperDevMode in IntelliJ stopped working. I can compile the application in Maven fine, and I can also run SuperDevMode through Maven.

I posted a question about this issue on the Errai forums, as the stack trace indicated that Errai was part of the problem. The discussion (along with the stack trace) is here.

The response from one of the Errai developers was:

Actually, come to think of it, that stack trace shows awfully deep recursion. It is possible that IntelliJ has somehow created a symlink that points at its own parent (or ancestor) directory? I bet File.isDirectory() is correctly returning true (because the symlink points to an ancestor directory), but then when we call File.listFiles() on that symlink, we're hitting an OS limit and getting an ELOOP or ENAMETOOLONG from the filesystem.

Can anyone shed some light on this issue? The code for the project I am working on can be found at https://github.com/pressgang-ccms/PressGangCCMSUI
3 comments

I'm sure that IDEA doesn't create any symlinks. You can inspect the generated directories by hand to check whether they contains symlinks.
Unfortunately the specified project doesn't compile for me because some libraries are missing from Maven repository so I cannot check it myself.

--
Nikolay Chashnikov
Software Developer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

0

Ah yes, you'll need to use the Sonatype snapshot repo. These are the settings from my ~/.m2/settings.xml file.

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"      <profiles>           <profile>                <id>oss-public</id>                <activation>                     <property>                          <name>!oss.public.off</name>                     </property>                </activation>                <repositories>                     <repository>                          <id>oss-public</id>                          <name>oss-public</name>                          <url>https://oss.sonatype.org/content/groups/public/</url>                          <releases>                               <enabled>true</enabled>                          </releases>                          <snapshots>                               <enabled>true</enabled>                          </snapshots>                     </repository>                </repositories>                <pluginRepositories>                     <pluginRepository>                          <id>oss-public</id>                          <name>oss-public</name>                          <url>https://oss.sonatype.org/content/groups/public/</url>                          <releases>                               <enabled>true</enabled>                          </releases>                          <snapshots>                               <enabled>true</enabled>                          </snapshots>                     </pluginRepository>                </pluginRepositories>           </profile>           <profile>                <id>jboss-public</id>                <activation>                     <property>                          <name>!jboss.public.off</name>                     </property>                </activation>                <repositories>                     <repository>                          <id>jboss-public-repository-group</id>                          <name>JBoss Public Maven Repository Group</name>                          <url>https://repository.jboss.org/nexus/content/groups/public/</url>                          <layout>default</layout>                          <releases>                               <updatePolicy>never</updatePolicy>                          </releases>                          <snapshots>                               <updatePolicy>never</updatePolicy>                          </snapshots>                     </repository>                </repositories>                <pluginRepositories>                     <pluginRepository>                          <id>jboss-public-repository-group</id>                          <name>JBoss Public Maven Repository Group</name>                          <url>https://repository.jboss.org/nexus/content/groups/public/</url>                          <layout>default</layout>                          <releases>                               <updatePolicy>never</updatePolicy>                          </releases>                          <snapshots>                               <updatePolicy>never</updatePolicy>                          </snapshots>                     </pluginRepository>                </pluginRepositories>           </profile>      </profiles> </settings>

0

Ok, looks like I've found the problem. JBoss/Errai processes files recursively starting from the working directory of the Dev Mode process. I'm not
sure that directory it expects but IDEA doesn't set the working directory for the Dev Mode process explicitly so it is derived from the IDEA process
and it causes problems in your case.

I've committed change to explicitly set working directory for the Super Dev Mode process so the problem should be fixed in the next IDEA 12.1 EAP
build. Perhaps we should allow to set any working directory for GWT Dev Mode in the run configuration, we already have a feature request for that
(http://youtrack.jetbrains.com/issue/IDEA-60162).

--
Nikolay Chashnikov
Software Developer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

0

Please sign in to leave a comment.