protected static final String canonicalURI(String s) {
if (s == null) return null;
- StringBuffer result = new StringBuffer();
+ StringBuilder result = new StringBuilder();
final int len = s.length();
int pos = 0;
while (pos < len) {
public class JasperAntLogger extends DefaultLogger {
- protected StringBuffer reportBuf = new StringBuffer();
+ protected StringBuilder reportBuf = new StringBuilder();
protected void printMessage(final String message,
final PrintStream stream,
String sep = System.getProperty("path.separator");
- StringBuffer errorReport = new StringBuffer();
+ StringBuilder errorReport = new StringBuilder();
- StringBuffer info=new StringBuffer();
+ StringBuilder info=new StringBuilder();
info.append("Compile: javaFileName=" + javaFileName + "\n" );
info.append(" classpath=" + classpath + "\n" );
}
private String quotePathList(String list) {
- StringBuffer result = new StringBuffer(list.length() + 10);
+ StringBuilder result = new StringBuilder(list.length() + 10);
StringTokenizer st = new StringTokenizer(list, File.pathSeparator);
while (st.hasMoreTokens()) {
String token = st.nextToken();
}
Object[] args = null;
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
for (int i=0; i < details.length; i++) {
if (details[i].getJspBeginLineNumber() >= 0) {
if (attrs == null)
return "";
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
for (int i=0; i < attrs.getLength(); i++) {
buf.append(" " + attrs.getQName(i) + "=\""
+ attrs.getValue(i) + "\"");
public class ELFunctionMapper {
private int currFunc = 0;
- StringBuffer ds; // Contains codes to initialize the functions mappers.
- StringBuffer ss; // Contains declarations of the functions mappers.
+ StringBuilder ds; // Contains codes to initialize the functions mappers.
+ StringBuilder ss; // Contains declarations of the functions mappers.
/**
* Creates the functions mappers for all EL expressions in the JSP page.
throws JasperException {
ELFunctionMapper map = new ELFunctionMapper();
- map.ds = new StringBuffer();
- map.ss = new StringBuffer();
+ map.ds = new StringBuilder();
+ map.ss = new StringBuilder();
page.visit(map.new ELFunctionVisitor());
*/
private ELNode.Nodes parseEL() {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
ELexpr = new ELNode.Nodes();
while (hasNext()) {
curToken = nextToken();
*/
private String skipUntilEL() {
char prev = 0;
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
while (hasNextChar()) {
char ch = nextChar();
if (prev == '\\') {
if (hasNextChar()) {
char ch = nextChar();
if (Character.isJavaIdentifierStart(ch)) {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
buf.append(ch);
while ((ch = peekChar()) != -1
&& Character.isJavaIdentifierPart(ch)) {
* '\\', and ('\"', or "\'")
*/
private Token parseQuotedChars(char quote) {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
buf.append(quote);
while (hasNextChar()) {
char ch = nextChar();
throws IOException, JasperException {
ArrayList<JavacErrorDetail> errors = new ArrayList<JavacErrorDetail>();
- StringBuffer errMsgBuf = null;
+ StringBuilder errMsgBuf = null;
int lineNum = -1;
JavacErrorDetail javacError = null;
lineNum = -1;
}
- errMsgBuf = new StringBuffer();
+ errMsgBuf = new StringBuilder();
javacError = createJavacError(fname, page, errMsgBuf, lineNum);
}
* @throws JasperException
*/
public static JavacErrorDetail createJavacError(String fname,
- Node.Nodes page, StringBuffer errMsgBuf, int lineNum)
+ Node.Nodes page, StringBuilder errMsgBuf, int lineNum)
throws JasperException {
return createJavacError(fname, page, errMsgBuf, lineNum, null);
}
* @throws JasperException
*/
public static JavacErrorDetail createJavacError(String fname,
- Node.Nodes page, StringBuffer errMsgBuf, int lineNum,
+ Node.Nodes page, StringBuilder errMsgBuf, int lineNum,
JspCompilationContext ctxt) throws JasperException {
JavacErrorDetail javacError;
// Attempt to map javac error line number to line in JSP page
if (s == null)
return "";
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '"')
*/
static String quote(char c) {
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
b.append('\'');
if (c == '\'')
b.append('\\').append('\'');
private String createJspId() {
if (this.jspIdPrefix == null) {
- StringBuffer sb = new StringBuffer(32);
+ StringBuilder sb = new StringBuilder(32);
String name = ctxt.getServletJavaFileName();
sb.append("jsp_").append(Math.abs(name.hashCode())).append('_');
this.jspIdPrefix = sb.toString();
if (tx==null) return null;
Class<?> type = expectedType;
int size = tx.length();
- StringBuffer output = new StringBuffer(size);
+ StringBuilder output = new StringBuilder(size);
boolean el = false;
int i = 0;
int mark = 0;
n.setBeginJavaLine(out.getJavaLine());
out.printin();
- StringBuffer sb = new StringBuffer("out.write(\"");
+ StringBuilder sb = new StringBuilder("out.write(\"");
int initLength = sb.length();
int count = JspUtil.CHUNKSIZE;
int srcLine = 0; // relative to starting srouce line
} else if (attr.isELInterpreterInput()) {
// results buffer
- StringBuffer sb = new StringBuffer(64);
+ StringBuilder sb = new StringBuilder(64);
TagAttributeInfo tai = attr.getTagAttributeInfo();
Reader reader =
new BufferedReader(new InputStreamReader(is, ctxt.getOptions().getJavaEncoding()));
char[] chars = new char[8192];
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
int count;
while ((count = reader.read(chars, 0,
chars.length)) > 0) {
new String(problems[i].getOriginatingFileName());
try {
problemList.add(ErrorDispatcher.createJavacError
- (name, pageNodes, new StringBuffer(problem.getMessage()),
+ (name, pageNodes, new StringBuilder(problem.getMessage()),
problem.getSourceLineNumber(), ctxt));
} catch (JasperException e) {
log.error("Error visiting node", e);
private int javaLineNum;
private String jspFileName;
private int jspBeginLineNum;
- private StringBuffer errMsg;
+ private StringBuilder errMsg;
private String jspExtract = null;
/**
*/
public JavacErrorDetail(String javaFileName,
int javaLineNum,
- StringBuffer errMsg) {
+ StringBuilder errMsg) {
this.javaFileName = javaFileName;
this.javaLineNum = javaLineNum;
int javaLineNum,
String jspFileName,
int jspBeginLineNum,
- StringBuffer errMsg,
+ StringBuilder errMsg,
JspCompilationContext ctxt) {
this(javaFileName, javaLineNum, errMsg);
}
// copy out a fragment of JSP to display to the user
- StringBuffer fragment = new StringBuffer(1024);
+ StringBuilder fragment = new StringBuilder(1024);
int startIndex = Math.max(0, this.jspBeginLineNum-1-3);
int endIndex = Math.min(
jspLines.length-1, this.jspBeginLineNum-1+3);
private JspCompilationContext ctxt;
private PageInfo pageInfo;
private String path;
- private StringBuffer charBuffer;
+ private StringBuilder charBuffer;
// Node representing the XML element currently being parsed
private Node current;
public void characters(char[] buf, int offset, int len) {
if (charBuffer == null) {
- charBuffer = new StringBuffer();
+ charBuffer = new StringBuilder();
}
charBuffer.append(buf, offset, len);
}
* @param quoted If <strong>true</strong> accept quoted strings.
*/
String parseToken(boolean quoted) throws JasperException {
- StringBuffer stringBuffer = new StringBuffer();
+ StringBuilder StringBuilder = new StringBuilder();
skipSpaces();
- stringBuffer.setLength(0);
+ StringBuilder.setLength(0);
if (!hasMoreInput()) {
return "";
ch = nextChar()) {
if (ch == '\\')
ch = nextChar();
- stringBuffer.append((char) ch);
+ StringBuilder.append((char) ch);
}
// Check end of quote, skip closing quote:
if (ch == -1) {
peekChar() == '>' || peekChar() == '%')
ch = nextChar();
}
- stringBuffer.append((char) ch);
+ StringBuilder.append((char) ch);
} while (!isDelimiter());
}
}
- return stringBuffer.toString();
+ return StringBuilder.toString();
}
void setSingleFile(boolean val) {
*/
private void initClassPath() {
- StringBuffer cpath = new StringBuffer();
+ StringBuilder cpath = new StringBuilder();
String sep = System.getProperty("path.separator");
if (parentClassLoader instanceof URLClassLoader) {
public static String escapeXml(String s) {
if (s == null)
return null;
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '<') {
* string <tt>with</tt>.
*/
public static String replace(String name, char replace, String with) {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
int begin = 0;
int end;
int last = name.length();
// the generated Servlet/SimpleTag implements FunctionMapper, so
// that machinery is already in place (mroth).
targetType = toJavaSourceType(targetType);
- StringBuffer call = new StringBuffer(
+ StringBuilder call = new StringBuilder(
"("
+ targetType
+ ") "
}
private static String getClassNameBase(String urn) {
- StringBuffer base = new StringBuffer("org.apache.jsp.tag.meta.");
+ StringBuilder base = new StringBuilder("org.apache.jsp.tag.meta.");
if (urn != null) {
base.append(makeJavaPackage(urn));
base.append('.');
*/
public static final String makeJavaPackage(String path) {
String classNameComponents[] = split(path, "/");
- StringBuffer legalClassNames = new StringBuffer();
+ StringBuilder legalClassNames = new StringBuilder();
for (int i = 0; i < classNameComponents.length; i++) {
legalClassNames.append(makeJavaIdentifier(classNameComponents[i]));
if (i < classNameComponents.length - 1) {
* @return Legal Java identifier corresponding to the given identifier
*/
public static final String makeJavaIdentifier(String identifier) {
- StringBuffer modifiedIdentifier = new StringBuffer(identifier.length());
+ StringBuilder modifiedIdentifier = new StringBuilder(identifier.length());
if (!Character.isJavaIdentifierStart(identifier.charAt(0))) {
modifiedIdentifier.append('_');
}
break;
}
}
- StringBuffer resultType = new StringBuffer(t);
+ StringBuilder resultType = new StringBuilder(t);
for (; dims > 0; dims--) {
resultType.append("[]");
}
return binaryName;
}
- StringBuffer buf = new StringBuffer(binaryName);
+ StringBuilder buf = new StringBuilder(binaryName);
do {
buf.setCharAt(c.getName().length(), '.');
c = c.getDeclaringClass();
String ret = text;
if (ret == null) {
if (body != null) {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
for (int i = 0; i < body.size(); i++) {
buf.append(body.getNode(i).getText());
}
private static final String CDATA_END_SECTION = "]]>\n";
// string buffer used to build XML view
- private StringBuffer buf;
+ private StringBuilder buf;
/**
* Constructor.
page.visit(firstPass);
// Second pass
- buf = new StringBuffer();
+ buf = new StringBuilder();
SecondPassVisitor secondPass
= new SecondPassVisitor(page.getRoot(), buf, compiler,
firstPass.getJspIdPrefix());
* @return the input stream of the XML view
*/
public InputStream getInputStream() {
- // Turn StringBuffer into InputStream
+ // Turn StringBuilder into InputStream
try {
return new ByteArrayInputStream(buf.toString().getBytes("UTF-8"));
} catch (UnsupportedEncodingException uee) {
implements TagConstants {
private Node.Root root;
- private StringBuffer buf;
+ private StringBuilder buf;
private Compiler compiler;
private String jspIdPrefix;
private boolean resetDefaultNS = false;
/*
* Constructor
*/
- public SecondPassVisitor(Node.Root root, StringBuffer buf,
+ public SecondPassVisitor(Node.Root root, StringBuilder buf,
Compiler compiler, String jspIdPrefix) {
this.root = root;
this.buf = buf;
private String parseName() throws JasperException {
char ch = (char) reader.peekChar();
if (Character.isLetter(ch) || ch == '_' || ch == ':') {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
buf.append(ch);
reader.nextChar();
ch = (char) reader.peekChar();
*/
private String parseQuoted(Mark start, String tx, char quote)
throws JasperException {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
int size = tx.length();
int i = 0;
while (i < size) {
// check state and initialize buffer
if (outputFileName == null)
throw new IllegalStateException();
- StringBuffer out = new StringBuffer();
+ StringBuilder out = new StringBuilder();
// start the SMAP
out.append("SMAP\n");
public String getString() {
if (inputStartLine == -1 || outputStartLine == -1)
throw new IllegalStateException();
- StringBuffer out = new StringBuffer();
+ StringBuilder out = new StringBuilder();
out.append(inputStartLine);
if (lineFileIDSet)
out.append("#" + lineFileID);
if (fileNameList.size() == 0 || lineData.size() == 0)
return null;
- StringBuffer out = new StringBuffer();
+ StringBuilder out = new StringBuilder();
// print StratumSection
out.append("*S " + stratumName + "\n");
private PageInfo pageInfo;
private int textNodeCount = 0;
private Node.TemplateText firstTextNode = null;
- private StringBuffer textBuffer;
+ private StringBuilder textBuffer;
private final String emptyText = new String("");
public TextCatVisitor(Compiler compiler) {
if (textNodeCount++ == 0) {
firstTextNode = n;
- textBuffer = new StringBuffer(n.getText());
+ textBuffer = new StringBuilder(n.getText());
} else {
// Append text to text buffer
textBuffer.append(n.getText());
private ClassLoader loader;
- private final StringBuffer buf = new StringBuffer(32);
+ private final StringBuilder buf = new StringBuilder(32);
private static final JspUtil.ValidAttribute[] jspRootAttrs = {
new JspUtil.ValidAttribute("xsi:schemaLocation"),
}
// build expression
- StringBuffer expr = this.getBuffer();
+ StringBuilder expr = this.getBuffer();
expr.append(n.getType()).append('{').append(n.getText())
.append('}');
ELNode.Nodes el = ELParser.parse(expr.toString());
}
/*
- * Return an empty StringBuffer [not thread-safe]
+ * Return an empty StringBuilder [not thread-safe]
*/
- private StringBuffer getBuffer() {
+ private StringBuilder getBuffer() {
this.buf.setLength(0);
return this.buf;
}
ValidationMessage[] errors = tagInfo.validate(n.getTagData());
if (errors != null && errors.length != 0) {
- StringBuffer errMsg = new StringBuffer();
+ StringBuilder errMsg = new StringBuilder();
errMsg.append("<h3>");
errMsg.append(Localizer.getMessage(
"jsp.error.tei.invalid.attributes", n.getQName()));
private static void validateXmlView(PageData xmlView, Compiler compiler)
throws JasperException {
- StringBuffer errMsg = null;
+ StringBuilder errMsg = null;
ErrorDispatcher errDisp = compiler.getErrorDispatcher();
for (Iterator<TagLibraryInfo> iter =
ValidationMessage[] errors = tli.validate(xmlView);
if ((errors != null) && (errors.length != 0)) {
if (errMsg == null) {
- errMsg = new StringBuffer();
+ errMsg = new StringBuilder();
}
errMsg.append("<h3>");
errMsg.append(Localizer.getMessage(
enc = "ISO-8859-1"; // The default request encoding
}
- StringBuffer out = new StringBuffer(s.length());
+ StringBuilder out = new StringBuilder(s.length());
ByteArrayOutputStream buf = new ByteArrayOutputStream();
OutputStreamWriter writer = null;
try {
private static String XmlEscape(String s) {
if (s == null)
return null;
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '<') {
char content[] = new char[message.length()];
message.getChars(0, message.length(), content, 0);
- StringBuffer result = new StringBuffer(content.length + 50);
+ StringBuilder result = new StringBuilder(content.length + 50);
for (int i = 0; i < content.length; i++) {
switch (content[i]) {
case '<':
* taken from org.apache.taglibs.standard.tag.common.core.ImportSupport
*/
public static String stripSession(String url) {
- StringBuffer u = new StringBuffer(url);
+ StringBuilder u = new StringBuilder(url);
int sessionStart;
while ((sessionStart = u.toString().indexOf(";" + Constants.SESSION_PARAMETER_NAME + "=")) != -1) {
int sessionEnd = u.toString().indexOf(";", sessionStart + 1);
int start = 0;
int length = buffer.length();
char[] arrayBuffer = buffer.toCharArray();
- StringBuffer escapedBuffer = null;
+ StringBuilder escapedBuffer = null;
for (int i = 0; i < length; i++) {
char c = arrayBuffer[i];
if (c <= HIGHEST_SPECIAL) {
char[] escaped = specialCharactersRepresentation[c];
if (escaped != null) {
- // create StringBuffer to hold escaped xml string
+ // create StringBuilder to hold escaped xml string
if (start == 0) {
- escapedBuffer = new StringBuffer(length + 5);
+ escapedBuffer = new StringBuilder(length + 5);
}
// add unescaped portion
if (start < i) {
String requestDispatcherName = ctxt.getTemporaryVariableName();
String irwName = ctxt.getTemporaryVariableName(); //ImportResponseWrapper name
String brName = ctxt.getTemporaryVariableName(); //BufferedReader name
- String sbName = ctxt.getTemporaryVariableName(); //StringBuffer name
+ String sbName = ctxt.getTemporaryVariableName(); //StringBuilder name
String tempStringName = ctxt.getTemporaryVariableName();
//is absolute url
ctxt.generateJavaSource(" }");
ctxt.generateJavaSource(" java.io.BufferedReader " + brName + " = new java.io.BufferedReader(" + tempReaderName + ");");
- ctxt.generateJavaSource(" StringBuffer " + sbName + " = new StringBuffer();");
+ ctxt.generateJavaSource(" StringBuilder " + sbName + " = new StringBuilder();");
String index = ctxt.getTemporaryVariableName();
ctxt.generateJavaSource(" int " + index + ";");
ctxt.generateJavaSource(" while(("+index+" = "+brName+".read()) != -1) "+sbName+".append((char)"+index+");");
*/
public String toString() {
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
toString(sb, 0, this);
return (sb.toString());
/**
- * Append to the specified StringBuffer a character representation of
+ * Append to the specified StringBuilder a character representation of
* this node, with the specified amount of indentation.
*
- * @param sb The StringBuffer to append to
+ * @param sb The StringBuilder to append to
* @param indent Number of characters of indentation
* @param node The TreeNode to be printed
*/
- protected void toString(StringBuffer sb, int indent,
+ protected void toString(StringBuilder sb, int indent,
TreeNode node) {
int indent2 = indent + 2;