You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by ge...@apache.org on 2002/03/25 01:28:29 UTC
cvs commit: jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node ASTComment.java
geirm 02/03/24 16:28:29
Modified: src/java/org/apache/velocity/runtime/parser/node
ASTComment.java
Log:
Fix for #7381
Revision Changes Path
1.4 +51 -3 jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node/ASTComment.java
Index: ASTComment.java
===================================================================
RCS file: /home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node/ASTComment.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ASTComment.java 19 Mar 2001 18:27:18 -0000 1.3
+++ ASTComment.java 25 Mar 2002 00:28:29 -0000 1.4
@@ -3,7 +3,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2000-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 2000-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -55,10 +55,26 @@
*/
import org.apache.velocity.runtime.parser.Parser;
+import org.apache.velocity.runtime.parser.Token;
+import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.velocity.exception.ResourceNotFoundException;
+import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.exception.MethodInvocationException;
-public class ASTComment extends SimpleNode
+import java.io.IOException;
+import java.io.Writer;
+
+/**
+ * Represents all comments...
+ *
+ * @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
+ * @version $Id: ASTComment.java,v 1.4 2002/03/25 00:28:29 geirm Exp $
+ */
+public class ASTComment extends SimpleNode
{
- public ASTComment(int id)
+ private char[] carr;
+
+ public ASTComment(int id)
{
super(id);
}
@@ -73,4 +89,36 @@
{
return visitor.visit(this, data);
}
+
+ /**
+ * We need to make sure we catch any of the dreaded MORE tokens.
+ */
+ public Object init(InternalContextAdapter context, Object data)
+ throws Exception
+ {
+ Token t = getFirstToken();
+
+ int loc1 = t.image.indexOf("##");
+ int loc2 = t.image.indexOf("#*");
+
+ if (loc1 == -1 && loc2 == -1)
+ {
+ carr = "".toCharArray();
+ }
+ else
+ {
+ carr = t.image.substring(0, (loc1 == -1) ? loc2 : loc1).toCharArray();
+ }
+
+ return data;
+ }
+
+ public boolean render( InternalContextAdapter context, Writer writer)
+ throws IOException, MethodInvocationException, ParseErrorException, ResourceNotFoundException
+ {
+ writer.write(carr);
+
+ return true;
+ }
+
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
Re: cvs commit: jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node ASTComment.java
Posted by Daniel Rall <dl...@finemaltcoding.com>.
When in an ASTComment Node, is the start of a comment ever likely to
be missed? Thinking it through, I would say no and the programming is
just defensive. If not, the following is reasonable (hadn't thought
it through before I patched ;).
Index: ASTComment.java
===================================================================
RCS file: /home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node/ASTComment.java,v
retrieving revision 1.4
diff -u -u -r1.4 ASTComment.java
--- ASTComment.java 25 Mar 2002 00:28:29 -0000 1.4
+++ ASTComment.java 25 Mar 2002 18:10:15 -0000
@@ -72,6 +72,8 @@
*/
public class ASTComment extends SimpleNode
{
+ private static final char[] ZILCH = "".toCharArray();
+
private char[] carr;
public ASTComment(int id)
@@ -103,7 +105,7 @@
if (loc1 == -1 && loc2 == -1)
{
- carr = "".toCharArray();
+ carr = ZILCH;
}
else
{
WITH CHANGE
dlr@despot:build$ jar tvf ..//velocity-1.4-dev.jar | grep ASTComment
2336 Mon Mar 25 10:07:10 PST 2002 org/apache/velocity/runtime/parser/node/ASTComment.class
WITHOUT CHANGE
dlr@despot:build$ jar tvf ../bin/velocity-1.4-dev.jar | grep ASTComment
2260 Mon Mar 25 10:08:46 PST 2002 org/apache/velocity/runtime/parser/node/ASTComment.class
geirm@apache.org writes:
> geirm 02/03/24 16:28:29
>
> Modified: src/java/org/apache/velocity/runtime/parser/node
> ASTComment.java
> Log:
> Fix for #7381
>
> Revision Changes Path
> 1.4 +51 -3 jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node/ASTComment.java
>
> Index: ASTComment.java
> ===================================================================
> RCS file: /home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node/ASTComment.java,v
> retrieving revision 1.3
> retrieving revision 1.4
> diff -u -r1.3 -r1.4
> --- ASTComment.java 19 Mar 2001 18:27:18 -0000 1.3
> +++ ASTComment.java 25 Mar 2002 00:28:29 -0000 1.4
> @@ -3,7 +3,7 @@
> /*
> * The Apache Software License, Version 1.1
> *
> - * Copyright (c) 2000-2001 The Apache Software Foundation. All rights
> + * Copyright (c) 2000-2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> @@ -55,10 +55,26 @@
> */
>
> import org.apache.velocity.runtime.parser.Parser;
> +import org.apache.velocity.runtime.parser.Token;
> +import org.apache.velocity.context.InternalContextAdapter;
> +import org.apache.velocity.exception.ResourceNotFoundException;
> +import org.apache.velocity.exception.ParseErrorException;
> +import org.apache.velocity.exception.MethodInvocationException;
>
> -public class ASTComment extends SimpleNode
> +import java.io.IOException;
> +import java.io.Writer;
> +
> +/**
> + * Represents all comments...
> + *
> + * @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
> + * @version $Id: ASTComment.java,v 1.4 2002/03/25 00:28:29 geirm Exp $
> + */
> +public class ASTComment extends SimpleNode
> {
> - public ASTComment(int id)
> + private char[] carr;
> +
> + public ASTComment(int id)
> {
> super(id);
> }
> @@ -73,4 +89,36 @@
> {
> return visitor.visit(this, data);
> }
> +
> + /**
> + * We need to make sure we catch any of the dreaded MORE tokens.
> + */
> + public Object init(InternalContextAdapter context, Object data)
> + throws Exception
> + {
> + Token t = getFirstToken();
> +
> + int loc1 = t.image.indexOf("##");
> + int loc2 = t.image.indexOf("#*");
> +
> + if (loc1 == -1 && loc2 == -1)
> + {
> + carr = "".toCharArray();
> + }
> + else
> + {
> + carr = t.image.substring(0, (loc1 == -1) ? loc2 : loc1).toCharArray();
> + }
> +
> + return data;
> + }
> +
> + public boolean render( InternalContextAdapter context, Writer writer)
> + throws IOException, MethodInvocationException, ParseErrorException, ResourceNotFoundException
> + {
> + writer.write(carr);
> +
> + return true;
> + }
> +
> }
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>