java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1937) at org.springframework.roo.addon.gwt.GwtTemplateServiceImpl.buildMirrorDataDictionary(GwtTemplateServiceImpl.java:576) at org.springframework.roo.addon.gwt.GwtTemplateServiceImpl.getMirrorTemplateTypeDetails(GwtTemplateServiceImpl.java:111) at org.springframework.roo.addon.gwt.scaffold.GwtScaffoldMetadataProviderImpl.get(GwtScaffoldMetadataProviderImpl.java:139) at org.springframework.roo.metadata.DefaultMetadataService.getInternal(DefaultMetadataService.java:150) at org.springframework.roo.metadata.DefaultMetadataService.evictAndGet(DefaultMetadataService.java:285) at org.springframework.roo.addon.gwt.scaffold.GwtScaffoldMetadataProviderImpl.notify(GwtScaffoldMetadataProviderImpl.java:236) at org.springframework.roo.metadata.DefaultMetadataService.notify(DefaultMetadataService.java:240) at org.springframework.roo.metadata.internal.DefaultMetadataDependencyRegistry.notifyDownstream(DefaultMetadataDependencyRegistry.java:214) at org.springframework.roo.classpath.DefaultPhysicalTypeMetadataProvider.onFileEvent(DefaultPhysicalTypeMetadataProvider.java:97) at org.springframework.roo.file.monitor.polling.PollingFileMonitorService.publish(PollingFileMonitorService.java:352) at org.springframework.roo.file.monitor.polling.PollingFileMonitorService.scanAll(PollingFileMonitorService.java:325) at org.springframework.roo.process.manager.internal.DefaultProcessManager.doTransactionally(DefaultProcessManager.java:181) at org.springframework.roo.process.manager.internal.DefaultProcessManager.backgroundPoll(DefaultProcessManager.java:128) at org.springframework.roo.process.manager.internal.DefaultProcessManager.timerBasedPoll(DefaultProcessManager.java:243) at org.springframework.roo.process.manager.internal.DefaultProcessManager$2.run(DefaultProcessManager.java:71) at java.lang.Thread.run(Thread.java:680)
The following script reproduces the bug:
project --topLevelPackage com.foo.roo2881 jpa setup --provider ECLIPSELINK --database H2_IN_MEMORY entity jpa --class ~.domain.foo1 --testAutomatically entity jpa --class ~.domain.foo2 --testAutomatically field set --fieldName bar --type foo1 web gwt setup web gwt all --proxyPackage ~.client.proxy --requestPackage ~.client.request