On Tue, Jul 11, 2006 at 08:04:12AM -0500, David Sowder (Zothar) wrote:
> Matthew Toseland wrote:
> >Can't we just clear() it? What does lint4j have against
> >StringBuffer.setLength() exactly?
> >  
> Because I didn't see nor do I see a clear() method in the docs for 
> StringBuffer nor did lint4j suggest it and I'm still a relative newb to 
> the Java API?
> lint4j says it's a performance issue.  See "Using 
> StringBuffer.setLength()" at http://www.jutils.com/checks/performance.html

Woah, that is one of the best examples of rank stupidity in the java API
I have ever seen.

> >On Sun, Jul 09, 2006 at 11:21:58PM +0000, zothar at freenetproject.org wrote:
> >  
> >>Author: zothar
> >>Date: 2006-07-09 23:21:53 +0000 (Sun, 09 Jul 2006)
> >>New Revision: 9533
> >>
> >>Modified:
> >>   trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java
> >>   trunk/freenet/src/freenet/support/FileLoggerHook.java
> >>   trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
> >>Log:
> >>Make lint4j happier with StringBuffers by avoiding setLength()
> >>
> >>Modified: trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java
> >>===================================================================
> >>--- trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java 
> >>2006-07-09 22:47:52 UTC (rev 9532)
> >>+++ trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java 
> >>2006-07-09 23:21:53 UTC (rev 9533)
> >>@@ -166,8 +166,8 @@
> >> 
> >>                                                            saveText(b, 
> >>                                                            currentTag, 
> >>                                                            w, this);
> >> 
> >>-                                                    b.setLength(0);
> >>-                                                    balt.setLength(0);
> >>+                                                           b = new 
> >>StringBuffer(100);
> >>+                                                           balt = new 
> >>StringBuffer(4000);
> >>                                                            mode = INTAG;
> >>                                                    } else {
> >>                                                            b.append(c);
> >>@@ -178,21 +178,21 @@
> >>                                                    if 
> >>                                                    
> >> (HTMLDecoder.isWhitespace(c)) {
> >>                                                            
> >> splitTag.add(b.toString());
> >>                                                            mode = 
> >>                                                            INTAGWHITESPACE;
> >>-                                                    b.setLength(0);
> >>+                                                           b = new 
> >>StringBuffer(100);
> >>                                                    } else if ((c == 
> >>                                                    '<') && 
> >>                                                    
> >> Character.isWhitespace(balt.charAt(0))) {
> >>                                                            // Previous 
> >>                                                            was an 
> >>                                                            un-escaped < 
> >>                                                            in a script.
> >>                                                            saveText(b, 
> >>                                                            currentTag, 
> >>                                                            w, this);
> >> 
> >>-                                                    balt.setLength(0);
> >>-                                                    b.setLength(0);
> >>+                                                           balt = new 
> >>StringBuffer(4000);
> >>+                                                           b = new 
> >>StringBuffer(100);
> >>                                                            
> >> splitTag.clear();
> >>                                                    } else if (c == '>') 
> >>                                                    {
> >>                                                            
> >> splitTag.add(b.toString());
> >>-                                                    b.setLength(0);
> >>+                                                           b = new 
> >>StringBuffer(100);
> >>                                                            
> >> processTag(splitTag, w, this);
> >>                                                            currentTag = 
> >>                                                            
> >> (String)splitTag.get(0);
> >>                                                            
> >> splitTag.clear();
> >>-                                                    balt.setLength(0);
> >>+                                                           balt = new 
> >>StringBuffer(4000);
> >>                                                            mode = 
> >>                                                            INTEXT;
> >>                                                    } else if (
> >>                                                            (b.length() 
> >>                                                            == 2)
> >>@@ -228,9 +228,9 @@
> >>                                                                            
> >> w.write(
> >>                                                                            
> >>         "<!-- Tags in string attribute -->");
> >>                                                                            
> >> splitTag.clear();
> >>-                                                                    
> >>b.setLength(0);
> >>+                                                                    b = 
> >>new StringBuffer(100);
> >>                                                                            
> >> mode = INTEXT;
> >>-                                                                    
> >>balt.setLength(0);
> >>+                                                                    
> >>balt = new StringBuffer(4000);
> >>                                                                            
> >> // End tag now
> >>                                                                    } 
> >>                                                                    else 
> >>                                                                    {
> >>                                                                            
> >> killTag = true;
> >>@@ -257,8 +257,8 @@
> >>                                                                            
> >> w.write(
> >>                                                                            
> >>         "<!-- Tags in string attribute -->");
> >>                                                                            
> >> splitTag.clear();
> >>-                                                                    
> >>b.setLength(0);
> >>-                                                                    
> >>balt.setLength(0);
> >>+                                                                    b = 
> >>new StringBuffer(100);
> >>+                                                                    
> >>balt = new StringBuffer(4000);
> >>                                                                            
> >> mode = INTEXT;
> >>                                                                            
> >> // End tag now
> >>                                                                    } 
> >>                                                                    else 
> >>                                                                    {
> >>@@ -303,7 +303,7 @@
> >>                                            case INTAGCOMMENTCLOSING :
> >>                                                    if (c == '>') {
> >>                                                            saveComment(b, 
> >> w, this);
> >>-                                                    b.setLength(0);
> >>+                                                           b = new 
> >>StringBuffer(100);
> >>                                                            mode = 
> >>                                                            INTEXT;
> >>                                                    }
> >>                                                    break;
> >>@@ -321,14 +321,14 @@
> >>                                                            killTag = 
> >>                                                            false;
> >>                                                            currentTag = 
> >>                                                            
> >> (String)splitTag.get(0);
> >>                                                            
> >> splitTag.clear();
> >>-                                                    b.setLength(0);
> >>-                                                    balt.setLength(0);
> >>+                                                           b = new 
> >>StringBuffer(100);
> >>+                                                           balt = new 
> >>StringBuffer(4000);
> >>                                                            mode = 
> >>                                                            INTEXT;
> >>                                                    } else if ((c == 
> >>                                                    '<') && 
> >>                                                    
> >> Character.isWhitespace(balt.charAt(0))) {
> >>                                                            // Previous 
> >>                                                            was an 
> >>                                                            un-escaped < 
> >>                                                            in a script.
> >>                                                            saveText(balt, 
> >> currentTag, w, this);
> >>-                                                    balt.setLength(0);
> >>-                                                    b.setLength(0);
> >>+                                                           balt = new 
> >>StringBuffer(4000);
> >>+                                                           b = new 
> >>StringBuffer(100);
> >>                                                            
> >> splitTag.clear();
> >>                                                            mode = INTAG;
> >>                                                    } else if 
> >>                                                    
> >> (HTMLDecoder.isWhitespace(c)) {
> >>
> >>Modified: trunk/freenet/src/freenet/support/FileLoggerHook.java
> >>===================================================================
> >>--- trunk/freenet/src/freenet/support/FileLoggerHook.java   2006-07-09 
> >>22:47:52 UTC (rev 9532)
> >>+++ trunk/freenet/src/freenet/support/FileLoggerHook.java   2006-07-09 
> >>23:21:53 UTC (rev 9533)
> >>@@ -716,7 +716,7 @@
> >>                            if (sb.length() > 0) {
> >>                                    strVec.addElement(sb.toString());
> >>                                    fmtVec.addElement(new Integer(0));
> >>-                                   sb.setLength(0);
> >>+                                   sb = new StringBuffer();
> >>                            }
> >>                            fmtVec.addElement(new 
> >>                            Integer(numberOf(f[i])));
> >>                    } else if (f[i] == '\\') {
> >>@@ -729,7 +729,7 @@
> >>            if (sb.length() > 0) {
> >>                    strVec.addElement(sb.toString());
> >>                    fmtVec.addElement(new Integer(0));
> >>-                   sb.setLength(0);
> >>+                   sb = new StringBuffer();
> >>            }
> >> 
> >>            this.fmt = new int[fmtVec.size()];
> >>
> >>Modified: trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
> >>===================================================================
> >>--- trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java 
> >>2006-07-09 22:47:52 UTC (rev 9532)
> >>+++ trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java 
> >>2006-07-09 23:21:53 UTC (rev 9533)
> >>@@ -54,13 +54,10 @@
> >>         throw new IllegalStateException("impossible");
> >>     }
> >> 
> >>-    private StringBuffer sb = new StringBuffer(1000);
> >>-    
> >>     protected synchronized void checkList() {
> >>            // FIXME once satisfied that this works, make it only happen 
> >>            occasionally
> >>            int statedLength = list.size();
> >>            int realLength = 0;
> >>-           sb.setLength(0);
> >>            for(Enumeration e = list.elements();e.hasMoreElements();) {
> >>                    UpdatableSortedLinkedListItem i = 
> >>                    (UpdatableSortedLinkedListItem) e.nextElement();
> >>                    // Sanity check for infinite looping 
> >>
> >>_______________________________________________
> >>cvs mailing list
> >>cvs at freenetproject.org
> >>http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> >>
> >>    
> >
> >  
> >------------------------------------------------------------------------
> >
> >_______________________________________________
> >cvs mailing list
> >cvs at freenetproject.org
> >http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> 
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
> 

-- 
Matthew J Toseland - toad at amphibian.dyndns.org
Freenet Project Official Codemonkey - http://freenetproject.org/
ICTHUS - Nothing is impossible. Our Boss says so.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20060711/4ab433dd/attachment.pgp>

Reply via email to