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 &lt; in here: &gt;
 * </pre>
 * And the reporting TextArea contains:
 * <pre>
 * keyPressed:  Shift CHAR_UNDEFINED (0xffffffff)
 * keyPressed: Shift , '&lt;' (0xffffffff)
 * keyTyped:  Unknown keyCode: 0x0 '&lt;' (0xffffffff)
 * keyReleased: Shift , '&lt;' (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;
}

Reply via email to