RAP运行中org.eclipse.rwt.internal.lifecycle.RWTLifeCycle afterPhaseExecution bug

在使用RAP进行开发时,创建一个简单View并设置GridLayout布局后,程序运行虽能显示效果,但触发了org.eclipse.rwt.internal.lifecycle.RWTLifeCycle afterPhaseExecution错误,抛出ClassCastException,无法将GridData转换为FillData。通过不设定布局方式解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚接触学习使用RAP,新建一个最简单的view,在createPartControl(Composite parent)方法中设置parent的布局方式为GridLayout,运行程序时可以展示出view的效果,但会抛出org.eclipse.rwt.internal.lifecycle.RWTLifeCycle afterPhaseExecution的bug。

 

2009-9-1 14:38:48 org.eclipse.rwt.internal.lifecycle.RWTLifeCycle afterPhaseExecution
严重: Could not execute PhaseListener after phase 'PROCESS_ACTION'.
java.lang.ClassCastException: org.eclipse.swt.layout.GridData cannot be cast to org.eclipse.swt.layout.FillData
 at org.eclipse.swt.layout.FillLayout.flushCache(FillLayout.java:180)
 at org.eclipse.swt.widgets.Composite.changed(Composite.java:493)
 at org.eclipse.swt.internal.graphics.TextSizeDeterminationHandler$1.doVisit(TextSizeDeterminationHandler.java:79)
 at org.eclipse.swt.internal.widgets.WidgetTreeVisitor$AllWidgetTreeVisitor.visit(WidgetTreeVisitor.java:32)
 at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.accept(WidgetTreeVisitor.java:46)
 at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.accept(WidgetTreeVisitor.java:51)
 at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.accept(WidgetTreeVisitor.java:51)
 at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.accept(WidgetTreeVisitor.java:51)
 at org.eclipse.swt.internal.graphics.TextSizeDeterminationHandler.afterPhase(TextSizeDeterminationHandler.java:126)
 at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.afterPhaseExecution(RWTLifeCycle.java:390)
 at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.continueLifeCycle(RWTLifeCycle.java:191)
 at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.sleep(RWTLifeCycle.java:297)
 at org.eclipse.swt.widgets.Display.sleep(Display.java:706)
 at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:361)
 at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2347)
 at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2200)
 at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:425)
 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:333)
 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:408)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157)
 at com.hwm.test.ui.TestWorkbench.createUI(TestWorkbench.java:15)
 at org.eclipse.rwt.internal.lifecycle.EntryPointManager.createUI(EntryPointManager.java:92)
 at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:228)
 at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:116)
 at java.lang.Thread.run(Thread.java:619)

 

找了半天,直接不用给控件设置布局方式,既然OK掉,哎......。

kettle-webspoon 17-Jun-2025 09:04:16.616 信息 [Thread-129] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina] Exception while disposing shell: Shell {Spoon - [FileRepository] [没有名称]} org.eclipse.swt.SWTException: Graphic is disposed at org.eclipse.swt.SWT.error(SWT.java:3808) at org.eclipse.swt.SWT.error(SWT.java:3731) at org.eclipse.swt.SWT.error(SWT.java:3702) at org.eclipse.swt.graphics.Image.getBounds(Image.java:425) at org.eclipse.swt.widgets.ToolItem.getPreferredHeight(ToolItem.java:587) at org.eclipse.swt.widgets.ToolItem.getHeight(ToolItem.java:541) at org.eclipse.swt.widgets.ToolItem.getBounds(ToolItem.java:497) at org.eclipse.swt.widgets.ToolBar.layoutItems(ToolBar.java:385) at org.eclipse.swt.widgets.ToolBar.destroyItem(ToolBar.java:379) at org.eclipse.swt.widgets.ToolItem.releaseParent(ToolItem.java:805) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:848) at org.eclipse.swt.widgets.ToolBar.releaseChildren(ToolBar.java:354) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:844) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:992) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:844) at org.eclipse.swt.widgets.Display.disposeShells(Display.java:763) at org.eclipse.swt.widgets.Display.release(Display.java:739) at org.eclipse.swt.graphics.Device.dispose(Device.java:279) at org.eclipse.rap.rwt.internal.lifecycle.UIThread.processShutdown(UIThread.java:179) at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:309) at java.lang.Thread.run(Thread.java:748) at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:107) /usr/local/tomcat/bin/catalina.sh: line 149: /usr/local/tomcat/bin/setenv.sh: Operation not permitted
最新发布
07-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值