|
From: Craig G. (opennms) <cg...@op...> - 2012-08-15 15:40:16
|
Xose,
Further to my previous post and perhaps more worrying. I find I get the
same error if I create any artifacts in the 'root package'.
to recreate;
1. create a new tigerstripe model
2. enable the soap generator
3. in the soap generator settings in tigerstripe.xml ensure root package
is set
<property name="ROOT_PKG">org.tmforum.tip</property>
4. in tigerstripe model create an entity in package org.tmforum.tip
5. generate model
you get the following error
ERROR ? [15-Aug-2012 16:28:22.760] - Unexpected error while merging
'templates/dependencyAnalyzer.vm' template: Invocation of method
'constructClosure' in class
org.eclipse.tigerstripe.generators.xml.filters.DependencyAnalyzer threw
exception java.lang.StringIndexOutOfBoundsException: String index out of
range: -1 @ templates/dependencyAnalyzer.vm[7,21]. Generation may be
incomplete. [2012-08-15 16:28:21.976+0100]
...
Caused by: java.lang.StringIndexOutOfBoundsException: String index out
of range: -1
at java.lang.String.substring(Unknown Source)
at java.lang.String.substring(Unknown Source)
at
org.eclipse.tigerstripe.generators.xml.helpers.XmlSchemaHelpers.mapPackageToSchemaLocation(XmlSchemaHelpers.java:141)
at
org.eclipse.tigerstripe.generators.xml.helpers.XsdReferencesMgr.<init>(XsdReferencesMgr.java:67)
this is caused by the following code at XmlSchemaHelpers.java line141
when pkgOrSession='org.tmforum.tip' and root='org.tmforum.tip'
if (pkgOrSession.startsWith(root)) {
loc = pkgOrSession.substring(root.length() + 1);
}
Cheers
Craig
On 15/08/2012 15:20, Craig Gallen (opennms) wrote:
> Xose,
>
> This is a minor bug which may cause confusion when people start using
> tigerstripe.
>
> When I run the Soap Generator against an empty model project I get the
> following error;
>
> Unexpected error while merging 'templates/dependencyAnalyzer.vm'
> template: Invocation of method 'getPackagesFromArtifacts' in class
> org.eclipse.tigerstripe.generators.xml.helpers.ModelHelpers threw
> exception java.lang.ClassCastException: $Proxy12 cannot be cast to
> org.eclipse.tigerstripe.workbench.internal.core.model.AbstractArtifact
> @ templates/dependencyAnalyzer.vm[4,43]. Generation may be incomplete.
>
> Details;
> org.eclipse.tigerstripe.workbench.TigerstripeException: Unexpected
> error while merging 'templates/dependencyAnalyzer.vm' template:
> Invocation of method 'getPackagesFromArtifacts' in class
> org.eclipse.tigerstripe.generators.xml.helpers.ModelHelpers threw
> exception java.lang.ClassCastException: $Proxy12 cannot be cast to
> org.eclipse.tigerstripe.workbench.internal.core.model.AbstractArtifact
> @ templates/dependencyAnalyzer.vm[4,43]
> at
> org.eclipse.tigerstripe.workbench.internal.core.project.pluggable.rules.GlobalTemplateRule.trigger(GlobalTemplateRule.java:183)
> at
> org.eclipse.tigerstripe.workbench.internal.core.plugin.pluggable.PluginRuleExecutor.trigger(PluginRuleExecutor.java:80)
> at
> org.eclipse.tigerstripe.workbench.internal.core.plugin.pluggable.PluggablePlugin.trigger(PluggablePlugin.java:158)
> at
> org.eclipse.tigerstripe.workbench.internal.core.plugin.PluginHousing.trigger(PluginHousing.java:35)
> at
> org.eclipse.tigerstripe.workbench.internal.core.plugin.PluginConfig.trigger(PluginConfig.java:259)
> at
> org.eclipse.tigerstripe.workbench.internal.core.generation.M1Generator.internalPluginLoop(M1Generator.java:671)
> at
> org.eclipse.tigerstripe.workbench.internal.core.generation.M1Generator.internalRun(M1Generator.java:613)
> at
> org.eclipse.tigerstripe.workbench.internal.core.generation.M1Generator.run(M1Generator.java:349)
> at
> org.eclipse.tigerstripe.workbench.internal.api.impl.TigerstripeProjectHandle.generate(TigerstripeProjectHandle.java:514)
> at
> org.eclipse.tigerstripe.workbench.ui.internal.wizards.generate.NewTigerstripeRunWizard.finishPage(NewTigerstripeRunWizard.java:95)
> at
> org.eclipse.tigerstripe.workbench.ui.internal.wizards.NewTSElementWizard$2.run(NewTSElementWizard.java:154)
> at
> org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
> at
> org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
> at
> org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
> at
> org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:106)
> at
> org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
> org.apache.velocity.exception.MethodInvocationException: Invocation of
> method 'getPackagesFromArtifacts' in class
> org.eclipse.tigerstripe.generators.xml.helpers.ModelHelpers threw
> exception java.lang.ClassCastException: $Proxy12 cannot be cast to
> org.eclipse.tigerstripe.workbench.internal.core.model.AbstractArtifact
> @ templates/dependencyAnalyzer.vm[4,43]
> at
> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:286)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:203)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:419)
> at
> org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:73)
> at
> org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:125)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:318)
> at org.apache.velocity.Template.merge(Template.java:254)
> at
> org.eclipse.tigerstripe.workbench.internal.core.project.pluggable.rules.GlobalTemplateRule.trigger(GlobalTemplateRule.java:162)
> at
> org.eclipse.tigerstripe.workbench.internal.core.plugin.pluggable.PluginRuleExecutor.trigger(PluginRuleExecutor.java:80)
> at
> org.eclipse.tigerstripe.workbench.internal.core.plugin.pluggable.PluggablePlugin.trigger(PluggablePlugin.java:158)
> at
> org.eclipse.tigerstripe.workbench.internal.core.plugin.PluginHousing.trigger(PluginHousing.java:35)
> at
> org.eclipse.tigerstripe.workbench.internal.core.plugin.PluginConfig.trigger(PluginConfig.java:259)
> at
> org.eclipse.tigerstripe.workbench.internal.core.generation.M1Generator.internalPluginLoop(M1Generator.java:671)
> at
> org.eclipse.tigerstripe.workbench.internal.core.generation.M1Generator.internalRun(M1Generator.java:613)
> at
> org.eclipse.tigerstripe.workbench.internal.core.generation.M1Generator.run(M1Generator.java:349)
> at
> org.eclipse.tigerstripe.workbench.internal.api.impl.TigerstripeProjectHandle.generate(TigerstripeProjectHandle.java:514)
> at
> org.eclipse.tigerstripe.workbench.ui.internal.wizards.generate.NewTigerstripeRunWizard.finishPage(NewTigerstripeRunWizard.java:95)
> at
> org.eclipse.tigerstripe.workbench.ui.internal.wizards.NewTSElementWizard$2.run(NewTSElementWizard.java:154)
> at
> org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
> at
> org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
> at
> org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
> at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4777)
> at
> org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:106)
> at
> org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
> Caused by: java.lang.ClassCastException: $Proxy12 cannot be cast to
> org.eclipse.tigerstripe.workbench.internal.core.model.AbstractArtifact
> at
> org.eclipse.tigerstripe.generators.xml.helpers.ModelHelpers.getPackagesFromArtifacts(ModelHelpers.java:235)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:295)
> at
> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:245)
> ... 23 more
>
>
> To reproduce
> 1. In Eclipse select New>tigerstripe Project and create a new project
> 2. in tigerstripe.xml enable Soap Generator
> 3. generate model in work space
>
> If there is an entity in the model, this problem disappears.
> It looks like having no artifacts in an empty model causes the soap
> generator to fail. You may want to check that the dependencyAnalyser
> can cope with empty models as this will be the default state for new
> projects created by the project creator.
>
> Cheers
> Craig
>
|