java.util.NoSuchElementException driven by org.eclipse.swt.graphics.Region$ZoomToRegionMap.get on Windows
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.
Đá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
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:
Expected behavior
Pie chart hovering works the same as macOS and Linux.
Screenshots
N/A
Environment:
- Select the platform(s) on which the behavior is seen:
-
- All OS
-
- Windows
-
- Linux
-
- macOS
-
Additional OS info (e.g. OS version, Linux Desktop, etc): Windows 11
-
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
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của eclipse-platform/eclipse.platform.swt
-
[Win32] Table tooltip indexes cell font with subitem -1Có thể đã có người làm @fdesbiens đã nhận 9 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
eclipse-platform/eclipse.platform.swt#3752 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
eclipse-platform/eclipse.platform.swt#3546 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
eclipse-platform/eclipse.platform.swt#3428 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 75/100
eclipse-platform/eclipse.platform.swt#3336 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug junit
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
eclipse-platform/eclipse.platform.swt#3762 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của eclipse-platform/eclipse.platform.swt
Issue tương tự
-
area:core bug priority:p2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
aomarai/minecraft-mcp#247 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
antonyrag/ragleap-core#1062 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Vakore/ZappierGames#232 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
constellation-app/constellation#2588 ·