JDK-8203874 : Entry of e.g. $%&/()= into java.TextField not possible after ^ (DEAD_CIRCUMFLEX)
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 8u161,9,10,11
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_10
  • CPU: x86_64
  • Submitted: 2018-05-26
  • Updated: 2018-05-30
  • Resolved: 2018-05-30
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 12
12Resolved
Related Reports
Duplicate :  
Description
ADDITIONAL SYSTEM INFORMATION :
same result on Windows7 and Windows8
German key board: $%&/()= characters go with the shift key
same result on jre1.8.0_171 and jre10

A DESCRIPTION OF THE PROBLEM :
until jre1.8.0_151 it was possible to enter e.g. / ^ / into java.awt.TextField
after jre1.8.0_171 the same entry shows / ^ 7

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
start the program given in the souce code section and try to enter e.g. / ^ / into the TextField

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
TextField shows: / ^ /   (works until jre1.8.0_151)
ACTUAL -
TextField shows: / ^ 7  (on jre1.8.0_171 and jre1.10)

---------- BEGIN SOURCE ----------
import java.awt.*;
import java.awt.event.*;

class TextFieldBug extends WindowAdapter
{
   public static void main( String [] args )
   {
      Frame f = new Frame( "TextFieldBug" );
      f.setLayout( new GridLayout(0,1) );
      
      f.add( new Label( "Try to enter the string: $%&/()= ^ $%&/()= ") );
      TextField tf = new TextField();
      f.add( tf );
      
      f.pack();
      f.setVisible(true);
      f.setResizable(false);
      f.addWindowListener( new TextFieldBug() );
   }
   
   public void windowClosing( WindowEvent e )
   {
      System.exit(0);
   }
}
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
enter the circumflex character ^ via the windows character map (most inconvenient)

FREQUENCY : always



Comments
Checked again with reported version post clarification from the submitter and could reproduce the issue as mentioned. Results: ========= 8u151: OK 8u161: Fail 8u171: Fail 9: Fail 10.0.1: Fail 11 ea b15: fail This seems a regression in JDK 8u161 and affects JDk 10 and 11 as well. See attached screenshots as reference. Steps to reproduce: 1. Switch to German locale (Keyboard). 2. Run the attached test case. 3. Enter the suggested text string ($^ $). When typed using German keyboard, it returned ($^ 4) all the time with inability to type correctly the special character subsequnetly from JDk 8u161 and above. This works fine with JDk 8u151 though. Note: To type ^ character in German post keyboard switch, use combination - ALT + ~~
29-05-2018

Additional information from submitter: ================= I checked the bug on a new notebook using jdk1.8.0_172 with the results described in the bug report. May be you can't reproduce the bug because the slash / character doesn't go with the shift key on a US keyboard. On both German and US keyboards the $ should be the same [Shift]+[4] (=press and hold the shift key while pressing the key labeled 4 in the row above the letters). So try the following key sequence in the TextField of the sample program to enter $^$: [Shift]+[4] should display $ in the TextField [^] [space] should display $^ [Shift]+[4] should display $^$ but on all my devices shows $^4 instead, thus I can't enter any of the special characters going with the shift key after I entered the DEAD_CIRCUMFLEX with [^] [space]. By the way the $^$ sequence works fine on my devices in other applications e.g. it's no problem to enter this mail containing many sequences with special characters after a circumflex. ===============================
29-05-2018

Reported with JDK 8u171, entering / ^ / into java.awt.TextField is diaplyed as / ^ 7 from JDk 8u171 and onward. However, when checked this with reported as well as other versions the chacarter string is displayed correctly. See attached screenshot for reference. Results: ======== 8u151: OK 8u171: OK 10.0.1: OK Writing back to the submitter requesting additional information including any sequence that could affect the results.
28-05-2018