Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 327744 - Eclip[se becomes unusable when editing an xhtml file in a web project and continuous error messages are displayed.
Summary: Eclip[se becomes unusable when editing an xhtml file in a web project and con...
Status: RESOLVED WORKSFORME
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.6   Edit
Hardware: PC Windows 2000
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-14 05:27 EDT by jraven CLA
Modified: 2010-10-18 12:56 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jraven CLA 2010-10-14 05:27:55 EDT
Build Identifier: Version: Helios Release Build id: 20100617-1415

Error log details are below. Please note this is a critical bug as it makes Eclipse unusable.
!ENTRY org.eclipse.ui 4 0 2010-10-14 21:57:54.838
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Unable to load graphics library [GDI+ is required] (java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.swt.internal.gdip.GdiplusStartupInput))
	at org.eclipse.swt.SWT.error(SWT.java:4083)
	at org.eclipse.swt.SWT.error(SWT.java:3998)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
	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:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
Caused by: org.eclipse.swt.SWTException: Unable to load graphics library [GDI+ is required] (java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.swt.internal.gdip.GdiplusStartupInput)
	at org.eclipse.swt.SWT.error(SWT.java:4083)
	at org.eclipse.swt.graphics.Device.checkGDIP(Device.java:209)
	at org.eclipse.swt.graphics.GC.initGdip(GC.java:3832)
	at org.eclipse.swt.graphics.GC.setAlpha(GC.java:4167)
	at org.eclipse.draw2d.SWTGraphics.setAlpha(SWTGraphics.java:1025)
	at org.eclipse.jst.pagedesigner.editpolicies.MouseSelectableChildDecorator.paintFigure(MouseSelectableChildDecorator.java:179)
	at org.eclipse.draw2d.Figure.paint(Figure.java:1115)
	at org.eclipse.draw2d.Figure.paintChildren(Figure.java:1167)
	at org.eclipse.draw2d.Figure.paintClientArea(Figure.java:1202)
	at org.eclipse.draw2d.Figure.paint(Figure.java:1117)
	at org.eclipse.draw2d.Figure.paintChildren(Figure.java:1167)
	at org.eclipse.draw2d.Figure.paintClientArea(Figure.java:1202)
	at org.eclipse.draw2d.Figure.paint(Figure.java:1117)
	at org.eclipse.draw2d.Figure.paintChildren(Figure.java:1167)
	at org.eclipse.draw2d.Figure.paintClientArea(Figure.java:1202)
	at org.eclipse.draw2d.Viewport.paintClientArea(Viewport.java:160)
	at org.eclipse.draw2d.Figure.paint(Figure.java:1117)
	at org.eclipse.draw2d.Figure.paintChildren(Figure.java:1167)
	at org.eclipse.draw2d.Figure.paintClientArea(Figure.java:1202)
	at org.eclipse.draw2d.Figure.paint(Figure.java:1117)
	at org.eclipse.draw2d.DeferredUpdateManager.paint(DeferredUpdateManager.java:165)
	at org.eclipse.draw2d.LightweightSystem.paint(LightweightSystem.java:203)
	at org.eclipse.draw2d.LightweightSystem$2.handleEvent(LightweightSystem.java:110)
	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.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Composite.WM_PAINT(Composite.java:1555)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4216)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.RedrawWindow(Native Method)
	at org.eclipse.swt.widgets.Control.update(Control.java:4023)
	at org.eclipse.swt.widgets.Control.update(Control.java:4013)
	at org.eclipse.draw2d.NativeGraphicsSource.getGraphics(NativeGraphicsSource.java:48)
	at org.eclipse.draw2d.DeferredUpdateManager.getGraphics(DeferredUpdateManager.java:147)
	at org.eclipse.draw2d.DeferredUpdateManager.repairDamage(DeferredUpdateManager.java:310)
	at org.eclipse.draw2d.DeferredUpdateManager.performUpdate(DeferredUpdateManager.java:192)
	at org.eclipse.draw2d.DeferredUpdateManager$UpdateRequest.run(DeferredUpdateManager.java:44)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	... 22 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.swt.internal.gdip.GdiplusStartupInput
	at org.eclipse.swt.graphics.Device.checkGDIP(Device.java:190)
	... 61 more


Reproducible: Sometimes

Steps to Reproduce:
1. Create a Facelets/JSF page using all or most of the libraries:
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:f="http://java.sun.com/jsf/core" 
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:fn="http://java.sun.com/jsp/jstl/functions">

2. Edit the file. Then a dialog box comes up with the message 
"An error has occurred. See error log for more details.
Unable to load graphics library [GDI+ is required] (java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.swt.internal.gdip.GdiplusStartupInput)"

3. This message appear after every character entered when the bug occurs. I have been having it on and off for a month or so. I have tried deleting and recreating the file and this might have worked but this time it did not and it has made it impossible to work.

4. Please note I am providing you with usage data and this does occupy a few minutes on a regular basis but I am helping you with this so canyoun please help me as this is becoming impossible to live with.
Comment 1 Remy Suen CLA 2010-10-14 05:32:28 EDT
I'm wondering if this might be a problem because Windows 2000 doesn't support advanced graphics? SWT, please advise.

jraven, do you get this problem with XP/Vista/7?
Comment 2 Remy Suen CLA 2010-10-14 05:58:31 EDT
This FAQ entry might be of some help.
http://www.eclipse.org/swt/faq.php#nographicslibrary
Comment 3 jraven CLA 2010-10-14 16:22:08 EDT
Hi Remy,
Thanks for the quick response. I have been slow in getting back because I am in a very different time zone (New Zealand). I only have access to Windows 2000. It seems that lack of GDI+ is the problem and the advice given elsewhere as well (http://dev.eclipse.org/newslists/news.eclipse.tools.gef/msg13879.html) is to download the GDI+ package. This I have done but can you please tell me where do I put it or how do I tell Eclipse how to pick it up?
Comment 4 Grant Gayed CLA 2010-10-18 12:56:30 EDT
I did this on my Windows 2000 machine a few years ago, I think it just goes anywhere on the library search path.  I can't access my old machine, but I'm pretty sure I put it in the directory with where all of Windows' shipped .dlls like (something like c:\winnt\windows\system\ ?)

Anyways, closing as WORKSFORME.  If you have more problems with this then please follow up here, I'm CC'd.