--- old/src/java.desktop/share/classes/java/awt/TextComponent.java 2015-11-26 05:40:10.378197084 +0530 +++ new/src/java.desktop/share/classes/java/awt/TextComponent.java 2015-11-26 05:40:09.994197038 +0530 @@ -229,15 +229,21 @@ * @see java.awt.TextComponent#getText */ public synchronized void setText(String t) { - boolean skipTextEvent = (text == null || text.isEmpty()) - && (t == null || t.isEmpty()); - text = (t != null) ? t : ""; + if (t == null) { + t = ""; + } TextComponentPeer peer = (TextComponentPeer)this.peer; - // Please note that we do not want to post an event - // if TextArea.setText() or TextField.setText() replaces an empty text - // by an empty text, that is, if component's text remains unchanged. - if (peer != null && !skipTextEvent) { - peer.setText(text); + if (peer != null) { + text = peer.getText(); + // Please note that we do not want to post an event + // if TextArea.setText() or TextField.setText() replaces text + // by same text, that is, if component's text remains unchanged. + if (!t.equals(text)) { + text = t; + peer.setText(text); + } + } else { + text = t; } }