harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From telli...@apache.org
Subject svn commit: r469700 - /incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/TextComponent.java
Date Tue, 31 Oct 2006 23:13:44 GMT
Author: tellison
Date: Tue Oct 31 15:13:43 2006
New Revision: 469700

URL: http://svn.apache.org/viewvc?view=rev&rev=469700
Log:
Apply patch HARMONY-1627 ([classlib][awt] CaffeineMark 3.0 sometimes fails with NPE on Dialog
benchmark)

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/TextComponent.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/TextComponent.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/TextComponent.java?view=diff&rev=469700&r1=469699&r2=469700
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/TextComponent.java
(original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/TextComponent.java
Tue Oct 31 15:13:43 2006
@@ -349,7 +349,9 @@
             try {
                 int start = Math.min(dot, mark);
                 int length = Math.abs(dot - mark);
-                document.replace(start, length, text, null);
+                synchronized(TextComponent.this) {
+                    document.replace(start, length, text, null);
+                }
             } catch (final BadLocationException e) {
             }
         }
@@ -823,7 +825,9 @@
                 caret.setDot(0, caret.getDotBias());
             }
             int oldCaretPos = caret.getDot();
-            document.replace(0, document.getLength(), text, null);
+            synchronized (this) {
+                document.replace(0, document.getLength(), text, null);
+            }
             if (!isDisplayable() && (oldCaretPos != caret.getDot())) {
                 // return caret back to emulate "no movement"
                 caret.setDot(oldCaretPos, caret.getDotBias());
@@ -986,8 +990,14 @@
         Rectangle client = getClient();
         Shape oldClip = g.getClip();
         g.clipRect(client.x, client.y, client.width, client.height);
-        rootViewContext.getView().paint(g, r);
-        caret.paint(g);
+        document.readLock();
+        try {
+            rootViewContext.getView().paint(g, r);
+            caret.paint(g);
+        } finally {
+            document.readUnlock();
+        }
+       
         g.setClip(oldClip);
     }
 



Mime
View raw message