Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

java.util.NoSuchElementException driven by org.eclipse.swt.graphics.Region$ZoomToRegionMap.get on Windows

Đang mở
#3,763 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@HeikoKlare đang làm issue này rồi.

Từ ngày 28/10/2026.

  • #3768 của @HeikoKlare — đang mở
  • #3769 của @HeikoKlare — đang mở

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
52/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
desktop

Hướng nghiên cứu

Start with the stack trace at Region$ZoomToRegionMap.get and follow the region operations called by BIRT's RegionAction.contains; the payload identifies SWT's Region and PieChartPane.java line 221 as relevant entry points. Reproduce on Windows 11 with JDK 21 using the provided MAT build steps and sample heap dump, then hover over a pie chart. Done when hovering works without exceptions, matching the reported macOS and Linux behavior.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Describe the bug

I'm one of the Eclipse Memory Analyzer Tool developers and we just noticed an issue only on Windows where using a mouseover callback over a pie chart in Eclipse BIRT causes a java.util.NoSuchElementException driven by org.eclipse.swt.graphics.Region$ZoomToRegionMap.get with Eclipse 2026-09. In addition, since this happens on every mouse movement, the error log gets flooded. With earlier versions of Eclipse, the callback simply doesn't work and that's an issue as well though the error log flooding isn't an issue. It's unknown how long this problem has been around.

I wasn't sure whether to open an issue here or with BIRT, but I thought I'd start here. I tried upgrading and downgrading BIRT without any luck.

java.util.NoSuchElementException
	at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1608)
	at java.base/java.util.HashMap$ValueIterator.next(HashMap.java:1634)
	at org.eclipse.swt.graphics.Region$ZoomToRegionMap.get(Region.java:495)
	at org.eclipse.swt.graphics.Region$OperationWithRegionHandle.set(Region.java:965)
	at org.eclipse.swt.graphics.Region$Operation.apply(Region.java:760)
	at org.eclipse.swt.graphics.Region.newRegionHandle(Region.java:690)
	at org.eclipse.swt.graphics.Region.applyUsingTemporaryHandle(Region.java:677)
	at org.eclipse.swt.graphics.Region$OperationWithRegion.intersect(Region.java:944)
	at org.eclipse.swt.graphics.Region$Operation.apply(Region.java:760)
	at org.eclipse.swt.graphics.Region.newRegionHandle(Region.java:690)
	at org.eclipse.swt.graphics.Region.applyUsingTemporaryHandle(Region.java:677)
	at org.eclipse.swt.graphics.Region.applyUsingAnyHandle(Region.java:671)
	at org.eclipse.swt.graphics.Region.contains(Region.java:203)
	at org.eclipse.birt.chart.device.swt.RegionAction.contains(RegionAction.java:266)
	at org.eclipse.birt.chart.device.swt.SwtEventHandler.mouseMove(SwtEventHandler.java:469)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:254)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4363)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1217)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4161)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3749)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1051)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
	at org.eclipse.mat.ui.rcp.Application.start(Application.java:28)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:615)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1415)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1387)

Commenting out the IDeviceRenderer.UPDATE_NOTIFIER line avoids the exception: https://github.com/eclipse-mat/mat/blob/d275912966695f41236236a4ce4ce03787a34cd8/plugins/org.eclipse.mat.chart.ui/src/org/eclipse/mat/ui/internal/chart/PieChartPane.java#L221

To Reproduce

On Windows:

git clone https://github.com/eclipse-mat/mat
cd mat
git fetch origin pull/212/head:pr212
git checkout pr212
cd parent
set JAVA_HOME=<JAVA_21_JDK_HOME>
set MAVEN_HOME=<MAVEN_3.9_HOME>
set PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH%
mvn -DskipTests=true -Ddash.skip=true clean install
..\org.eclipse.mat.product\target\products\org.eclipse.mat.ui.rcp.MemoryAnalyzer\win32\win32\x86_64\mat\MemoryAnalyzer.exe

Then load any HPROF dump. After loading, hover over the pie chart and observe exceptions in the Error Log view. Example dump:

HeapDumpSample.hprof.zip

Expected behavior

Pie chart hovering works the same as macOS and Linux.

Screenshots

N/A

Environment:

  1. Select the platform(s) on which the behavior is seen:
    • All OS
    • Windows
    • Linux
    • macOS
  1. Additional OS info (e.g. OS version, Linux Desktop, etc): Windows 11

  2. JRE/JDK version: 21

Version since
Eclipse or SWT version since when the behavior is seen [e.g. 4.23]: 4.41

Workaround (or) Additional context

None known. Tried these options without luck:

  • -Dswt.autoScale=quarter
  • -Dswt.enable.autoScale=false
Ngôn ngữ chính
Java
Star
202
Fork
206
Merge trung bình
1 ngày 14 giờ
Pull request đã merge (30 ngày)
117

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của eclipse-platform/eclipse.platform.swt

Tất cả issue của eclipse-platform/eclipse.platform.swt

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.