You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Xiaoming Shi (JIRA)" <ji...@apache.org> on 2011/02/17 18:06:24 UTC

[jira] Updated: (WW-3578) replace function is called multiple times, which can be done in one run

     [ https://issues.apache.org/jira/browse/WW-3578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Xiaoming Shi updated WW-3578:
-----------------------------

    Description: 
In the function "makeXmlJavaIdentifier" 

(./struts-2.2.1/src/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java line: 1059) 

The replace function is called 3 times, which can be done in one run with a for loop. 

               StringBuilder sb = new StringBuilder(name.length()); 
for(int i = 0; i < name.length(); i++) 
{ 
char c = name.charAt(i); 
if (c == '-') 
sb.append("$1"); 
else if (c == '.') 
sb.append("$2"); 
else if (c == ':') 
sb.append("$3"); 
else 
sb.append(c); 
} 
return sb.toString(); 

The second method can be much faster. 
(Similar to the MySQL bug http://bugs.mysql.com/bug.php?id=45699)




  was:
In the function "makeXmlJavaIdentifier" 

(./struts-2.2.1/src/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java line: 1059) 

The replace function is called 3 times, which can be done in one run with a for loop. 

               StringBuilder sb = new StringBuilder(name.length()); 
for(int i = 0; i < name.length(); i++) 
{ 
char c = name.charAt(i); 
if (c == '-') 
sb.append("$1"); 
else if (c == '.') 
sb.append("$2"); 
else if (c == ':') 
sb.append("$3"); 
else 
sb.append(c); 
} 
return sb.toString(); 

The second method can be much faster .


> replace function is called multiple times, which can be done in one run
> -----------------------------------------------------------------------
>
>                 Key: WW-3578
>                 URL: https://issues.apache.org/jira/browse/WW-3578
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - JasperReports
>    Affects Versions: 2.2.1.1
>            Reporter: Xiaoming Shi
>
> In the function "makeXmlJavaIdentifier" 
> (./struts-2.2.1/src/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java line: 1059) 
> The replace function is called 3 times, which can be done in one run with a for loop. 
>                StringBuilder sb = new StringBuilder(name.length()); 
> for(int i = 0; i < name.length(); i++) 
> { 
> char c = name.charAt(i); 
> if (c == '-') 
> sb.append("$1"); 
> else if (c == '.') 
> sb.append("$2"); 
> else if (c == ':') 
> sb.append("$3"); 
> else 
> sb.append(c); 
> } 
> return sb.toString(); 
> The second method can be much faster. 
> (Similar to the MySQL bug http://bugs.mysql.com/bug.php?id=45699)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira