Bug 545060 - Export as BMP image with max resolution causes a freeze of Eclipse
Summary: Export as BMP image with max resolution causes a freeze of Eclipse
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Diagram (show other bugs)
Version: 6.1.2   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2019-03-05 06:29 EST by Steve Monnier CLA
Modified: 2019-04-17 07:14 EDT (History)
2 users (show)

See Also:


Attachments
Ecore_sample (2.61 KB, application/x-zip-compressed)
2019-03-05 06:29 EST, Steve Monnier CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Monnier CLA 2019-03-05 06:29:35 EST
Created attachment 277770 [details]
Ecore_sample

Using the diagram functionality "Export as image" in BMP format with max resolution causes Eclipse to freeze.

Step to reproduce:
- Import the project from the attached ecore_sample.zip
- Open the diagram
- Trigger the Export Diagram as image
- On the popup set the format to BMP and the resolution to MAX
-> Eclipse should not freeze

When paused during the freeze, the Eclipse main thread is stuck at:
Thread [main] (Suspended)	
	owns: ExportAction  (id=114)	
	WinBMPFileFormat.unloadDataNoCompression(ImageData, byte[], OutputStream) line: 683	
	WinBMPFileFormat.unloadData(ImageData, byte[], OutputStream, int) line: 613	
	WinBMPFileFormat.unloadIntoByteStream(ImageLoader) line: 742	
	WinBMPFileFormat(FileFormat).unloadIntoStream(ImageLoader, LEDataOutputStream) line: 124	
	FileFormat.save(OutputStream, int, ImageLoader) line: 112	
	ImageLoader.save(OutputStream, int) line: 218	
	DiagramEditPartService.saveToOutputStream(OutputStream, Image, ImageFileFormat, IProgressMonitor) line: 444	
	DiagramEditPartService.saveToFile(IPath, Image, ImageFileFormat, IProgressMonitor) line: 408	
	DiagramEditPartService.copyToImage(DiagramGenerator, List, Rectangle, IPath, ImageFileFormat, IProgressMonitor) line: 381	
	DiagramEditPartService(CopyToImageUtil).copyToImage(DiagramEditPart, IPath, ImageFileFormat, IProgressMonitor) line: 300	
	DiagramEditPartService.copyToImage(DiagramEditPart, IPath, ImageFileFormat, IProgressMonitor) line: 264	
	DiagramDialectUIServices.exportWithResult(DRepresentation, Session, IPath, ExportFormat, IProgressMonitor, boolean) line: 458	
	DiagramDialectUIServices(DialectUIServices).export(DRepresentation, Session, IPath, ExportFormat, IProgressMonitor, boolean) line: 252	
	DialectUIManagerImpl.export(DRepresentation, Session, IPath, ExportFormat, IProgressMonitor, boolean) line: 269	
	ExportAction.createImageFiles(IProgressMonitor) line: 219	
	ExportAction.execute(IProgressMonitor) line: 140	
	ExportAction(WorkspaceModifyOperation).lambda$0(InvocationTargetException[], IProgressMonitor) line: 107	
	1298196309.run(IProgressMonitor) line: not available	
	Workspace.run(ICoreRunnable, ISchedulingRule, int, IProgressMonitor) line: 2240	
	Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2267	
	ExportAction(WorkspaceModifyOperation).run(IProgressMonitor) line: 128	
	ModalContext.runInCurrentThread(IRunnableWithProgress, IProgressMonitor) line: 437	
	ModalContext.run(IRunnableWithProgress, boolean, IProgressMonitor, Display) line: 353	
	ProgressMonitorDialog.run(boolean, boolean, IRunnableWithProgress) line: 483	
	SaveAsImageFileAction(AbstractExportRepresentationsAction).exportRepresentation(IPath, Iterable<DRepresentationDescriptor>, Session) line: 148	
	SaveAsImageFileAction(AbstractExportRepresentationsAction).run() line: 93	
	SaveAsImageFileAction(Action).runWithEvent(Event) line: 473	
	AbstractContributionItemProvider$PluginActionContributionItem(ActionContributionItem).handleWidgetSelection(Event, boolean) line: 565	
	AbstractContributionItemProvider$PluginActionContributionItem(ActionContributionItem).lambda$4(Event) line: 397	
	334337848.handleEvent(Event) line: not available	
	EventTable.sendEvent(Event) line: 86	
	Display.sendEvent(EventTable, Event) line: 4428	
	MenuItem(Widget).sendEvent(Event) line: 1079	
	Display.runDeferredEvents() line: 4238	
	Display.readAndDispatch() line: 3817	
	PartRenderingEngine$5.run() line: 1150	
	Realm.runWithDefault(Realm, Runnable) line: 336	
	PartRenderingEngine.run(MApplicationElement, IEclipseContext) line: 1039	
	E4Workbench.createAndRunUI(MApplicationElement) line: 153	
	Workbench.lambda$3(Display, WorkbenchAdvisor, int[]) line: 680	
	247576438.run() line: not available	
	Realm.runWithDefault(Realm, Runnable) line: 336	
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 594	
	PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 148	
	IDEApplication.start(IApplicationContext) line: 151	
	EclipseAppHandle.run(Object) line: 196	
	EclipseAppLauncher.runApplication(Object) line: 134	
	EclipseAppLauncher.start(Object) line: 104	
	EclipseStarter.run(Object) line: 388	
	EclipseStarter.run(String[], Runnable) line: 243	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 498	
	Main.invokeFramework(String[], URL[]) line: 653	
	Main.basicRun(String[]) line: 590	
	Main.run(String[]) line: 1499	
	Main.main(String[]) line: 1472
Comment 1 Julien Dupont CLA 2019-03-06 08:24:08 EST
To add 1 thing, 
to reproduce it's necessary to select the Design viewpoint and create a new Representation.
After this action you must to drop all elements from semantic model to representation.
Comment 2 Steve Monnier CLA 2019-03-06 08:27:33 EST
I think it is because you tested on an environment with EcoreTools. I used the org.eclipse.sirius.sample.ecore.design for this sample.
Comment 3 Kirill Balod CLA 2019-04-17 07:14:16 EDT
Seems to be duplicate of https://bugs.eclipse.org/bugs/show_bug.cgi?id=527514