GayaBalan / ivybeans

Automatically exported from code.google.com/p/ivybeans
0 stars 0 forks source link

replace BaseDocument.atomickLock() by BaseDocument.runAtomic() #53

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
ivybeans 1.1, netbeans 6.7 , Linux KDE, JDK 6u14

There is an warning on NB log:

WARNING [org.netbeans.editor.BaseDocument]:
com.googlecode.ivybeans.module.completion.IvyCompletionItem uses
deprecated, slow and dangerous method BaseDocument.atomicLock ().

See the suggested fix

$ svn diff
ivybeans/ivy-module/src/com/googlecode/ivybeans/module/completion/IvyCompletionI
tem.java
Index:
ivybeans/ivy-module/src/com/googlecode/ivybeans/module/completion/IvyCompletionI
tem.java
===================================================================

---
ivybeans/ivy-module/src/com/googlecode/ivybeans/module/completion/IvyCompletionI
tem.java
   (revision 284)
+++
ivybeans/ivy-module/src/com/googlecode/ivybeans/module/completion/IvyCompletionI
tem.java
   (working copy)
@@ -57,24 +57,27 @@
         }
     }

-    protected void substituteText(JTextComponent c, int offset, int len,
String toAdd) {
-        BaseDocument doc = (BaseDocument) c.getDocument();
+    protected void substituteText(JTextComponent c, final int offset,
final int len, String toAdd) {
+        final BaseDocument doc = (BaseDocument) c.getDocument();
         CharSequence prefix = getSubstitutionText();
-        String text = prefix.toString();
+        final StringBuilder _text = new StringBuilder(prefix.toString());
         if(toAdd != null) {
-            text += toAdd;
+            _text.append(toAdd);
         }

-        doc.atomicLock();
-        try {
-            Position position = doc.createPosition(offset);
-            doc.remove(offset, len);
-            doc.insertString(position.getOffset(), text.toString(), null);
-        } catch (BadLocationException ble) {
-            // nothing can be done to update
-        } finally {
-            doc.atomicUnlock();
-        }
+//        doc.atomicLock();
+        doc.runAtomic(new Runnable() {
+
+            public void run() {
+                try {
+                    Position position = doc.createPosition(offset);
+                    doc.remove(offset, len);
+                    doc.insertString(position.getOffset(),
_text.toString(), null);
+                } catch (BadLocationException ble) {
+                    // nothing can be done to update
+                }
+            }
+        });
     }

Original issue reported on code.google.com by claudio%...@gtempaccount.com on 12 Aug 2009 at 3:43

GoogleCodeExporter commented 9 years ago

Original comment by laurent....@gmail.com on 25 Aug 2009 at 9:31

GoogleCodeExporter commented 9 years ago
Sending        C:/Users/lfo/scm/googlecode/ivybeans/trunk/ivybeans/ivy-
module/src/com/googlecode/ivybeans/module/completion/IvyCompletionItem.java
Transmitting file data ...
Committed revision 287.

Fixed sorry for the delay.

Original comment by laurent....@gmail.com on 25 Sep 2009 at 3:13