<i18n dev> <AWT Dev> 8227919: 8213232 causes crashes on solaris sparc64

Ichiroh Takiguchi takiguc at linux.vnet.ibm.com
Mon Jul 22 12:12:44 UTC 2019


Hello Vladimir.

I appreciate your reply.

I did not expect "[1]w=0x0", it means xim_root could not receive focus 
window via XIC.
I checked ibus XIM server on Linux s390x platform again, it also 
returned "[1]w=0" ...
I was confused.

I'd like to add new instruction
5. Run xim_root with XMODIFIERS=@im=local environment variable on 
desktop, like
    $ XMODIFIERS=@im=local ./xim_root
6. Move input focus to XIM demo window
7. Press Ctrl key and Press Right mouse button

I tested xim_root on Linux s390x platform.

$ XMODIFIERS=@im=ibus ./xim_root
fevent = 0x3
topwindow = 0x1e00001, window = 0x1e00002
ClientMessage is received
WM_TAKE_FOCUS is received, window=0x1e00002, timestamp=1470262945
XSetInputFocus() is called
FocusOut: window=0x1e00002(Internal Window)
  XUnsetICFocus
FocusOut: window=0x1e00001(XIM demo - root-im window - 64bit)
FocusIn: window=0x1e00001(XIM demo - root-im window - 64bit)
FocusIn: window=0x1e00002(Internal Window)
  XSetICFocus
KeyPress:
ButtonPress:
[1]w=0x0
[2]w=0x0
[1]state=0x0
[2]state=0x0
State: Unknown
ClientMessage is received

I tried it with XMODIFIERS=@im=local
$ XMODIFIERS=@im=local ./xim_root
fevent = 0
topwindow = 0x2000001, window = 0x2000002
ClientMessage is received
WM_TAKE_FOCUS is received, window=0x2000002, timestamp=1470356372
XSetInputFocus() is called
FocusIn: window=0x2000001(XIM demo - root-im window - 64bit)
FocusIn: window=0x2000002(Internal Window)
  XSetICFocus
KeyPress:
ButtonPress:
[1]w=0x2000002
[2]w=0x2000002
[1]state=0x2
[2]state=0x2
State: IM Off
ClientMessage is received

I was expected this result.
$ XMODIFIERS=@im=kinput2 ./xim_root
fevent = 0x3
topwindow = 0x2000001, window = 0x2000002
ClientMessage is received
WM_TAKE_FOCUS is received, window=0x2000002, timestamp=1470386128
XSetInputFocus() is called
FocusIn: window=0x2000001(XIM demo - root-im window - 64bit)
FocusIn: window=0x2000002(Internal Window)
  XSetICFocus
KeyPress:
ButtonPress:
[1]w=0x200000200000000
[2]w=0x2000002
[1]state=0x200000000
[2]state=0x2
State: IM Off
ClientMessage is received

I'm sorry, it seemed current code did not work on even if Linux s390x 
platform.

Thanks,
Ichiroh Takiguchi

On 2019-07-19 23:29, Vladimir Kempik wrote:
> Hello
> I’m probably missing something about XIM on X side here, using ssh
> -X from ubuntu(with Xserver) to solaris11 sparc64 machine
> 
> the output is
> 
> fevent = 0x3
> topwindow = 0x3800001, window = 0x3800002
> ClientMessage is received
> WM_TAKE_FOCUS is received, window=0x3800002, timestamp=3262503
> XSetInputFocus() is called
> FocusIn: window=0x3800001(XIM demo - root-im window - 64bit)
> FocusIn: window=0x3800002(Internal Window)
>  XSetICFocus
> FocusOut: window=0x3800002(Internal Window)
>  XUnsetICFocus
> FocusOut: window=0x3800001(XIM demo - root-im window - 64bit)
> ClientMessage is received
> WM_TAKE_FOCUS is received, window=0x3800002, timestamp=3267238
> XSetInputFocus() is called
> ButtonPress:
> [1]w=0x0
> [2]w=0x0
> [1]state=0x0
> [2]state=0x0
> State: Unknown
> FocusIn: window=0x3800001(XIM demo - root-im window - 64bit)
> FocusIn: window=0x3800002(Internal Window)
> 
> 
> I also had to press left button, not right one.
> 
> 
> I think when you initialy created 8213232 you were targeting linux
> ppc64 BE system in your patch and simply forgot about another 64-bit
> BE system - solaris sparc64
> 
> I would propose this fix for 8227919
> 
> --- a/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
> +++ b/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
> @@ -1671,7 +1671,7 @@
>  {
>      X11InputMethodData *pX11IMData = NULL;
>      char * ret = NULL;
> -#if defined(_LP64) && !defined(_LITTLE_ENDIAN)
> +#if defined(__linux__) && defined(_LP64) && !defined(_LITTLE_ENDIAN)
>      // XIMPreeditState value which is used for XGetICValues must be
> 32bit on BigEndian XOrg's xlib
>      unsigned int state = XIMPreeditUnKnown;
>  #else
> 
> Such change already allowed to pass our internal tests on solaris 
> sparc64
> 
> if you think it’s ok then let me take over and finish with 8227919
> 
> Thanks, Vladimir
> 19 июля 2019 г., в 16:57, Ichiroh Takiguchi
> <takiguc at linux.vnet.ibm.com<mailto:takiguc at linux.vnet.ibm.com>>
> написал(а):
> 
> Hello.
> 
> I need Solaris 64bit SPARC desktop user volunteer for jdk-8227919 [1]
> 
> Please follow the steps:
> 1. Download xim_root.c [2] and compile it on Solaris 64bit SPARC
> 2. Run xim_root on desktop
> 3. Move input focus to XIM demo window
> 4. Press Ctrl key and Press Right mouse button
> 
> Please put the output into JDK-8227919 [1] or post it into mailing 
> list.
> I really appreciate if you are using XIM like IIIMF.
> 
> [1] https://bugs.openjdk.java.net/browse/JDK-8227919
> [2] https://cr.openjdk.java.net/~itakiguchi/8227919/xim_root.c
> 
> Thanks,
> Ichiroh Takiguchi


More information about the i18n-dev mailing list