NullPointerException when saving model with custom attribute [message #1385843] |
Wed, 11 June 2014 11:22  |
Eclipse User |
|
|
|
Hi Bob,
I try to use a model extension to add a custom property on a ServiceTask like this:
<modelExtension
id="my.modelExtension.ServiceTask"
name="Service Task Extensions"
runtimeId="my.runtime"
type="ServiceTask">
<property
name="customProp"
type="EString"
value="DefaultValue">
</property>
</modelExtension>
I also defined a property tab for my ServiceTask to edit my custom property:
<propertyTab
id="my.servicetask.tab"
class="default"
replaceTab="org.eclipse.bpmn2.modeler.serviceTask.tab"
label="Configuration"
runtimeId="my.runtime"
type="org.eclipse.bpmn2.ServiceTask"
features="customProp">
</propertyTab>
If I save the BPMN file, the custom property appears as expected in the xml:
<bpmn2:serviceTask id="AutoTask_1" ext:customProp="DefaultValue" .../>
If I remove the value in the text editor of my custom property and then save the BPMN file again, the custom property is removed from the xml, perfect.
But if I close the BPMN editor, re-open it and save the BPMN again, this time I get a NullPointerException:
java.lang.NullPointerException
at org.eclipse.emf.ecore.xmi.impl.StringSegment.getLength(StringSegment.java:296)
at org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl$Bpmn2ModelerXMLSave$Bpmn2ModelerXMLString.addLine(Bpmn2ModelerResourceImpl.java:670)
at org.eclipse.emf.ecore.xmi.impl.XMLString.endEmptyElement(XMLString.java:415)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSaveFeatures(XMLSaveImpl.java:1632)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1483)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1219)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2711)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1176)
at org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl$Bpmn2ModelerXMLSave.saveElement(Bpmn2ModelerResourceImpl.java:920)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1037)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2412)
at org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl$Bpmn2ModelerXMLSave.saveContainedMany(Bpmn2ModelerResourceImpl.java:867)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1548)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1219)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2711)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1176)
at org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl$Bpmn2ModelerXMLSave.saveElement(Bpmn2ModelerResourceImpl.java:920)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1037)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2412)
at org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl$Bpmn2ModelerXMLSave.saveContainedMany(Bpmn2ModelerResourceImpl.java:862)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1548)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1219)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2711)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1176)
at org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl$Bpmn2ModelerXMLSave.saveElement(Bpmn2ModelerResourceImpl.java:920)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1037)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementFeatureMap(XMLSaveImpl.java:2461)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1513)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1219)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.writeTopObject(XMLSaveImpl.java:685)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:586)
at org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl$Bpmn2ModelerXMLSave.traverse(Bpmn2ModelerResourceImpl.java:977)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:251)
at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:365)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1430)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.saveOnlyIfChangedWithMemoryBuffer(ResourceImpl.java:1144)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:985)
at org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl.save(Bpmn2ModelerResourceImpl.java:247)
at org.eclipse.graphiti.ui.internal.services.impl.EmfService$1$1.run(EmfService.java:268)
at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328)
at org.eclipse.graphiti.ui.internal.services.impl.EmfService$1.run(EmfService.java:279)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2327)
at org.eclipse.graphiti.ui.internal.services.impl.EmfService.save(EmfService.java:286)
at org.eclipse.graphiti.ui.editor.DefaultPersistencyBehavior.save(DefaultPersistencyBehavior.java:281)
at org.eclipse.bpmn2.modeler.ui.editor.BPMN2PersistencyBehavior.access$1(BPMN2PersistencyBehavior.java:1)
at org.eclipse.bpmn2.modeler.ui.editor.BPMN2PersistencyBehavior$1.run(BPMN2PersistencyBehavior.java:75)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
at org.eclipse.graphiti.ui.internal.services.impl.EmfService.save(EmfService.java:288)
at org.eclipse.graphiti.ui.editor.DefaultPersistencyBehavior.save(DefaultPersistencyBehavior.java:281)
at org.eclipse.bpmn2.modeler.ui.editor.BPMN2PersistencyBehavior.access$1(BPMN2PersistencyBehavior.java:1)
at org.eclipse.bpmn2.modeler.ui.editor.BPMN2PersistencyBehavior$1.run(BPMN2PersistencyBehavior.java:75)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.lang.RuntimeException
... 5 more
What I found is that when I reload the BPMN file, the feature "anyAttribute" of my ServiceTask contains 1 element [ext:customProp=null]. The null value causes the save operation to fail.
Do you know how I could avoid this error ?
Thanks,
Cédric
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03669 seconds