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

Bug 441755

Summary: NPE in SVGWorkspaceImageFigure.refreshFigure
Product: [Modeling] Sirius Reporter: Stephane Begaudeau <stephane.begaudeau>
Component: DiagramAssignee: Project Inbox <sirius.diagram-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: major    
Priority: P3 CC: cedric.brun, cmordant1, laurent.redor, maxime.porhel
Version: 1.0.0Keywords: triaged
Target Milestone: 2.0.0   
Hardware: Macintosh   
OS: Mac OS X   
Whiteboard:
Attachments:
Description Flags
Project for steps to reproduce (bad version)
none
Project with SVG image for steps to reproduce (comment 3) none

Description Stephane Begaudeau CLA 2014-08-14 04:30:25 EDT
The details are available here: https://github.com/dartdesigner/Dart-Designer/issues/71
The release impacted by this issue can be downloaded there: https://github.com/dartdesigner/Dart-Designer/releases/tag/v0.4.0
Source code (metamodel, odesign, etc): https://github.com/dartdesigner/Dart-Designer/tree/v0.4.0

I tried to reproduce the issue on windows 7 without success, I am only using one svg image and it is packaged inside the "design" bundle.

java.lang.NullPointerException
    at org.eclipse.sirius.diagram.ui.tools.api.figure.SVGWorkspaceImageFigure.refreshFigure(SVGWorkspaceImageFigure.java:168)
    at org.eclipse.sirius.diagram.ui.tools.api.figure.SVGWorkspaceImageFigure.createImageFigure(SVGWorkspaceImageFigure.java:60)
    at org.eclipse.sirius.diagram.ui.internal.edit.parts.WorkspaceImageEditPart.createNodeShape(WorkspaceImageEditPart.java:138)
    at org.eclipse.sirius.diagram.ui.internal.edit.parts.WorkspaceImageEditPart.createNodeFigure(WorkspaceImageEditPart.java:188)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart.createFigure(ShapeNodeEditPart.java:90)
    at org.eclipse.gef.editparts.AbstractGraphicalEditPart.getFigure(AbstractGraphicalEditPart.java:494)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart.addChildVisual(AbstractBorderedShapeEditPart.java:90)
    at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:211)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.addChild(GraphicalEditPart.java:1319)
    at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:781)
    at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractBorderedDiagramElementEditPart.refreshChildren(AbstractBorderedDiagramElementEditPart.java:256)
    at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:726)
    at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:644)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:861)
    at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:851)
    at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramNodeEditPart.refresh(AbstractDiagramNodeEditPart.java:142)
    at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:253)
    at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:223)
    at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:212)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.addChild(GraphicalEditPart.java:1319)
    at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:781)
    at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:726)
    at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:644)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:861)
    at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328)
    at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:851)
    at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDDiagramEditPart.refresh(AbstractDDiagramEditPart.java:152)
    at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:253)
    at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:223)
    at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:212)
    at org.eclipse.gef.editparts.SimpleRootEditPart.setContents(SimpleRootEditPart.java:105)
    at org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents(AbstractEditPartViewer.java:617)
    at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer.setContents(DiagramGraphicalViewer.java:352)
    at org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents(AbstractEditPartViewer.java:626)
    at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor.initializeGraphicalViewerContents(DiagramEditor.java:872)
    at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor.initializeGraphicalViewer(DiagramEditor.java:865)
    at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorWithFlyOutPalette.initializeGraphicalViewer(DiagramEditorWithFlyOutPalette.java:116)
    at org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor.initializeGraphicalViewer(DiagramDocumentEditor.java:174)
    at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.initializeGraphicalViewer(DDiagramEditorImpl.java:1452)
    at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.createOriginalGraphicalViewer(DDiagramEditorImpl.java:1416)
    at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.createMainDiagramSection(DDiagramEditorImpl.java:1336)
    at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.createGraphicalViewer(DDiagramEditorImpl.java:1325)
    at org.eclipse.gef.ui.parts.GraphicalEditor.createPartControl(GraphicalEditor.java:171)
    at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor.createPartControl(DiagramEditor.java:1580)
    at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorWithFlyOutPalette.createPartControl(DiagramEditorWithFlyOutPalette.java:328)
    at org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor.createPartControl(DiagramDocumentEditor.java:1514)
    at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.createPartControl(DDiagramEditorImpl.java:416)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:140)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:99)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:321)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:888)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:869)
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:120)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:337)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:258)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:104)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:73)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:55)
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:127)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
    at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1251)
    at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:66)
    at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
    at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:156)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4721)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:218)
    at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
    at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
    at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
    at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
    at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
    at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
    at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
    at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81)
    at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:59)
    at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
    at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:171)
    at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:488)
    at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:454)
    at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:692)
    at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:385)
    at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1126)
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3182)
    at org.eclipse.ui.internal.WorkbenchPage.access$23(WorkbenchPage.java:3104)
    at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:3086)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3081)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3045)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3026)
    at org.eclipse.sirius.diagram.ui.business.internal.dialect.DiagramDialectUIServices$1.run(DiagramDialectUIServices.java:199)
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
    at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:156)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4721)
    at org.eclipse.sirius.diagram.ui.business.internal.dialect.DiagramDialectUIServices.openEditor(DiagramDialectUIServices.java:209)
    at org.eclipse.sirius.diagram.ui.business.internal.dialect.DiagramDialectUIServices.openEditor(DiagramDialectUIServices.java:171)
    at org.eclipse.sirius.ui.business.internal.dialect.DialectUIManagerImpl.openEditor(DialectUIManagerImpl.java:102)
    at org.eclipse.sirius.ui.tools.internal.actions.session.OpenRepresentationsAction.openRepresentations(OpenRepresentationsAction.java:113)
    at org.eclipse.sirius.ui.tools.internal.actions.session.OpenRepresentationsAction.access$1(OpenRepresentationsAction.java:100)
    at org.eclipse.sirius.ui.tools.internal.actions.session.OpenRepresentationsAction$1.run(OpenRepresentationsAction.java:83)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:466)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:374)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:527)
    at org.eclipse.ui.internal.progress.ProgressManager$RunnableWithStatus.run(ProgressManager.java:1380)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:1214)
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
    at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:156)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4721)
    at org.eclipse.ui.internal.progress.ProgressManager.runInUI(ProgressManager.java:1211)
    at org.eclipse.sirius.ui.tools.internal.actions.session.OpenRepresentationsAction.run(OpenRepresentationsAction.java:86)
    at org.eclipse.sirius.ui.tools.internal.views.common.navigator.OpenRepresentationListener.doubleClick(OpenRepresentationListener.java:42)
    at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:831)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178)
    at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:828)
    at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1472)
    at org.eclipse.ui.navigator.CommonViewer.handleDoubleSelect(CommonViewer.java:454)
    at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1237)
    at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:252)
    at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:249)
    at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:311)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4188)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1467)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1490)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1475)
    at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4031)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3658)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Comment 1 Cedric Brun CLA 2014-08-18 04:57:11 EDT
