Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#822642: openjdk-9: Accessibility does not get loaded

18 views
Skip to first unread message

Samuel Thibault

unread,
Apr 25, 2016, 6:10:02 PM4/25/16
to
Source: openjdk-9
Version: 9~b107-1
Severity: important

Hello,

Accessibility does not work in the openjdk-9 packages, the
libatk-wrapper and java-atk-wrapper do not get loaded.

In previous versions there were symlinks for java-atk-wrapper.jar and
libatk-wrapper.so in
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext
but with openjdk-9 this directory seems to be disabled. I see that it's
where the class gets loaded from with openjdk-8: -verbose:class show:

[Loaded org.GNOME.Accessibility.AtkWrapper from file:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/java-atk-wrapper.jar]

and removing that file brings

Exception in thread "main" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:807)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:886)
at java.awt.Window.getToolkit(Window.java:1362)

I tried to look for the equivalent code in openjdk-9, but I don't see
where the binary is supposed to be: in openjdk-8, it was in rt.jar, but
I can't find this in openjdk-9. The source code of getDefaultToolkit
seems to be the same, except that it also checks for running headless.
Perhaps that's the test that fails?

Any idea?

Samuel

-- System Information:
Debian Release: stretch/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable-debug'), (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 4.5.0 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

--
Samuel
/*
* [...] Note that 120 sec is defined in the protocol as the maximum
* possible RTT. I guess we'll have to use something other than TCP
* to talk to the University of Mars.
* PAWS allows us longer timeouts and large windows, so once implemented
* ftp to mars will work nicely.
*/
(from /usr/src/linux/net/inet/tcp.c, concerning RTT [retransmission timeout])

Samuel Thibault

unread,
Apr 26, 2016, 3:10:03 PM4/26/16
to
Samuel Thibault, on Mon 25 Apr 2016 23:59:11 +0200, wrote:
> The source code of getDefaultToolkit seems to be the same, except that
> it also checks for running headless. Perhaps that's the test that
> fails?

I had a closer look: in
./src/jdk/src/java.desktop/share/classes/java/awt/Toolkit.java, in
initAssistiveTechnologies(), neither
System.getProperty("javax.accessibility.assistive_technologies") nor
properties.getProperty("assistive_technologies", null)
get something, they just return null. So it seems like they don't
manage to access the property files. Stracing gives:

open("/usr/lib/jvm/java-9-openjdk-amd64/conf/accessibility.properties", O_RDONLY) = -1 ENOENT (No such file or directory)

so it looks like we are just missing symlinks from
/etc/java-9-openjdk-$arch to
/usr/lib/jvm/java-9-openjdk-$arch/conf/

and indeed,

mkdir /usr/lib/jvm/java-9-openjdk-amd64/conf
ln -s /etc/java-9-openjdk/accessibility.properties /usr/lib/jvm/java-9-openjdk-amd64/conf/

makes properties.getProperty("assistive_technologies", null) now return
org.GNOME.Accessibility.AtkWrapper

However, that actually brings another issue:

Exception in thread "main" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
at java.awt.Toolkit.newAWTError(java.desktop@9-internal/Toolkit.java:460)

which is not really surprising since there is no symlink to
/usr/share/java/java-atk-wrapper.jar and libatk-wrapper.so, as there
used to be in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext for
openjdk-8. I tried to add them by hand
into /usr/lib/jvm/java-9-openjdk-amd64,
/usr/lib/jvm/java-9-openjdk-amd64/lib
/usr/lib/jvm/java-9-openjdk-amd64/lib/amd64
but that didn't work. Do you have an idea where we could put them?

Samuel
0 new messages