Bug#926420: java-atk-wrapper: memory leak and performance issue

Samuel Thibault sthibault at debian.org
Thu Apr 4 21:55:59 BST 2019

Source: java-atk-wrapper
Version: 0.33.3-13
Severity: important
Tags: patch upstream a11y
Forwarded: https://bugzilla.gnome.org/show_bug.cgi?id=791970


As reported upstream
there is a memory leak within java-atk-wrapper, which in the bug report
case triggers a performance issue, and on
triggers UI responsiveness issues, making it barely usable.

The attached patch fixes this: java-atk-wrapper adds the component
listener again instead of removing it.


-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (500, 'proposed-updates'), (500, 'oldoldstable'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.0.0 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
-------------- next part --------------
commit f9faf04a88685d6759c18572988876215332086a
Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
Date:   Tue Apr 2 19:55:13 2019 +0200

    Fix removing component listener
    instead of adding it again.
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=791970

diff --git a/wrapper/org/GNOME/Accessibility/AtkWrapper.java.in b/wrapper/org/GNOME/Accessibility/AtkWrapper.java.in
index 0fbb196..3463a59 100644
--- a/wrapper/org/GNOME/Accessibility/AtkWrapper.java.in
+++ b/wrapper/org/GNOME/Accessibility/AtkWrapper.java.in
@@ -306,7 +306,7 @@ public class AtkWrapper {
           case ContainerEvent.COMPONENT_REMOVED:
 	    java.awt.Component c = ((ContainerEvent)e).getChild();
-            c.addComponentListener(componentAdapter);
+            c.removeComponentListener(componentAdapter);

More information about the Pkg-a11y-devel mailing list