This might be related to https://bugs.eclipse.org/bugs/show_bug.cgi?id=439095

Could you try adding a required dependency on apache xerces in your product or bundle ?
Comment 2 Stephane Begaudeau CLA 2014-08-19 05:51:27 EDT
(In reply to Cedric Brun from comment #1)
> This might be related to https://bugs.eclipse.org/bugs/show_bug.cgi?id=439095
> 
> Could you try adding a required dependency on apache xerces in your product
> or bundle ?

Apache Xerces is already in my product: org.apache.xerces_2.9.0.v201101211617.jar

In the mean time, since I am only using one svg file in my product, I have replaced it with a png.
Comment 3 Laurent Redor CLA 2014-08-20 02:54:23 EDT
Stéphane, the problematic SVG is "Dart-Designer/bundles/org.obeonetwork.dsl.dart.design/icons/common/empty.svg"?

I make a simple project with this svg file. I have not a NPE but an error caused by an invalid SVG file.

Steps to reproduce:
* Import the project SampleProjectWithSVG
* Open the diagram sampleDiagramWithSVG
* The editor is opened with this error: "Could not open the editor: invalid.element"

org.w3c.dom.DOMException: invalid.element
	at org.apache.batik.dom.AbstractNode.createDOMException(Unknown Source)
	at org.apache.batik.dom.svg.SVGDOMImplementation.createElementNS(Unknown Source)
	at org.apache.batik.dom.svg.SVGOMDocument.createElementNS(Unknown Source)
	at org.apache.batik.dom.svg.SVGDOMImplementation.createDocument(Unknown Source)
	at org.apache.batik.dom.util.SAXDocumentFactory.startElement(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
	at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
	at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
	at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(Unknown Source)
	at org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure.loadDocument(SVGFigure.java:90)
	at org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure.setURI(SVGFigure.java:72)
	at org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure.setURI(SVGFigure.java:64)
	at org.eclipse.sirius.diagram.ui.tools.api.figure.SVGWorkspaceImageFigure.updateImageURI(SVGWorkspaceImageFigure.java:188)
	at org.eclipse.sirius.diagram.ui.tools.api.figure.SVGWorkspaceImageFigure.flyWeightImage(SVGWorkspaceImageFigure.java:248)
	at org.eclipse.sirius.diagram.ui.edit.internal.part.AbstractDiagramNodeEditPartRefreshVisualsOperation.refreshWidth(AbstractDiagramNodeEditPartRefreshVisualsOperation.java:183)
	at org.eclipse.sirius.diagram.ui.edit.internal.part.AbstractDiagramNodeEditPartRefreshVisualsOperation.refreshSize(AbstractDiagramNodeEditPartRefreshVisualsOperation.java:98)
	at org.eclipse.sirius.diagram.ui.edit.internal.part.DiagramNodeEditPartOperation.internalRefreshVisuals(DiagramNodeEditPartOperation.java:104)
	at org.eclipse.sirius.diagram.ui.edit.internal.part.DiagramNodeEditPartOperation.refreshVisuals(DiagramNodeEditPartOperation.java:72)
	at org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramNodeEditPart.refreshVisuals(AbstractDiagramNodeEditPart.java:305)
Comment 4 Laurent Redor CLA 2014-08-20 02:56:53 EDT
Created attachment 246150 [details]
Project for steps to reproduce (bad version)
Comment 5 Stephane Begaudeau CLA 2014-08-20 03:31:11 EDT
(In reply to Laurent Redor from comment #4)
> Created attachment 246150 [details]
> Project for steps to reproduce (comment 3)

The file empty.svg in your example has a size of 57KB while mine has a size of 5KB. If I open your file, this is the beginning of its content:

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<!DOCTYPE html>
<html lang="en" class="   ">
  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#">
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv="Content-Language" content="en">
    
    
    <title>Dart-Designer/empty.svg at v0.4.0 · dartdesigner/Dart-Designer · GitHub</title>
    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png">
    <meta property="fb:app_id" content="1401488693436528">

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

It's not my svg file, it's the Github page where my svg file is displayed ^^"

Don't consider this [1] to be my svg file, this [2] is the real image...

1: https://github.com/dartdesigner/Dart-Designer/blob/b35c096057ad6e6d6c4e98c10129a1dd22a4aa20/bundles/org.obeonetwork.dsl.dart.design/icons/common/empty.svg
2: https://raw.githubusercontent.com/dartdesigner/Dart-Designer/b35c096057ad6e6d6c4e98c10129a1dd22a4aa20/bundles/org.obeonetwork.dsl.dart.design/icons/common/empty.svg
Comment 6 Laurent Redor CLA 2014-08-20 03:37:37 EDT
Sorry for this problem, I uploaded a new version of the sample project with the real image. There is no NPE on Linux. I will try on Mac.
Comment 7 Laurent Redor CLA 2014-08-20 03:39:11 EDT
Created attachment 246154 [details]
Project with SVG image for steps to reproduce (comment 3)
Comment 8 Laurent Redor CLA 2014-08-20 03:50:47 EDT
Not reproduce with the simple project even on Mac.
Comment 9 Laurent Redor CLA 2014-08-25 04:48:44 EDT
Stephane asked to nilsdoehring to try to reproduce the problem with the simple project on https://github.com/dartdesigner/Dart-Designer/issues/72

Waiting for returns
Comment 10 Cedric Brun CLA 2014-09-12 09:28:04 EDT
*** Bug 440478 has been marked as a duplicate of this bug. ***
Comment 11 Cedric Brun CLA 2014-09-12 09:29:53 EDT
In the meantime we could at least, make sure this failure revealed with an "ImageNotFound" image  + logging an error to state that Batik could not be instantiated for some reason instead of an NPE.
Comment 12 Maxime Porhel CLA 2014-11-06 10:00:07 EST
This issue seems to be the NPE which came with the SAX2 Driver not found exception corrected in Bug 439095. 

There is no more work to do: the correction done on 439095 will allow to retrieve the SAX2 driver, and the case were the transposer was null are now handled

Note that if an image is not found, we already load some not found (svg) image. 



Cedric proposed to display the IageNotFound figure, if we want to do this in this SAX2 driver not found (if the provided correction on 439095 + the corrected NPEs are not sufficient), it will require to display the PNG version of the ImageNotFound (batik will not be able to load the SVG version, as there is no SAX2 driver found) and this will require to change the type of figure: from SVGWorkspaceImageFigure to WorkspaceImageFigure.
Comment 13 Cedric Brun CLA 2014-11-06 10:02:41 EST
Well that was more of a workaround proposition if we could not fix the issue itself.

Now that https://bugs.eclipse.org/bugs/show_bug.cgi?id=439095 is fixed and considering what you just said, it might not be worth it.
Comment 14 Maxime Porhel CLA 2014-11-06 10:04:21 EST
The NPE as been corrected by commit afbfffda43118dc4dc244f64b5eaa97df8a093c0 (see https://git.eclipse.org/r/#/c/35319/3)
Comment 15 Maxime Porhel CLA 2014-11-06 10:05:26 EST

*** This bug has been marked as a duplicate of bug 439095 ***
Comment 16 Maxime Porhel CLA 2014-11-06 10:08:26 EST
Already corrected in Sirius 2.0