Blackdown-Linux developers-
I'm having trouble figuring out which layer of code
(JDK, Linux, XFree86, etc) is responsible for some
anomalous behavior. I'm having trouble with
java.awt.TextFields (and TextAreas) that don't
capture a less-than character typed in by the user
(it appears as a greater-than character). AWT
KeyEvents do, however, see the less-than character
properly.
Test code and ldconfig -D output are attached.
I've scoured Jitterbug and the mail list archives
and not found any help. I'm not seeing the symptoms
which are supposedly fixed by LD_PRELOAD=libBrokenLocale.so,
but I have tried this, and I just get a seg fault.
I would have filed a new bug but I'm still not sure
this is actually a jdk bug. Any help you could provide
would be greatly appreciated.
Thanks.
-Dan
[EMAIL PROTECTED]
jdk: 1.1.6v5 (also reproduces on 1.1.7v1a)
arch: libc5-x86
linux: slack 3.5.0
ldconfig: version 1.9.9
/usr/local/lib:
libxbase.so.1 => libxbase.so.1.0.7
libcscore.so => libcscore.so.3.49.0d
libcsound.so => libcsound.so.3.49.0d
libtya.so => libtya.so
libpng.so.1 => libpng.so.1.0.89c
libjpeg.so.6a => libjpeg.so.6a.0.0
libz.so.1.0.4 => libz.so.1.0.4
libgtk.so.1 => libgtk.so.1.0.0
libgdk.so.1 => libgdk.so.1.0.0
libglib.so.1 => libglib.so.1.0.0
/usr/X11R6/lib:
libgtk.so.1 => libgtk.so.1.0.2
libglib.so.1 => libglib.so.1.0.2
libgdk.so.1 => libgdk.so.1.0.2
libgimpui.so.1 => libgimpui.so.1.0.0
libgimp.so.1 => libgimp.so.1.0.0
libgck.so.1 => libgck.so.1.0.0
libXpm.so.4 => libXpm.so.4.11
libXaw3d.so.6 => libXaw3d.so.6.1
libXtst.so.6 => libXtst.so.6.1
libXt.so.6 => libXt.so.6.0
libXp.so.6 => libXp.so.6.2
libXmu.so.6 => libXmu.so.6.0
libXi.so.6 => libXi.so.6.0
libXext.so.6 => libXext.so.6.3
libXaw.so.6 => libXaw.so.6.1
libXIE.so.6 => libXIE.so.6.0
libX11.so.6 => libX11.so.6.1
libSM.so.6 => libSM.so.6.0
libPEX5.so.6 => libPEX5.so.6.0
libICE.so.6 => libICE.so.6.3
libXm.so.1 => libXm.so.1.2.0
libMrm.so.1 => libMrm.so.1.2.0
/usr/ix86-linux/lib:
/usr/ix86-linuxaout/lib:
libPEX5.so.6 => libPEX5.so.6.0
libXpm.so.4 => libXpm.so.4.3
libXt.so.6 => libXt.so.6.0
libXaw.so.6 => libXaw.so.6.0
libXIE.so.6 => libXIE.so.6.0
libX11.so.6 => libX11.so.6.0
libXt.so.3 => libXt.so.3.1.0
libXaw.so.3 => libXaw.so.3.1.0
libX11.so.3 => libX11.so.3.1.0
libdb.so.1 => libdb.so.1.85.1
libvga.so.1 => libvga.so.1.2.9
/usr/openwin/lib:
libxview.so.3 => libxview.so.3.2.2
libolgx.so.3 => libolgx.so.3.2.2
libsspkg.so.1 => libsspkg.so.1.0.0
/usr/i586-pc-linux-gnulibc2/lib:
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libc-2.0.7.so has inconsistent
soname (libc.so.6)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libdb-2.0.7.so has inconsistent
soname (libdb.so.2)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libm-2.0.7.so has inconsistent
soname (libm.so.6)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libBrokenLocale-2.0.7.so has
inconsistent soname (libBrokenLocale.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libutil-2.0.7.so has inconsistent
soname (libutil.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libcrypt-2.0.7.so has inconsistent
soname (libcrypt.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libnss_files-2.0.7.so has
inconsistent soname (libnss_files.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libnss_db-2.0.7.so has inconsistent
soname (libnss_db.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libresolv-2.0.7.so has inconsistent
soname (libresolv.so.2)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libnss_dns-2.0.7.so has
inconsistent soname (libnss_dns.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libnss_nis-2.0.7.so has
inconsistent soname (libnss_nis.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libnsl-2.0.7.so has inconsistent
soname (libnsl.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libnss_compat-2.0.7.so has
inconsistent soname (libnss_compat.so.1)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libpthread-0.7.so has inconsistent
soname (libpthread.so.0)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/libdl-2.0.7.so has inconsistent
soname (libdl.so.2)
ldconfig: warning: /usr/i586-pc-linux-gnulibc2/lib/ld-2.0.7.so has inconsistent soname
(ld-linux.so.2)
ld-linux.so.2 => ld-2.0.7.so
libdl.so.2 => libdl-2.0.7.so
libpthread.so.0 => libpthread-0.7.so
libnss_compat.so.1 => libnss_compat-2.0.7.so
libnsl.so.1 => libnsl-2.0.7.so
libnss_nis.so.1 => libnss_nis-2.0.7.so
libnss_dns.so.1 => libnss_dns-2.0.7.so
libresolv.so.2 => libresolv-2.0.7.so
libnss_db.so.1 => libnss_db-2.0.7.so
libnss_files.so.1 => libnss_files-2.0.7.so
libcrypt.so.1 => libcrypt-2.0.7.so
libutil.so.1 => libutil-2.0.7.so
libBrokenLocale.so.1 => libBrokenLocale-2.0.7.so
libm.so.6 => libm-2.0.7.so
libdb.so.2 => libdb-2.0.7.so
libc.so.6 => libc-2.0.7.so
/usr/lib:
ldconfig: warning: /usr/lib/libform.so.1.9.9g has inconsistent soname (libform.so.3.4)
ldconfig: warning: /usr/lib/libmenu.so.1.9.9g has inconsistent soname (libmenu.so.3.4)
ldconfig: warning: /usr/lib/libpanel.so.1.9.9g has inconsistent soname
(libpanel.so.3.4)
libtiff.so.3 => libtiff.so.3.4.33
libpng.so.1 => libpng.so.1.0.89
libjpeg.so.6 => libjpeg.so.6.0.1
libtk8.0.so => libtk8.0.so
libtkx8.0.2.so => libtkx8.0.2.so
libtclx8.0.2.so => libtclx8.0.2.so
libtiff.so.1 => libtiff.so.1.3
librle.so.1 => librle.so.1.3
libppm.so.1 => libppm.so.1.3
libpnm.so.1 => libpnm.so.1.3
libpgm.so.1 => libpgm.so.1.3
libpbm.so.1 => libpbm.so.1.3
libjpeg.so.1 => libjpeg.so.1.3
libfbm.so.1 => libfbm.so.1.3
libtcl8.0.so => libtcl8.0.so
libpanel.so.3.4 => libpanel.so.1.9.9g
libmenu.so.3.4 => libmenu.so.1.9.9g
libform.so.3.4 => libform.so.1.9.9g
libbfd-2.8.1.0.23.so.0 => libbfd-2.8.1.0.23.so.0.0.0
libopcodes-2.8.1.0.23.so.0 => libopcodes-2.8.1.0.23.so.0.0.0
libgpm.so.1 => libgpm.so.1.13
libdb.so.1 => libdb.so.1.85.4
libstdc++.so.2.8 => libstdc++.so.2.8.0
/lib:
ldconfig: warning: /lib/libncurses.so.1.9.9g has inconsistent soname
(libncurses.so.3.4)
libvgagl.so.1 => libvgagl.so.1.2.13
libvga.so.1 => libvga.so.1.2.13
ld-linux.so.1.8.2 => ld-linux.so.1.8.2
libdl.so.1 => libdl.so.1.9.9
ld-linux.so.1 => ld-linux.so.1.9.9
libncurses.so.3.4 => libncurses.so.1.9.9g
libncp.so.1 => libncp.so.1.0
libtermcap.so.2 => libtermcap.so.2.0.8
libm.so.5 => libm.so.5.0.9
libgdbm.so.1 => libgdbm.so.1.7.3
libcurses.so.1 => libcurses.so.1.0.0
libc.so.5 => libc.so.5.4.44
libe2p.so.2 => libe2p.so.2.3
libext2fs.so.2 => libext2fs.so.2.3
libss.so.2 => libss.so.2.0
libuuid.so.1 => libuuid.so.1.1
libcom_err.so.2 => libcom_err.so.2.0
libc.so.4 => libc.so.4.7.6
libm.so.4 => libm.so.4.6.27
libcurses.so.0 => libcurses.so.0.1.2
/** $Id: LessThanSign.java,v 1.2 1998/12/23 04:10:51 dll Exp $
* Copyright (c) 1998 interLocutor, LLC. All rights reserved.
*/
/**
* $Log: LessThanSign.java,v $
* Revision 1.2 1998/12/23 04:10:51 dll
* minor fixups
*
* Revision 1.1 1998/12/23 01:44:12 dll
* Initial revision
*
*/
package bugs;
import java.awt.*;
import java.awt.event.*;
/**
* This test tickles a bug seen with Blackdown-Linux jdk 1.1.6v5 and 1.1.7v1a
* on Slackware 3.5.0 Linux (kernel 2.0.34, XFree86 Version 3.3.2.3).
* <p>
* Run this app and type a Less Than character into the editable TextField.
* The echo field reveals that a Greater Than character is in the
* TextField.getText() buffer, despite the fact that the KeyEvent actually
* caught the correct character.
* <p>
* I.e., the uneditable echo TextField contains:
* <pre>
* Try typing a < in here: >
* </pre>
* And the reporting TextArea contains:
* <pre>
* keyPressed: Shift CHAR_UNDEFINED (0xffffffff)
* keyPressed: Shift , '<' (0xffffffff)
* keyTyped: Unknown keyCode: 0x0 '<' (0xffffffff)
* keyReleased: Shift , '<' (0xffffffff)
* keyReleased: Shift Shift CHAR_UNDEFINED (0xffffffff)
* </pre>
* <p>
* Both TextField and TextArea components exhibit this behavior. Changing the
* Font of the text component doesn't affect the bug.
* <p>
* Not sure if this a jdk, X11, Linux, or even a user environment bug.
*/
public class LessThanSign extends Frame implements KeyListener
{
public static void main(String[] args)
{
LessThanSign lts = new LessThanSign();
lts.setVisible(true);
}
public LessThanSign()
{
super("bugs.LessThanSign Test");
setSize(600,300);
setLayout(new FlowLayout());
add(new Label("You Type:"));
_typingArea = new TextField("Try typing a < in here: ");
_typingArea.setEditable(true);
_typingArea.addKeyListener(this);
add(_typingArea);
add(new Label("I Echo:"));
_echoArea = new TextField();
_echoArea.setEditable(false);
add(_echoArea);
_reportingArea = new TextArea();
_reportingArea.setEditable(false);
add(_reportingArea);
echo();
}
public void keyTyped(KeyEvent e) { report("keyTyped", e); echo(); }
public void keyPressed(KeyEvent e) { report("keyPressed", e); }
public void keyReleased(KeyEvent e) { report("keyReleased", e); }
private void report(String msg, KeyEvent e)
{
char kc = e.getKeyChar();
report
(msg + ": " +
e.getKeyModifiersText(e.getModifiers()) + " " +
e.getKeyText(e.getKeyCode()) + " " +
(kc == e.CHAR_UNDEFINED ? "CHAR_UNDEFINED" : ("'" + kc + "'")) +
" (0x" + Integer.toHexString(Character.getNumericValue(kc)) + ")");
}
private void report(String msg) { _reportingArea.append(msg + "\n"); }
private void echo() { _echoArea.setText(_typingArea.getText()); }
private TextField _typingArea;
private TextField _echoArea;
private TextArea _reportingArea;
}