2011-04-13 2 views
1

나는 클라이언트에 따르면, 신비하게 작동을 멈춘 오래된 RCP 응용 프로그램에서 작업하고 있습니다. 많은 좌절감을 겪은 후 마침내 원래 개발자의 컴퓨터 (XP 시스템)가 보류되었습니다. 그 컴퓨터에서 잘 돌아 간다. 멋지다.SWT 더 이상 처리 할 수 ​​없음 - Windows 7에서

그래서 그것을 컴파일하고 다른 XP 시스템에 넣으면 제대로 실행됩니다.

Windows 7 컴퓨터에서 실행하면 스플래시 화면이 표시되고 닫히기 전에 스플릿 스크린의 기본 UI가 표시됩니다.

그래서 나는 윈도우 7 컴퓨터에 해당 프로젝트에 대한 이클립스 작업 환경을 복사, 그것은 나에게 같은 동작을 제공, 플러스 오류 메시지 :

org.eclipse.swt.SWTError: No more handles 

분명히, Sleak가 해답이 될 예정이다 메모리 누수가 있지만 전체 프로그램이 종료되기 전에도 1 초만 지속됩니다. 나는 그것이 메모리 누출이라고 생각하지 않는다. 시작할 때 두 개의보기 만 열립니다. Windows 7에서 핸들을 제한 할만한 것이 있습니까? 뭔가 윈 XP에서 잘 작동하고, 윈도우 7에 자사의 잠재적 SWT 버그를 작동하지 않습니다

org.eclipse.swt.SWTError: No more handles 
at org.eclipse.swt.SWT.error(SWT.java:3803) 
at org.eclipse.swt.SWT.error(SWT.java:3695) 
at org.eclipse.swt.SWT.error(SWT.java:3666) 
at org.eclipse.swt.graphics.Image.<init>(Image.java:730) 
at org.eclipse.jface.resource.FileImageDescriptor.createImage(FileImageDescriptor.java:176) 
at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:227) 
at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:205) 
at org.eclipse.gef.ui.palette.editparts.PaletteEditPart$ImageCache.getImage(PaletteEditPart.java:396) 
at org.eclipse.gef.ui.palette.editparts.PaletteEditPart.setImageDescriptor(PaletteEditPart.java:353) 
at org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditPart.refreshVisuals(ToolEntryEditPart.java:455) 
at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:676) 
at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) 
at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) 
at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) 
at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) 
at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:727) 
at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:677) 
at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) 
at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) 
at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) 
at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) 
at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:727) 
at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:677) 
at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) 
at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) 
at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) 
at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) 
at org.eclipse.gef.editparts.SimpleRootEditPart.setContents(SimpleRootEditPart.java:101) 
at org.eclipse.gef.ui.palette.PaletteViewer.setPaletteRoot(PaletteViewer.java:397) 
at org.eclipse.gef.EditDomain.setPaletteViewer(EditDomain.java:360) 
at org.eclipse.gef.ui.palette.PaletteViewerProvider.hookPaletteViewer(PaletteViewerProvider.java:76) 
at org.eclipse.gef.ui.palette.PaletteViewerProvider.createPaletteViewer(PaletteViewerProvider.java:59) 
at org.eclipse.gef.ui.views.palette.PaletteViewerPage.createControl(PaletteViewerPage.java:63) 
at org.eclipse.gef.ui.views.palette.PaletteView.doCreatePage(PaletteView.java:100) 
at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:399) 
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:741) 
at org.eclipse.ui.internal.PartListenerList$1.run(PartListenerList.java:72) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) 
at org.eclipse.core.runtime.Platform.run(Platform.java:880) 
at org.eclipse.ui.internal.PartListenerList.fireEvent(PartListenerList.java:57) 
at org.eclipse.ui.internal.PartListenerList.firePartActivated(PartListenerList.java:70) 
at org.eclipse.ui.internal.PartService.firePartActivated(PartService.java:186) 
at org.eclipse.ui.internal.PartService.setActivePart(PartService.java:305) 
at org.eclipse.ui.internal.WorkbenchPagePartList.fireActivePartChanged(WorkbenchPagePartList.java:56) 
at org.eclipse.ui.internal.PartList.setActivePart(PartList.java:126) 
at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3491) 
at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:610) 
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2832) 
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2729) 
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2721) 
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2673) 
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2668) 
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2652) 
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2635) 
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:708) 
at [companyname].gef.ApplicationWorkbenchWindowAdvisor.postWindowOpen(ApplicationWorkbenchWindowAdvisor.java:111) 
at org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(WorkbenchWindow.java:1229) 
at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow.java:786) 
at org.eclipse.ui.internal.Workbench$22.runWithException(Workbench.java:1043) 
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) 
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133) 
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425) 
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) 
at org.eclipse.ui.internal.Workbench$27.runWithException(Workbench.java:1363) 
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) 
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133) 
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425) 
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2295) 
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200) 
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495) 
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) 
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490) 
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
at [companyname].gef.Application.start(Application.java:28) 
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 
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:386) 
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:549) 
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) 
at org.eclipse.equinox.launcher.Main.run(Main.java:1236) 
at org.eclipse.equinox.launcher.Main.main(Main.java:1212) 
+0

응용 프로그램을 실행 해 보았습니까? 개발자가 "이 파일을 처리하지 못하게하는 유일한 방법은 우리가 밖으로 나가는 경우입니다" –

+0

@Kate - 예, 관리자 권한으로 실행 해 보았습니다. 제어판의 "보안"부분에있는 모든 기능을 사용하여 도움이되었는지 확인하십시오. 그것은하지 않았다 : ( – bdares

+0

얼마나 많은 그래픽 객체가 할당되는지보기 위해 Yourkit을 사용하여 애플리케이션 프로파일 링을 시도해 본 적이 있습니까? - 단지 메모리 누출을 제외하기 위해 ... –

답변

1

경우

다음은 전체 오류 메시지입니다. Eclipse bugzilla에서 버그를 제기하는 것이 좋습니다.

1

나는 이것을 여러 번 가지고 있는데, 이는 자원을 폐기하는 것과 관련이 있습니다. Font, Image 객체를 생성하고 명시 적으로 .dispose()를 호출하여 객체를 해제하지 않을 수 있습니다. 나는 그것이 Windows 7과 관련이 있는지 의심 스럽지만 거기에서도 발생하지만 더 이상 시스템 리소스를 사용할 수 없기 때문에 더 오래 걸릴 수도 있습니다. 할당 된 리소스를 추적하고 처리하는 것이 일반적으로 문제를 해결합니다.

관련 문제