Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 338295

Summary: ValidateEditException when contacts.xml file already exists
Product: z_Archived Reporter: Raj Alagumalai <raj.alagumalai>
Component: SapphireAssignee: Konstantin Komissarchik <konstantin>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: konstantin
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Raj Alagumalai CLA 2011-02-25 20:47:53 EST
Build Identifier: 0.2.1.201102251334

org.eclipse.sapphire.modeling.ValidateEditException when valid contacts.xml file already exists

install sapphire from update site

create a new file called calendar.xml
create a new file called contacts.xml

open calendar.xml in calendar editor
switch to contacts node right click and add contact

expected, that the contact would be added to the existing contacts.xml file

instead following exception is logged in the .log file

both calendar.xml and contacts.xml are valid instance documents for the calendar.xsd and contacts.xsd


org.eclipse.sapphire.modeling.ValidateEditException
	at org.eclipse.sapphire.ui.xml.XmlEditorResourceStore.validateEdit(XmlEditorResourceStore.java:189)
	at org.eclipse.sapphire.modeling.xml.XmlNode.validateEdit(XmlNode.java:80)
	at org.eclipse.sapphire.modeling.xml.XmlElement.addChildElement(XmlElement.java:479)
	at org.eclipse.sapphire.modeling.xml.XmlElement.addChildElement(XmlElement.java:547)
	at org.eclipse.sapphire.modeling.xml.StandardXmlListBindingImpl.addUnderlyingObject(StandardXmlListBindingImpl.java:140)
	at org.eclipse.sapphire.modeling.LayeredListBindingImpl.add(LayeredListBindingImpl.java:58)
	at org.eclipse.sapphire.modeling.ModelElementList.addNewElement(ModelElementList.java:243)
	at org.eclipse.sapphire.ui.swt.renderer.actions.internal.OutlineNodeAddActionHandlerFactory$AddActionHandler.run(OutlineNodeAddActionHandlerFactory.java:118)
	at org.eclipse.sapphire.ui.SapphireActionHandler.execute(SapphireActionHandler.java:89)
	at org.eclipse.sapphire.ui.SapphireActionLink$1.linkActivated(SapphireActionLink.java:125)
	at org.eclipse.sapphire.ui.swt.renderer.internal.formtext.SapphireFormText.activateLink(SapphireFormText.java:1547)
	at org.eclipse.sapphire.ui.swt.renderer.internal.formtext.SapphireFormText.handleMouseClick(SapphireFormText.java:1349)
	at org.eclipse.sapphire.ui.swt.renderer.internal.formtext.SapphireFormText.access$16(SapphireFormText.java:1320)
	at org.eclipse.sapphire.ui.swt.renderer.internal.formtext.SapphireFormText$6.mouseUp(SapphireFormText.java:440)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:213)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	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.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)


Reproducible: Always
Comment 1 Konstantin Komissarchik CLA 2011-02-28 14:43:47 EST
I cannot reproduce this problem. Tried this both with files created with new file wizard (empty files) and files created with new xml file wizard (as described in Bug 338294). 

I did add a bit more detail to the thrown exception, so if this is reproduced again, we will have more to go on.
Comment 2 Raj Alagumalai CLA 2011-02-28 15:07:00 EST
tested this with Build 166 which has the fix for bug 338924

I am no longer seeing the exception, however add contact continues to remain a NOOP similar to the previous case

steps to reproduce

install sapphire via update-site
create a new XML file named contacts.xml and a new XML file names Calendar.xml

contacts.xml
<?xml version="1.0" encoding="UTF-8"?>

calendar.xml
<?xml version="1.0" encoding="UTF-8"?>

open calendar.xml in Calendar editor
switch to contacts and add contacts
notice that this a NOOP
expected to be prompted to 

switch to calendar and add event
notice that the user is prompted with fresh start option


let me know if this needs to be tracked via a new bug
Comment 3 Konstantin Komissarchik CLA 2011-02-28 15:11:53 EST
I am not able to reproduce the problem described in Comment #2. Adding a contact prompts me for a fresh start on the file. Clicking yes, fixes the file and adds the contact. Clicking no, does produce the expected no-op.