<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-346</id>
	<title>Nabble - Velocity - Dev</title>
	<updated>2008-07-04T03:47:26Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Velocity---Dev-f346.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Velocity---Dev-f346.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-18296282</id>
	<title>[GUMP@vmgump]: Project velocity-texen-test (in module velocity-texen) failed</title>
	<published>2008-07-04T03:47:26Z</published>
	<updated>2008-07-04T03:47:26Z</updated>
	<author>
		<name>Velocity - Dev mailing list-2</name>
	</author>
	<content type="html">To whom it may engage...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;This is an automated request, but not an unsolicited one. For 
&lt;br&gt;more information please visit &lt;a href=&quot;http://gump.apache.org/nagged.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gump.apache.org/nagged.html&lt;/a&gt;, 
&lt;br&gt;and/or contact the folk at &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18296282&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;general@...&lt;/a&gt;.
&lt;br&gt;&lt;br&gt;Project velocity-texen-test has an issue affecting its community integration.
&lt;br&gt;This issue affects 1 projects,
&lt;br&gt;&amp;nbsp;and has been outstanding for 25 runs.
&lt;br&gt;The current state of this project is 'Failed', with reason 'Build Failed'.
&lt;br&gt;For reference only, the following projects are affected by this:
&lt;br&gt;&amp;nbsp; &amp;nbsp; - velocity-texen-test : &amp;nbsp;Texen is a general purpose text generating utility based on ...
&lt;br&gt;&lt;br&gt;&lt;br&gt;Full details are available at:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://vmgump.apache.org/gump/public/velocity-texen/velocity-texen-test/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://vmgump.apache.org/gump/public/velocity-texen/velocity-texen-test/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;That said, some information snippets are provided here.
&lt;br&gt;&lt;br&gt;The following annotations (debug/informational/warning/error messages) were provided:
&lt;br&gt;&amp;nbsp;-INFO- Failed with reason build failed
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;The following work was performed:
&lt;br&gt;&lt;a href=&quot;http://vmgump.apache.org/gump/public/velocity-texen/velocity-texen-test/gump_work/build_velocity-texen_velocity-texen-test.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://vmgump.apache.org/gump/public/velocity-texen/velocity-texen-test/gump_work/build_velocity-texen_velocity-texen-test.html&lt;/a&gt;&lt;br&gt;Work Name: build_velocity-texen_velocity-texen-test (Type: Build)
&lt;br&gt;Work ended in a state of : Failed
&lt;br&gt;Elapsed: 5 secs
&lt;br&gt;Command Line: /usr/lib/jvm/java-1.5.0-sun/bin/java -Djava.awt.headless=true org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Ddeprecation=false -Dversion=04072008 -Dskip.jar.loading=true test 
&lt;br&gt;[Working Directory: /srv/gump/public/workspace/velocity-texen/build]
&lt;br&gt;CLASSPATH: /usr/lib/jvm/java-1.5.0-sun/lib/tools.jar:/srv/gump/public/workspace/velocity-texen/bin/test-classes:/srv/gump/public/workspace/velocity-texen/bin/test:/srv/gump/public/workspace/velocity-texen/bin/test/texen-classpath.jar:/srv/gump/public/workspace/velocity-texen/bin/texen-04072008.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-trax.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/packages/junit3.8.1/junit.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/apache-commons/collections/build/commons-collections-04072008.jar:/srv/gump/public/workspace/apache-commons/lang/commons-lan
&lt;br&gt;&amp;nbsp;g-04072008.jar:/srv/gump/public/workspace/logging-log4j-12/dist/lib/log4j-04072008.jar:/srv/gump/public/workspace/jdom/build/jdom.jar:/srv/gump/packages/werken-xpath/werken-xpath-0.9.4.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-04072008.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-dep-04072008.jar:/srv/gump/public/workspace/velocity-anakia/bin/anakia-04072008.jar:/srv/gump/packages/antlr-2.7.6/antlr.jar
&lt;br&gt;---------------------------------------------
&lt;br&gt;&lt;br&gt;test-jar:
&lt;br&gt;&amp;nbsp; &amp;nbsp; [mkdir] Created dir: /srv/gump/public/workspace/velocity-texen/bin/test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; [jar] Building jar: /srv/gump/public/workspace/velocity-texen/bin/test/texen-classpath.jar
&lt;br&gt;&lt;br&gt;test:
&lt;br&gt;&amp;nbsp; &amp;nbsp; [mkdir] Created dir: /srv/gump/public/workspace/velocity-texen/bin/test-reports
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.texen.ExtendedTexenTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Template results directory does not exist
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Created template results directory
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Generating to file bin/test/texen-generator/report
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Comparing result file 'bin/test/texen-generator/TurbineWeather.java' with compare file 'test/texen/compare/TurbineWeather.java'
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Comparing result file 'bin/test/texen-generator/TurbineWeatherService.java' with compare file 'test/texen/compare/TurbineWeatherService.java'
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Comparing result file 'bin/test/texen-generator/WeatherService.java' with compare file 'test/texen/compare/WeatherService.java'
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Comparing result file 'bin/test/texen-generator/book.txt' with compare file 'test/texen/compare/book.txt'
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Comparing result file 'bin/test/texen-generator/Text.txt' with compare file 'test/texen/compare/Text.txt'
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Template results directory does not exist
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Created template results directory
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Using classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Generating to file bin/test/texen-generator-classpath/report
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'Control.vm'
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:452)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:335)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1342)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:419)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.texen.Generator.getTemplate(Generator.java:321)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.texen.Generator.parse(Generator.java:451)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.texen.Texen.execute(Texen.java:342)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.texen.ExtendedTexenTestCase.testExtendedTexenClasspath(ExtendedTexenTestCase.java:176)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at java.lang.reflect.Method.invoke(Method.java:585)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at junit.framework.TestCase.runTest(TestCase.java:154)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at junit.framework.TestCase.runBare(TestCase.java:127)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at junit.framework.TestResult$1.protect(TestResult.java:106)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at junit.framework.TestResult.runProtected(TestResult.java:124)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at junit.framework.TestResult.run(TestResult.java:109)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at junit.framework.TestCase.run(TestCase.java:118)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at junit.framework.TestSuite.runTest(TestSuite.java:208)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at junit.framework.TestSuite.run(TestSuite.java:203)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:420)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:911)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:768)
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 2, Failures: 0, Errors: 1, Time elapsed: 0.776 sec
&lt;br&gt;&lt;br&gt;BUILD FAILED
&lt;br&gt;/srv/gump/public/workspace/velocity-texen/build/build.xml:520: Test org.apache.texen.ExtendedTexenTestCase failed
&lt;br&gt;&lt;br&gt;Total time: 4 seconds
&lt;br&gt;---------------------------------------------
&lt;br&gt;&lt;br&gt;To subscribe to this information via syndicated feeds:
&lt;br&gt;- RSS: &lt;a href=&quot;http://vmgump.apache.org/gump/public/velocity-texen/velocity-texen-test/rss.xml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://vmgump.apache.org/gump/public/velocity-texen/velocity-texen-test/rss.xml&lt;/a&gt;&lt;br&gt;- Atom: &lt;a href=&quot;http://vmgump.apache.org/gump/public/velocity-texen/velocity-texen-test/atom.xml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://vmgump.apache.org/gump/public/velocity-texen/velocity-texen-test/atom.xml&lt;/a&gt;&lt;br&gt;&lt;br&gt;============================== Gump Tracking Only ===
&lt;br&gt;Produced by Gump version 2.3.
&lt;br&gt;Gump Run 01010004072008, vmgump:vmgump-public:01010004072008
&lt;br&gt;Gump E-mail Identifier (unique within run) #25.
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Apache Gump
&lt;br&gt;&lt;a href=&quot;http://gump.apache.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gump.apache.org/&lt;/a&gt;&amp;nbsp;[Instance: vmgump]
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18296282&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18296282&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-GUMP%40vmgump-%3A-Project-velocity-texen-test-%28in-module-velocity-texen%29-failed-tp18296282p18296282.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18296054</id>
	<title>[GUMP@vmgump]: Project velocity-engine-test (in module velocity-engine) failed</title>
	<published>2008-07-04T03:18:37Z</published>
	<updated>2008-07-04T03:18:37Z</updated>
	<author>
		<name>Velocity - Dev mailing list-2</name>
	</author>
	<content type="html">To whom it may engage...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;This is an automated request, but not an unsolicited one. For 
&lt;br&gt;more information please visit &lt;a href=&quot;http://gump.apache.org/nagged.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gump.apache.org/nagged.html&lt;/a&gt;, 
&lt;br&gt;and/or contact the folk at &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18296054&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;general@...&lt;/a&gt;.
&lt;br&gt;&lt;br&gt;Project velocity-engine-test has an issue affecting its community integration.
&lt;br&gt;This issue affects 1 projects,
&lt;br&gt;&amp;nbsp;and has been outstanding for 25 runs.
&lt;br&gt;The current state of this project is 'Failed', with reason 'Build Failed'.
&lt;br&gt;For reference only, the following projects are affected by this:
&lt;br&gt;&amp;nbsp; &amp;nbsp; - velocity-engine-test : &amp;nbsp;Velocity Templating engine
&lt;br&gt;&lt;br&gt;&lt;br&gt;Full details are available at:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://vmgump.apache.org/gump/public/velocity-engine/velocity-engine-test/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://vmgump.apache.org/gump/public/velocity-engine/velocity-engine-test/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;That said, some information snippets are provided here.
&lt;br&gt;&lt;br&gt;The following annotations (debug/informational/warning/error messages) were provided:
&lt;br&gt;&amp;nbsp;-INFO- Failed with reason build failed
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;The following work was performed:
&lt;br&gt;&lt;a href=&quot;http://vmgump.apache.org/gump/public/velocity-engine/velocity-engine-test/gump_work/build_velocity-engine_velocity-engine-test.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://vmgump.apache.org/gump/public/velocity-engine/velocity-engine-test/gump_work/build_velocity-engine_velocity-engine-test.html&lt;/a&gt;&lt;br&gt;Work Name: build_velocity-engine_velocity-engine-test (Type: Build)
&lt;br&gt;Work ended in a state of : Failed
&lt;br&gt;Elapsed: 49 secs
&lt;br&gt;Command Line: /usr/lib/jvm/java-1.5.0-sun/bin/java -Djava.awt.headless=true org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Djar.oro.dir=/srv/gump/public/workspace/jakarta-oro -Ddeprecation=false -Djar.commons-collections.version=04072008 -Dskip.jar.loading=true -Djar.commons-lang.dir=/srv/gump/public/workspace/apache-commons/lang/dist -Dversion=04072008 -Djar.commons-collections.dir=/srv/gump/public/workspace/apache-commons/collections/build -Djar.commons-lang.version=04072008 -Djar.oro.name=jakarta-oro -Djar.oro.version=04072008 test 
&lt;br&gt;[Working Directory: /srv/gump/public/workspace/velocity-engine/build]
&lt;br&gt;CLASSPATH: /usr/lib/jvm/java-1.5.0-sun/lib/tools.jar:/srv/gump/public/workspace/velocity-engine/test:/srv/gump/public/workspace/velocity-engine/bin/test-classes:/srv/gump/public/workspace/velocity-engine/test/cpload/test1.jar:/srv/gump/public/workspace/velocity-engine/test/texen-classpath/test.jar:/srv/gump/public/workspace/velocity-engine/test/multiloader/test1.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-04072008.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-dep-04072008.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-trax.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/packages/junit3.8.1/junit.jar:/s
&lt;br&gt;&amp;nbsp;rv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/packages/avalon-logkit/avalon-logkit-2.1.jar:/srv/gump/public/workspace/apache-commons/collections/build/commons-collections-04072008.jar:/srv/gump/public/workspace/apache-commons/lang/commons-lang-04072008.jar:/srv/gump/public/workspace/logging-log4j-12/dist/lib/log4j-04072008.jar:/srv/gump/public/workspace/jdom/build/jdom.jar:/srv/gump/public/workspace/jakarta-servletapi-4/lib/servlet.jar:/srv/gump/public/workspace/jakarta-oro/jakarta-oro-04072008.jar:/srv/gump/packages/werken-xpath/werken-xpath-0.9.4.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-04072008.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-api-04072008.jar:/srv/gump/packages/antlr-2.7.6/antlr.jar:/srv/gump/public/workspace/hsqldb/lib/hsqldb.jar
&lt;br&gt;---------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; method &amp;nbsp; &amp;nbsp;= doException
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; throwable = java.lang.NullPointerException
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; exception = null
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Caught MIE (good!) :
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; reference = woogie
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; method &amp;nbsp; &amp;nbsp;= getFoo
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; throwable = java.lang.Exception: Hello from getFoo()
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; exception = Hello from getFoo()
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Caught MIE (good!) :
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; reference = woogie
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; method &amp;nbsp; &amp;nbsp;= getFoo
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; throwable = java.lang.Exception: Hello from getFoo()
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; exception = Hello from getFoo()
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Caught MIE (good!) :
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; reference = 
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; method &amp;nbsp; &amp;nbsp;= foo
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; throwable = java.lang.Exception: Hello from setFoo()
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; exception = Hello from setFoo()
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Caught MIE (good!) :
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; reference = woogie
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; method &amp;nbsp; &amp;nbsp;= getFoo
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; throwable = java.lang.Exception: Hello from getFoo()
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] &amp;nbsp; exception = Hello from getFoo()
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.559 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.MethodOverloadingTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.6 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.MiscTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.075 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.MultipleFileResourcePathTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.36 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.NumberMethodCallsTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Testing: method calls with arguments as context objects
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Testing: method calls with arguments as literals
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Testing: method calls with arguments as calculated values
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.501 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.ParseExceptionTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 1.152 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.ParseWithMacroLibsTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 1.057 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.ParserTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.673 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.ResourceCachingTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.839 sec
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Running org.apache.velocity.test.ResourceLoaderInstanceTestCase
&lt;br&gt;&amp;nbsp; &amp;nbsp; [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0.318 sec
&lt;br&gt;&lt;br&gt;BUILD FAILED
&lt;br&gt;/srv/gump/public/workspace/velocity-engine/build/build.xml:974: Test org.apache.velocity.test.ResourceLoaderInstanceTestCase failed
&lt;br&gt;&lt;br&gt;Total time: 47 seconds
&lt;br&gt;---------------------------------------------
&lt;br&gt;&lt;br&gt;To subscribe to this information via syndicated feeds:
&lt;br&gt;- RSS: &lt;a href=&quot;http://vmgump.apache.org/gump/public/velocity-engine/velocity-engine-test/rss.xml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://vmgump.apache.org/gump/public/velocity-engine/velocity-engine-test/rss.xml&lt;/a&gt;&lt;br&gt;- Atom: &lt;a href=&quot;http://vmgump.apache.org/gump/public/velocity-engine/velocity-engine-test/atom.xml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://vmgump.apache.org/gump/public/velocity-engine/velocity-engine-test/atom.xml&lt;/a&gt;&lt;br&gt;&lt;br&gt;============================== Gump Tracking Only ===
&lt;br&gt;Produced by Gump version 2.3.
&lt;br&gt;Gump Run 01010004072008, vmgump:vmgump-public:01010004072008
&lt;br&gt;Gump E-mail Identifier (unique within run) #19.
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Apache Gump
&lt;br&gt;&lt;a href=&quot;http://gump.apache.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gump.apache.org/&lt;/a&gt;&amp;nbsp;[Instance: vmgump]
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18296054&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18296054&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-GUMP%40vmgump-%3A-Project-velocity-engine-test-%28in-module-velocity-engine%29-failed-tp18296054p18296054.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18270992</id>
	<title>Re: [VOTE] Release VelocityTools 2.0-beta2</title>
	<published>2008-07-03T18:13:50Z</published>
	<updated>2008-07-03T18:13:50Z</updated>
	<author>
		<name>Nathan Bubna</name>
	</author>
	<content type="html">i unilaterally declare the vote extended. &amp;nbsp;no need to roll another
&lt;br&gt;build just yet. &amp;nbsp;i'll gladly await your votes/feedback. :)
&lt;br&gt;&lt;br&gt;On Thu, Jul 3, 2008 at 5:43 PM, Claude Brisson &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;claude@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Looks like I missed it too... but I'll have plenty of time next week to
&lt;br&gt;&amp;gt; check (and actually try!) the beta, should it be this vote (extended) or
&lt;br&gt;&amp;gt; a new one.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;Claude
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Le jeudi 03 juillet 2008 à 17:34 -0700, Will Glass-Husain a écrit :
&lt;br&gt;&amp;gt;&amp;gt; Looks like I missed the vote--sorry! &amp;nbsp;I'm traveling for the holidays;
&lt;br&gt;&amp;gt;&amp;gt; will look at this Saturday if the vote is still open.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; WILL
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Jun 30, 2008 at 9:54 AM, Nathan Bubna &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nbubna@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; There was no negative feedback on the test build (no feedback at all
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; actually), so we're moving on to a vote...
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; The test build is still available here:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &amp;nbsp;&lt;a href=&quot;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; Improved documentation is online here:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &amp;nbsp;&lt;a href=&quot;http://velocity.apache.org/tools/devel/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://velocity.apache.org/tools/devel/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; Please vote regarding your support for releasing this test build as
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; VelocityTools 2.0-beta2:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; [ ] +1 Let's do it
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; [ ] +0 Have fun; i don't care.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; [ ] -0 &amp;nbsp;Not sure about this, but i won't stop you.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; [ ] -1 No, because __________________
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; The voting period is typically 72 hours, putting its close time as
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; roughly 10am PST on Thursday, Jul 3rd. &amp;nbsp;I'll try to push out the
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; release that afternoon if all goes well.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; On Thu, Jun 26, 2008 at 8:36 PM, Nathan Bubna &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nbubna@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; ok folks, here's a build for 2-beta2.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; please kick the tires and report any nitpicks soon. &amp;nbsp;assuming no one
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; sees any problems, i'll call for a release vote this weekend. &amp;nbsp;with
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; luck, that vote will close early next week, and i can push this
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; release out.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; thanks,
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; nathan
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; p.s. 2.0 final is getting so close. &amp;nbsp;i can tell some of you are just
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; itching to write some docs or tests or even just give it a thorough
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; look-over and report your thoughts! ;)
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270992&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-VOTE--Release-VelocityTools-2.0-beta2-tp18199795p18270992.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18270735</id>
	<title>Re: [VOTE] Release VelocityTools 2.0-beta2</title>
	<published>2008-07-03T17:43:58Z</published>
	<updated>2008-07-03T17:43:58Z</updated>
	<author>
		<name>CloD</name>
	</author>
	<content type="html">Looks like I missed it too... but I'll have plenty of time next week to
&lt;br&gt;check (and actually try!) the beta, should it be this vote (extended) or
&lt;br&gt;a new one.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; Claude
&lt;br&gt;&lt;br&gt;Le jeudi 03 juillet 2008 à 17:34 -0700, Will Glass-Husain a écrit :
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Looks like I missed the vote--sorry! &amp;nbsp;I'm traveling for the holidays;
&lt;br&gt;&amp;gt; will look at this Saturday if the vote is still open.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; WILL
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Mon, Jun 30, 2008 at 9:54 AM, Nathan Bubna &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270735&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nbubna@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; There was no negative feedback on the test build (no feedback at all
&lt;br&gt;&amp;gt; &amp;gt; actually), so we're moving on to a vote...
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The test build is still available here:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp;&lt;a href=&quot;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Improved documentation is online here:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp;&lt;a href=&quot;http://velocity.apache.org/tools/devel/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://velocity.apache.org/tools/devel/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Please vote regarding your support for releasing this test build as
&lt;br&gt;&amp;gt; &amp;gt; VelocityTools 2.0-beta2:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; [ ] +1 Let's do it
&lt;br&gt;&amp;gt; &amp;gt; [ ] +0 Have fun; i don't care.
&lt;br&gt;&amp;gt; &amp;gt; [ ] -0 &amp;nbsp;Not sure about this, but i won't stop you.
&lt;br&gt;&amp;gt; &amp;gt; [ ] -1 No, because __________________
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The voting period is typically 72 hours, putting its close time as
&lt;br&gt;&amp;gt; &amp;gt; roughly 10am PST on Thursday, Jul 3rd. &amp;nbsp;I'll try to push out the
&lt;br&gt;&amp;gt; &amp;gt; release that afternoon if all goes well.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Thu, Jun 26, 2008 at 8:36 PM, Nathan Bubna &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270735&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nbubna@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ok folks, here's a build for 2-beta2.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; please kick the tires and report any nitpicks soon. &amp;nbsp;assuming no one
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; sees any problems, i'll call for a release vote this weekend. &amp;nbsp;with
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; luck, that vote will close early next week, and i can push this
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; release out.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; thanks,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; nathan
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; p.s. 2.0 final is getting so close. &amp;nbsp;i can tell some of you are just
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; itching to write some docs or tests or even just give it a thorough
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; look-over and report your thoughts! ;)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270735&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270735&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270735&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270735&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-VOTE--Release-VelocityTools-2.0-beta2-tp18199795p18270735.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18270656</id>
	<title>Re: [VOTE] Release VelocityTools 2.0-beta2</title>
	<published>2008-07-03T17:34:16Z</published>
	<updated>2008-07-03T17:34:16Z</updated>
	<author>
		<name>wglass</name>
	</author>
	<content type="html">Looks like I missed the vote--sorry! &amp;nbsp;I'm traveling for the holidays;
&lt;br&gt;will look at this Saturday if the vote is still open.
&lt;br&gt;&lt;br&gt;WILL
&lt;br&gt;&lt;br&gt;On Mon, Jun 30, 2008 at 9:54 AM, Nathan Bubna &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270656&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nbubna@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; There was no negative feedback on the test build (no feedback at all
&lt;br&gt;&amp;gt; actually), so we're moving on to a vote...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The test build is still available here:
&lt;br&gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Improved documentation is online here:
&lt;br&gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;http://velocity.apache.org/tools/devel/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://velocity.apache.org/tools/devel/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Please vote regarding your support for releasing this test build as
&lt;br&gt;&amp;gt; VelocityTools 2.0-beta2:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [ ] +1 Let's do it
&lt;br&gt;&amp;gt; [ ] +0 Have fun; i don't care.
&lt;br&gt;&amp;gt; [ ] -0 &amp;nbsp;Not sure about this, but i won't stop you.
&lt;br&gt;&amp;gt; [ ] -1 No, because __________________
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The voting period is typically 72 hours, putting its close time as
&lt;br&gt;&amp;gt; roughly 10am PST on Thursday, Jul 3rd. &amp;nbsp;I'll try to push out the
&lt;br&gt;&amp;gt; release that afternoon if all goes well.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Thu, Jun 26, 2008 at 8:36 PM, Nathan Bubna &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270656&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nbubna@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; ok folks, here's a build for 2-beta2.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~nbubna/velocity/tools/2.0-beta2/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; please kick the tires and report any nitpicks soon. &amp;nbsp;assuming no one
&lt;br&gt;&amp;gt;&amp;gt; sees any problems, i'll call for a release vote this weekend. &amp;nbsp;with
&lt;br&gt;&amp;gt;&amp;gt; luck, that vote will close early next week, and i can push this
&lt;br&gt;&amp;gt;&amp;gt; release out.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; thanks,
&lt;br&gt;&amp;gt;&amp;gt; nathan
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; p.s. 2.0 final is getting so close. &amp;nbsp;i can tell some of you are just
&lt;br&gt;&amp;gt;&amp;gt; itching to write some docs or tests or even just give it a thorough
&lt;br&gt;&amp;gt;&amp;gt; look-over and report your thoughts! ;)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270656&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270656&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Forio Business Simulations
&lt;br&gt;&lt;br&gt;Will Glass-Husain
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270656&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wglass@...&lt;/a&gt;
&lt;br&gt;www.forio.com
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270656&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270656&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-VOTE--Release-VelocityTools-2.0-beta2-tp18199795p18270656.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18270443</id>
	<title>[jira] Commented: (VELTOOLS-94) Document standard use cases with J2EE filters</title>
	<published>2008-07-03T17:10:45Z</published>
	<updated>2008-07-03T17:10:45Z</updated>
	<author>
		<name>Velocity - Dev mailing list-2</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/VELTOOLS-94?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12610383#action_12610383&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/VELTOOLS-94?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12610383#action_12610383&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Nathan Bubna commented on VELTOOLS-94:
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;As of revision 673880, you can now tell ServletUtils to use a VelocityView subclass by adding an init-param with the key of
&lt;br&gt;&lt;br&gt;org.apache.velocity.tools.view.class
&lt;br&gt;&lt;br&gt;and a value of the subclass' canonical class name. &amp;nbsp;This makes it much easier to override things in VelocityView that used to be in VelocityViewServlet.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Document standard use cases with J2EE filters
&lt;br&gt;&amp;gt; ---------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: VELTOOLS-94
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/VELTOOLS-94&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/VELTOOLS-94&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Velocity Tools
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Documentation
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 2.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: all
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Claude Brisson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (yet another docs reminder...)
&lt;br&gt;&amp;gt; There are some use cases concerning J2EE filters that I'd like to address/document before releasing 2.0 final:
&lt;br&gt;&amp;gt; 1. sharing the VelocityView with filters - made very easy in 2.x, using:
&lt;br&gt;&amp;gt; view = (VelocityView)servletContext.getAttribute(VelocityView.class.getName())
&lt;br&gt;&amp;gt; but the loat-a-startup flag must be set on the servlets for the view to be initialized at the time the filter is called.
&lt;br&gt;&amp;gt; [BTW, the VelocityView(ServletContext) exists but is not yet fully coded - init is not yet called. We should either comment it for now or refactor VV.init/configure to work either with a ServletConfig or ServletContext. Personally I don't need it at all.]
&lt;br&gt;&amp;gt; 2. having a filter add objects in the context: very easy, objects should be put in targeted scopes using request/session/application attributes.
&lt;br&gt;&amp;gt; 3. having a filter add a tools property (that will be added to newly created request/session tools using bean setters or configure): I'm not really sure about this one. With the current codebase, it is necessary to subclass both the VV and the ToolboxFactory to circumvent protected accesses to be able to do sthing like this:
&lt;br&gt;&amp;gt; VV.getToolboxFactory().putProperties(scope,props)
&lt;br&gt;&amp;gt; I'd vote for having those two methods made public.
&lt;br&gt;&amp;gt; [BTW, subclassing of the VV also requires for now the subclassing of the VVS... maybe ServletUtils.getVelocityView could check a configuration property like &amp;quot;velocity.tools.view.class=&amp;quot; containing the classname of the VelocityView subclass to be used]
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270443&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18270443&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28VELTOOLS-94%29-Document-standard-use-cases-with-J2EE-filters-tp14487690p18270443.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18267543</id>
	<title>Re: Velocity arg init issue</title>
	<published>2008-07-03T13:22:04Z</published>
	<updated>2008-07-03T13:22:04Z</updated>
	<author>
		<name>wglass</name>
	</author>
	<content type="html">Thanks, Serge. &amp;nbsp;I'd pulled up the code and was really quite puzzled.
&lt;br&gt;Sounds like kind of a neat approach you are taking.
&lt;br&gt;&lt;br&gt;WILL
&lt;br&gt;&lt;br&gt;On Thu, Jul 3, 2008 at 1:18 PM, Serge Knystautas &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sknystautas@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Wow, figured this one out. :( &amp;nbsp;I doubt anyone else will hit this, but
&lt;br&gt;&amp;gt; wanted to post it so nobody else wastes their time on this.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The issue is that when the Macro directive initializes itself, when it
&lt;br&gt;&amp;gt; comes across a macro with args, it creates a VMProxyArg. &amp;nbsp;For reasons
&lt;br&gt;&amp;gt; I don't (need to) grasp, it creates some temporary velocity code that
&lt;br&gt;&amp;gt; uses the Include directive and does a quick parse/evaluate on it.
&lt;br&gt;&amp;gt; Once I re-enabled the include directive, things worked again.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Serge Knystautas
&lt;br&gt;&amp;gt; Lokitech &amp;gt;&amp;gt; software . strategy . design &amp;gt;&amp;gt; &lt;a href=&quot;http://www.lokitech.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.lokitech.com&lt;/a&gt;&lt;br&gt;&amp;gt; p. 301.656.5501
&lt;br&gt;&amp;gt; e. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sergek@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Thu, Jul 3, 2008 at 1:28 PM, Serge Knystautas &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sknystautas@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; This is a pretty far out question, but maybe someone could point me in
&lt;br&gt;&amp;gt;&amp;gt; the right direction.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; As I mentioned a few weeks back, I realized the ResourceLoader concept
&lt;br&gt;&amp;gt;&amp;gt; doesn't fit my CMS, so I began to access the core API. &amp;nbsp;I basically
&lt;br&gt;&amp;gt;&amp;gt; completely rewrote my own RuntimeInstance (my class implements
&lt;br&gt;&amp;gt;&amp;gt; RuntimeServices) and just about everything I need works... VTL is
&lt;br&gt;&amp;gt;&amp;gt; found, parsed, rendered, context variables work, foreach directive,
&lt;br&gt;&amp;gt;&amp;gt; etc...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; One issue I have is with Macro arguments. &amp;nbsp;The macro directive is
&lt;br&gt;&amp;gt;&amp;gt; enabled, initialized, my vmfactory works, and I can create and use 0
&lt;br&gt;&amp;gt;&amp;gt; argument macros just fine. &amp;nbsp;It also works that if I define a 1
&lt;br&gt;&amp;gt;&amp;gt; argument macro and use the macro with 2 arguments, it gives the
&lt;br&gt;&amp;gt;&amp;gt; appropriate error that I passed the wrong number of arguments (I have
&lt;br&gt;&amp;gt;&amp;gt; velocimacro.arguments.strict true).
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; However, when I create a macro with more than 0 arguments and use it
&lt;br&gt;&amp;gt;&amp;gt; correctly, I get this stack trace I can't understand. &amp;nbsp;I must be not
&lt;br&gt;&amp;gt;&amp;gt; initializing something somehow, but it's so many levels removed, I'm
&lt;br&gt;&amp;gt;&amp;gt; not quite sure what's going on.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; java.lang.NullPointerException
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.parser.node.SimpleNode.jjtGetChild(SimpleNode.java:172)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VMProxyArg.setup(VMProxyArg.java:409)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VMProxyArg.&amp;lt;init&amp;gt;(VMProxyArg.java:136)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VelocimacroProxy.setupProxyArgs(VelocimacroProxy.java:401)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VelocimacroProxy.setupMacro(VelocimacroProxy.java:321)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VelocimacroProxy.init(VelocimacroProxy.java:309)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.parser.node.ASTDirective.init(ASTDirective.java:134)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.parser.node.SimpleNode.init(SimpleNode.java:285)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The VTL in question is:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; =======================================================
&lt;br&gt;&amp;gt;&amp;gt; #macro (stuff $arg1)
&lt;br&gt;&amp;gt;&amp;gt; Hello stuff $arg1
&lt;br&gt;&amp;gt;&amp;gt; #end
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; #macro (foo)
&lt;br&gt;&amp;gt;&amp;gt; Foooooo
&lt;br&gt;&amp;gt;&amp;gt; #end
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; #foo() &amp;nbsp;## This works!
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; #stuff(&amp;quot;foo&amp;quot;) &amp;nbsp;## This gives the above stack trace
&lt;br&gt;&amp;gt;&amp;gt; =======================================================
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If anyone has any pointers on what this might be looking for, I would
&lt;br&gt;&amp;gt;&amp;gt; greatly appreciate it.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Serge Knystautas
&lt;br&gt;&amp;gt;&amp;gt; Lokitech &amp;gt;&amp;gt; software . strategy . design &amp;gt;&amp;gt; &lt;a href=&quot;http://www.lokitech.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.lokitech.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; p. 301.656.5501
&lt;br&gt;&amp;gt;&amp;gt; e. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sergek@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Forio Business Simulations
&lt;br&gt;&lt;br&gt;Will Glass-Husain
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wglass@...&lt;/a&gt;
&lt;br&gt;www.forio.com
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267543&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Velocity-arg-init-issue-tp18264452p18267543.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18267504</id>
	<title>Re: Velocity arg init issue</title>
	<published>2008-07-03T13:18:57Z</published>
	<updated>2008-07-03T13:18:57Z</updated>
	<author>
		<name>Serge Knystautas-2</name>
	</author>
	<content type="html">Wow, figured this one out. :( &amp;nbsp;I doubt anyone else will hit this, but
&lt;br&gt;wanted to post it so nobody else wastes their time on this.
&lt;br&gt;&lt;br&gt;The issue is that when the Macro directive initializes itself, when it
&lt;br&gt;comes across a macro with args, it creates a VMProxyArg. &amp;nbsp;For reasons
&lt;br&gt;I don't (need to) grasp, it creates some temporary velocity code that
&lt;br&gt;uses the Include directive and does a quick parse/evaluate on it.
&lt;br&gt;Once I re-enabled the include directive, things worked again.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Serge Knystautas
&lt;br&gt;Lokitech &amp;gt;&amp;gt; software . strategy . design &amp;gt;&amp;gt; &lt;a href=&quot;http://www.lokitech.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.lokitech.com&lt;/a&gt;&lt;br&gt;p. 301.656.5501
&lt;br&gt;e. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267504&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sergek@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;On Thu, Jul 3, 2008 at 1:28 PM, Serge Knystautas &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267504&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sknystautas@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; This is a pretty far out question, but maybe someone could point me in
&lt;br&gt;&amp;gt; the right direction.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As I mentioned a few weeks back, I realized the ResourceLoader concept
&lt;br&gt;&amp;gt; doesn't fit my CMS, so I began to access the core API. &amp;nbsp;I basically
&lt;br&gt;&amp;gt; completely rewrote my own RuntimeInstance (my class implements
&lt;br&gt;&amp;gt; RuntimeServices) and just about everything I need works... VTL is
&lt;br&gt;&amp;gt; found, parsed, rendered, context variables work, foreach directive,
&lt;br&gt;&amp;gt; etc...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; One issue I have is with Macro arguments. &amp;nbsp;The macro directive is
&lt;br&gt;&amp;gt; enabled, initialized, my vmfactory works, and I can create and use 0
&lt;br&gt;&amp;gt; argument macros just fine. &amp;nbsp;It also works that if I define a 1
&lt;br&gt;&amp;gt; argument macro and use the macro with 2 arguments, it gives the
&lt;br&gt;&amp;gt; appropriate error that I passed the wrong number of arguments (I have
&lt;br&gt;&amp;gt; velocimacro.arguments.strict true).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; However, when I create a macro with more than 0 arguments and use it
&lt;br&gt;&amp;gt; correctly, I get this stack trace I can't understand. &amp;nbsp;I must be not
&lt;br&gt;&amp;gt; initializing something somehow, but it's so many levels removed, I'm
&lt;br&gt;&amp;gt; not quite sure what's going on.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; java.lang.NullPointerException
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.parser.node.SimpleNode.jjtGetChild(SimpleNode.java:172)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VMProxyArg.setup(VMProxyArg.java:409)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VMProxyArg.&amp;lt;init&amp;gt;(VMProxyArg.java:136)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VelocimacroProxy.setupProxyArgs(VelocimacroProxy.java:401)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VelocimacroProxy.setupMacro(VelocimacroProxy.java:321)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.directive.VelocimacroProxy.init(VelocimacroProxy.java:309)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.parser.node.ASTDirective.init(ASTDirective.java:134)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.velocity.runtime.parser.node.SimpleNode.init(SimpleNode.java:285)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The VTL in question is:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; =======================================================
&lt;br&gt;&amp;gt; #macro (stuff $arg1)
&lt;br&gt;&amp;gt; Hello stuff $arg1
&lt;br&gt;&amp;gt; #end
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; #macro (foo)
&lt;br&gt;&amp;gt; Foooooo
&lt;br&gt;&amp;gt; #end
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; #foo() &amp;nbsp;## This works!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; #stuff(&amp;quot;foo&amp;quot;) &amp;nbsp;## This gives the above stack trace
&lt;br&gt;&amp;gt; =======================================================
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If anyone has any pointers on what this might be looking for, I would
&lt;br&gt;&amp;gt; greatly appreciate it.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Serge Knystautas
&lt;br&gt;&amp;gt; Lokitech &amp;gt;&amp;gt; software . strategy . design &amp;gt;&amp;gt; &lt;a href=&quot;http://www.lokitech.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.lokitech.com&lt;/a&gt;&lt;br&gt;&amp;gt; p. 301.656.5501
&lt;br&gt;&amp;gt; e. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267504&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sergek@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267504&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18267504&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Velocity-arg-init-issue-tp18264452p18267504.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18264452</id>
	<title>Velocity arg init issue</title>
	<published>2008-07-03T10:28:25Z</published>
	<updated>2008-07-03T10:28:25Z</updated>
	<author>
		<name>Serge Knystautas-2</name>
	</author>
	<content type="html">This is a pretty far out question, but maybe someone could point me in
&lt;br&gt;the right direction.
&lt;br&gt;&lt;br&gt;As I mentioned a few weeks back, I realized the ResourceLoader concept
&lt;br&gt;doesn't fit my CMS, so I began to access the core API. &amp;nbsp;I basically
&lt;br&gt;completely rewrote my own RuntimeInstance (my class implements
&lt;br&gt;RuntimeServices) and just about everything I need works... VTL is
&lt;br&gt;found, parsed, rendered, context variables work, foreach directive,
&lt;br&gt;etc...
&lt;br&gt;&lt;br&gt;One issue I have is with Macro arguments. &amp;nbsp;The macro directive is
&lt;br&gt;enabled, initialized, my vmfactory works, and I can create and use 0
&lt;br&gt;argument macros just fine. &amp;nbsp;It also works that if I define a 1
&lt;br&gt;argument macro and use the macro with 2 arguments, it gives the
&lt;br&gt;appropriate error that I passed the wrong number of arguments (I have
&lt;br&gt;velocimacro.arguments.strict true).
&lt;br&gt;&lt;br&gt;However, when I create a macro with more than 0 arguments and use it
&lt;br&gt;correctly, I get this stack trace I can't understand. &amp;nbsp;I must be not
&lt;br&gt;initializing something somehow, but it's so many levels removed, I'm
&lt;br&gt;not quite sure what's going on.
&lt;br&gt;&lt;br&gt;java.lang.NullPointerException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.velocity.runtime.parser.node.SimpleNode.jjtGetChild(SimpleNode.java:172)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.velocity.runtime.directive.VMProxyArg.setup(VMProxyArg.java:409)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.velocity.runtime.directive.VMProxyArg.&amp;lt;init&amp;gt;(VMProxyArg.java:136)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.velocity.runtime.directive.VelocimacroProxy.setupProxyArgs(VelocimacroProxy.java:401)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.velocity.runtime.directive.VelocimacroProxy.setupMacro(VelocimacroProxy.java:321)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.velocity.runtime.directive.VelocimacroProxy.init(VelocimacroProxy.java:309)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.velocity.runtime.parser.node.ASTDirective.init(ASTDirective.java:134)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.velocity.runtime.parser.node.SimpleNode.init(SimpleNode.java:285)
&lt;br&gt;&lt;br&gt;The VTL in question is:
&lt;br&gt;&lt;br&gt;=======================================================
&lt;br&gt;#macro (stuff $arg1)
&lt;br&gt;Hello stuff $arg1
&lt;br&gt;#end
&lt;br&gt;&lt;br&gt;#macro (foo)
&lt;br&gt;Foooooo
&lt;br&gt;#end
&lt;br&gt;&lt;br&gt;#foo() &amp;nbsp;## This works!
&lt;br&gt;&lt;br&gt;#stuff(&amp;quot;foo&amp;quot;) &amp;nbsp;## This gives the above stack trace
&lt;br&gt;=======================================================
&lt;br&gt;&lt;br&gt;If anyone has any pointers on what this might be looking for, I would
&lt;br&gt;greatly appreciate it.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Serge Knystautas
&lt;br&gt;Lokitech &amp;gt;&amp;gt; software . strategy . design &amp;gt;&amp;gt; &lt;a href=&quot;http://www.lokitech.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.lokitech.com&lt;/a&gt;&lt;br&gt;p. 301.656.5501
&lt;br&gt;e. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18264452&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sergek@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18264452&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18264452&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Velocity-arg-init-issue-tp18264452p18264452.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18246467</id>
	<title>Re: Results from a security audit</title>
	<published>2008-07-02T13:47:10Z</published>
	<updated>2008-07-02T13:47:10Z</updated>
	<author>
		<name>Tom Jenkins-5</name>
	</author>
	<content type="html">On Wed, Jul 2, 2008 at 4:21 PM, Nathan Bubna &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18246467&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nbubna@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, Jul 2, 2008 at 12:59 PM, Will Glass-Husain
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18246467&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wglasshusain@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; Should Velocity be sanity checking these type of arguments in internal
&lt;br&gt;&amp;gt; &amp;gt; functions? &amp;nbsp;I open that question to our other experienced developers.
&lt;br&gt;&amp;gt; &amp;gt; Henning has advocated null checking in the past, perhaps this is a
&lt;br&gt;&amp;gt; similar
&lt;br&gt;&amp;gt; &amp;gt; issue.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; no thanks. &amp;nbsp;what would we do if we spotted such an overflow? &amp;nbsp;throw an
&lt;br&gt;&amp;gt; error, but that's already what will happen. &amp;nbsp;we could perhaps put a
&lt;br&gt;&amp;gt; more explanatory error message in place, but in most cases described,
&lt;br&gt;&amp;gt; the user is doing something very extreme to cause it. &amp;nbsp;i expect it
&lt;br&gt;&amp;gt; should be pretty obvious to them that their 2+ million argument method
&lt;br&gt;&amp;gt; call or macro or 2+ million node template might be the source of their
&lt;br&gt;&amp;gt; problem. &amp;nbsp; i also have never heard of anyone running across these in
&lt;br&gt;&amp;gt; all of my many years reading these lists. &amp;nbsp;i don't think it's worth
&lt;br&gt;&amp;gt; the effort. &amp;nbsp;the Parser and VelocityCharStream ones are perhaps a bit
&lt;br&gt;&amp;gt; more likely to occur, but again, i have not heard of that happening.
&lt;br&gt;&amp;gt; i say leave them be.
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;I concur with Nathan. &amp;nbsp;Given that these exceptions would be triggered on
&lt;br&gt;theoretically possible circumstances but realistically insane practice I see
&lt;br&gt;no reason to waste anyone's time on it. &amp;nbsp;I have enough information from this
&lt;br&gt;discussion to state that case then turn it around on them and make them
&lt;br&gt;explain their risk assessment.
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Regarding WebMacro in the velocity.jar. This is a utility class, intended
&lt;br&gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt; help WebMacro users migrate to Velocity. &amp;nbsp;Does your app permit users to
&lt;br&gt;&amp;gt; call
&lt;br&gt;&amp;gt; &amp;gt; main methods? &amp;nbsp; If not, doesn't seem significant. &amp;nbsp;If your security
&lt;br&gt;&amp;gt; concerns
&lt;br&gt;&amp;gt; &amp;gt; are strong enough to warrant removal of this method, I recommend creating
&lt;br&gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt; simple ant script to do a custom build of the Velocity jar that removes
&lt;br&gt;&amp;gt; this
&lt;br&gt;&amp;gt; &amp;gt; class. &amp;nbsp;(There are no dependencies on it).
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;No we don't allow calls to main methods. &amp;nbsp;Removing WebMacro from the jar is
&lt;br&gt;easy enough to do. &amp;nbsp;(though not at a security concern, more a client
&lt;br&gt;management concern)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Regarding the use of Random in Math.tools. &amp;nbsp;It's simply a pass through to
&lt;br&gt;&amp;gt; &amp;gt; the Java function. &amp;nbsp;No worse or better than Java. &amp;nbsp;Don't like it? &amp;nbsp;Don't
&lt;br&gt;&amp;gt; &amp;gt; configure your app to use MathTools. &amp;nbsp;Write your own tool-- it's easy.
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;Nope, we don't use it. &amp;nbsp;Looks like its not used for anything worrisome from
&lt;br&gt;your end so I'm not worried.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I think it's unlikely we'll remove error messages from the log files. &amp;nbsp;We
&lt;br&gt;&amp;gt; &amp;gt; find most users of Velocity find these helpful. &amp;nbsp;If this is an issue,
&lt;br&gt;&amp;gt; &amp;gt; comment them out and recompile the code. &amp;nbsp; &amp;nbsp;Or (if you don't want to fork
&lt;br&gt;&amp;gt; &amp;gt; the source) create a custom logger that ignores those comments.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;Not a major deal to me. &amp;nbsp;Hope that these lows didn't come across as being
&lt;br&gt;considered a real issue to me
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; One more suggestion to Tom. &amp;nbsp;It seems that the integer overflow issues
&lt;br&gt;&amp;gt; are
&lt;br&gt;&amp;gt; &amp;gt; probably the most troubling to your auditors. &amp;nbsp;It's unlikely we'll
&lt;br&gt;&amp;gt; rapidly
&lt;br&gt;&amp;gt; &amp;gt; change these (low priority to the rest of us). &amp;nbsp;However, if you or a
&lt;br&gt;&amp;gt; &amp;gt; colleague were to go through these 9 methods and add argument-checking
&lt;br&gt;&amp;gt; code,
&lt;br&gt;&amp;gt; &amp;gt; then submit in a patch, we'd probably add it in to the base. &amp;nbsp;(Would be
&lt;br&gt;&amp;gt; &amp;gt; interesting to get other perspectives on this first).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; i wouldn't veto, but don't expect me to waste any more time on it. :)
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;I'll save that as a backup plan. &amp;nbsp;Given the discussion above, I don't see it
&lt;br&gt;having to come to that.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Again, thanks all for taking the time. &amp;nbsp;I appreciate it.
&lt;br&gt;&lt;br&gt;Tom
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Results-from-a-security-audit-tp18243177p18246467.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18246301</id>
	<title>Re: Results from a security audit</title>
	<published>2008-07-02T13:38:30Z</published>
	<updated>2008-07-02T13:38:30Z</updated>
	<author>
		<name>Adrian Tarau</name>
	</author>
	<content type="html">I agree with Will &amp; Nathan. I don't know what tool they used, but it 
&lt;br&gt;doesn't know Java's internals for sure.
&lt;br&gt;Validating user input(when they call the API) is a must but rather than 
&lt;br&gt;that is just insane to check what they suggested. Of course, when some 
&lt;br&gt;(user) parameters are used to allocate memory you should check if the 
&lt;br&gt;value is bellow a reasonable value, just to be sure nobody can bring the 
&lt;br&gt;JVM down(once you got OutOfMemory exception you must presume the 
&lt;br&gt;application is not stable and must be restarted).
&lt;br&gt;&lt;br&gt;Except for an OutOfMemory prevention, any exception(like 
&lt;br&gt;ArrayIndexOutOfBoundsException, NegativeArraySizeException) is welcomed 
&lt;br&gt;and it is a standard way to stop the execution flow.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Tom Jenkins wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I posted on the user list asking where I should bring up the results
&lt;br&gt;&amp;gt; of a 3rd party security audit one of our applications had to go
&lt;br&gt;&amp;gt; through.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; All of these were found through static analysis; no attack vectors are
&lt;br&gt;&amp;gt; known. &amp;nbsp;I'm also unsure of the validity of these results, but I have
&lt;br&gt;&amp;gt; to do my due diligence.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; We're using Velocity 1.5 and Velocity Tools 1.3
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Excuse the formatting...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Very High Risk
&lt;br&gt;&amp;gt; ============
&lt;br&gt;&amp;gt; Integer Overflow (Wrap or Wraparound) (CWE ID 190)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Description
&lt;br&gt;&amp;gt; An integer overflow condition exists when an integer that has not been
&lt;br&gt;&amp;gt; properly sanity checked is used in the determination of an offset or
&lt;br&gt;&amp;gt; size for memory allocation, copying, concatenation, or similarly. If
&lt;br&gt;&amp;gt; the integer in question is incremented past the maximum possible
&lt;br&gt;&amp;gt; value, it may wrap to become a very small, or negative number,
&lt;br&gt;&amp;gt; therefore providing an unintended value. This occurs most commonly in
&lt;br&gt;&amp;gt; arithmetic operations or loop iterations. Integer overflows can often
&lt;br&gt;&amp;gt; result in buffer overflows or data corruption, both of which may be
&lt;br&gt;&amp;gt; potentially exploited to execute arbitrary code.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt; Perform bounds checking to ensure that integers do not exceed the
&lt;br&gt;&amp;gt; maximum possible value.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; File Line
&lt;br&gt;&amp;gt; Macro.java 241
&lt;br&gt;&amp;gt; SimpleNode.java 156
&lt;br&gt;&amp;gt; VelocityCharStream.java 65
&lt;br&gt;&amp;gt; VelocityCharStream.java 67
&lt;br&gt;&amp;gt; VelocityCharStream.java 416
&lt;br&gt;&amp;gt; VelocityCharStream.java 66
&lt;br&gt;&amp;gt; ASTMethod.java 143
&lt;br&gt;&amp;gt; ASTMethod.java 134
&lt;br&gt;&amp;gt; Parser.java 3298
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My analysis:
&lt;br&gt;&amp;gt; Macro:
&lt;br&gt;&amp;gt; ----------
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int numArgs = node.jjtGetNumChildren();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numArgs--; &amp;nbsp;// avoid the block tree...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp;String argArray[] = new String[numArgs];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Looks like the flag is because if jjtGetNumChildren ever returns 0,
&lt;br&gt;&amp;gt; numArgs will be -1. &amp;nbsp;But that will just throw a
&lt;br&gt;&amp;gt; NegativeArraySizeException so there isn't any overflowing. &amp;nbsp;May be
&lt;br&gt;&amp;gt; unintended that it go to -1, however.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; SimpleNode:
&lt;br&gt;&amp;gt; -------------------
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void jjtAddChild(Node n, int i)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (children == null)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; children = new Node[i + 1];
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (i &amp;gt;= children.length)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Theoretically the parameter 'i' could be max int. &amp;nbsp;Not sure if in
&lt;br&gt;&amp;gt; practice this will be an issue. &amp;nbsp;This will wrap, but then we get a
&lt;br&gt;&amp;gt; NegativeArraySizeException.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; VelocityCharStream:
&lt;br&gt;&amp;gt; ------------------------------
&lt;br&gt;&amp;gt; &amp;nbsp; private final void ExpandBuff(boolean wrapAround)
&lt;br&gt;&amp;gt; &amp;nbsp; {
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; char[] newbuffer = new char[bufsize + 2048];
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; int newbufline[] = new int[bufsize + 2048];
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; int newbufcolumn[] = new int[bufsize + 2048];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; All 3 of these array initializations are flagged. &amp;nbsp;Later on in
&lt;br&gt;&amp;gt; ExpandBuff bufsize is incremented by 2048. &amp;nbsp;So again theoretically it
&lt;br&gt;&amp;gt; could wrap.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; VelocityCharStream:
&lt;br&gt;&amp;gt; ------------------------------
&lt;br&gt;&amp;gt; public final char[] GetSuffix(int len)
&lt;br&gt;&amp;gt; &amp;nbsp; {
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; char[] ret = new char[len];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; No idea why this is flagged.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ASTMethod:
&lt;br&gt;&amp;gt; -----------------
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; VelMethod method = null;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object [] params = new Object[paramCount];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /*
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* sadly, we do need recalc the values of the args, as this can
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* change from visit to visit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Class[] paramClasses = paramCount &amp;gt; 0 ? new
&lt;br&gt;&amp;gt; Class[paramCount] : ArrayUtils.EMPTY_CLASS_ARRAY;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; paramCount is set by:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; paramCount = jjtGetNumChildren() - 1;
&lt;br&gt;&amp;gt; so again if that method can return a 0, paramCount will wrap. &amp;nbsp;And
&lt;br&gt;&amp;gt; again a NegativeArraySizeException.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Parser:
&lt;br&gt;&amp;gt; ----------
&lt;br&gt;&amp;gt; &amp;nbsp; private void jj_add_error_token(int kind, int pos) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; if (pos &amp;gt;= 100) return;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; if (pos == jj_endpos + 1) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; jj_lasttokens[jj_endpos++] = kind;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; } else if (jj_endpos != 0) {
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentry = new int[jj_endpos];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Again, theoretically jj_endpos could get so large as to wrap. &amp;nbsp;And
&lt;br&gt;&amp;gt; again a NegativeArraySizeException.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any suggestions on how to position these 9 in my meeting with the
&lt;br&gt;&amp;gt; client and auditors? &amp;nbsp;The fact that an exception is thrown (though I
&lt;br&gt;&amp;gt; haven't specifically tested these methods) has got to alleviate some
&lt;br&gt;&amp;gt; of the client panic. &amp;nbsp;Though what &amp;nbsp;does concern me is that knowing an
&lt;br&gt;&amp;gt; exception should be thrown here, why is the auditor marking these as
&lt;br&gt;&amp;gt; Very High?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Medium Risk
&lt;br&gt;&amp;gt; ==========
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Leftover Debug Code (CWE ID 489)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Description
&lt;br&gt;&amp;gt; A method may be leftover debug code that creates an unintended entry
&lt;br&gt;&amp;gt; point in a web application. Although this is an acceptable practice
&lt;br&gt;&amp;gt; during product development, classes that are part of a production J2EE
&lt;br&gt;&amp;gt; application should not define a main() method. Whether this method can
&lt;br&gt;&amp;gt; be remotely invoked depends on the configuration of the J2EE container
&lt;br&gt;&amp;gt; and the application itself.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt; A method may be leftover debug code that creates an unintended entry
&lt;br&gt;&amp;gt; point in a web application. Although this is an acceptable practice
&lt;br&gt;&amp;gt; during product development, classes that are part of a production J2EE
&lt;br&gt;&amp;gt; application should not define a main() method. Whether this method can
&lt;br&gt;&amp;gt; be remotely invoked depends on the configuration of the J2EE container
&lt;br&gt;&amp;gt; and the application itself.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; File Line
&lt;br&gt;&amp;gt; WebMacro.java 297
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Won't post the code; simply put there is a main() method there. &amp;nbsp;We
&lt;br&gt;&amp;gt; don't reference WebMacro anywhere (that I can see) but its in the
&lt;br&gt;&amp;gt; velocity jar so it popped out on the scan.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also want to note that WebMacro &amp;quot;failed&amp;quot; another test - External
&lt;br&gt;&amp;gt; Control of File Name or Path (CWE ID 73). &amp;nbsp;But as this class isn't
&lt;br&gt;&amp;gt; used that I can see I won't include that &amp;quot;failure&amp;quot;.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Does WebMacro have to be in the velocity jar?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ++++++++++++++++++++++++++++++
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Failure to Sanitize Script-Related HTML Tags in a Web Page (Basic XSS)
&lt;br&gt;&amp;gt; (CWE ID 80)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Description
&lt;br&gt;&amp;gt; This call contains a cross-site scripting (XSS) flaw. The application
&lt;br&gt;&amp;gt; populates the HTTP response with user-supplied input, allowing an
&lt;br&gt;&amp;gt; attacker to embed malicious content, such as Javascript code, which
&lt;br&gt;&amp;gt; will be executed in the context of the victim's browser. XSS
&lt;br&gt;&amp;gt; vulnerabilities are commonly exploited to steal or manipulate cookies,
&lt;br&gt;&amp;gt; modify presentation of content, and compromise confidential
&lt;br&gt;&amp;gt; information, with new attack vectors being discovered on a regular
&lt;br&gt;&amp;gt; basis.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt; Use HTML entities to encode all non-alphanumeric user-supplied data
&lt;br&gt;&amp;gt; when using it to construct an HTTP response. Always validate
&lt;br&gt;&amp;gt; user-supplied input to ensure that it conforms to the expected format,
&lt;br&gt;&amp;gt; using centralized data validation routines when possible.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; File Line
&lt;br&gt;&amp;gt; VelocityViewServlet.java 814
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It looks like a change was made to the servlet to add escapeHtml
&lt;br&gt;&amp;gt; (r480851) in 1.3. &amp;nbsp;Not sure why it was flagged. &amp;nbsp;Either way, it looks
&lt;br&gt;&amp;gt; like an upgrade of velocity tools will solve that one for us.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ++++++++++++++++++++++++++++++
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Insufficient Entropy (CWE ID 331)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Description
&lt;br&gt;&amp;gt; Standard random number generators do not provide a sufficient amount
&lt;br&gt;&amp;gt; of entropy when used for security purposes. Attackers can brute force
&lt;br&gt;&amp;gt; the output of pseudorandom number generators such as rand().
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt; If this random number is used where security is a concern, such as
&lt;br&gt;&amp;gt; generating a session key or session identifier, use a trusted
&lt;br&gt;&amp;gt; cryptographic random number generator instead. These can be found on
&lt;br&gt;&amp;gt; the Windows platform in the CryptoAPI or in an open source library
&lt;br&gt;&amp;gt; such as OpenSSL.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; File Line
&lt;br&gt;&amp;gt; MathTool.java 361
&lt;br&gt;&amp;gt; MathTool.java 364
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Both of these lines have Math.random(). &amp;nbsp;The audit tool just doesn't
&lt;br&gt;&amp;gt; like Math.random() at all. &amp;nbsp;Not sure what MathTool.getRandom() or
&lt;br&gt;&amp;gt; MathTool.random() are used for internally. &amp;nbsp;As an aside, I have
&lt;br&gt;&amp;gt; changed (because we got dinged on it also) to using SecureRandom which
&lt;br&gt;&amp;gt; I believe will pass this test.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Low Risk
&lt;br&gt;&amp;gt; ==========
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Error Message Information Leaks (CWE ID 209)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Description
&lt;br&gt;&amp;gt; Due to the fact that SOAP relies on XML data from the user, it is
&lt;br&gt;&amp;gt; possible for the user to submit an invalid XML document to attack the
&lt;br&gt;&amp;gt; parsing routines which can cause buffer overrun and/or denial of
&lt;br&gt;&amp;gt; service attacks. The SOAP service library is responsible for
&lt;br&gt;&amp;gt; converting the data into language specific data types. Users could
&lt;br&gt;&amp;gt; attack this layer by utilizing an understanding of the back end
&lt;br&gt;&amp;gt; languages limitations and the weaknesses in the SOAP libraries string
&lt;br&gt;&amp;gt; to data type conversion process. After getting past all the SOAP
&lt;br&gt;&amp;gt; specific processes your application logic can be attacked with normal
&lt;br&gt;&amp;gt; input attacks, such as providing a negative number value when your
&lt;br&gt;&amp;gt; software is expecting a standard number value and is ill equipped to
&lt;br&gt;&amp;gt; handle it, or even general SQL Injection attacks.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt; Make sure you are using the latest security patched parsing engine
&lt;br&gt;&amp;gt; available and that you are trapping and handling all errors due to
&lt;br&gt;&amp;gt; parsing problems and responding to the user gracefully. Make sure you
&lt;br&gt;&amp;gt; are using the latest security patched SOAP library available and that
&lt;br&gt;&amp;gt; you are trapping and handling all errors due to data type conversion
&lt;br&gt;&amp;gt; problems and responding to the user gracefully. It is important to use
&lt;br&gt;&amp;gt; strong definitions of expected data types to avoid having attacks get
&lt;br&gt;&amp;gt; to the next layer. Your application logic must validate all data
&lt;br&gt;&amp;gt; coming in. Do not rely on the SOAP library to handle this for you,
&lt;br&gt;&amp;gt; unless it has specific features to do so. Like any web application
&lt;br&gt;&amp;gt; development, it is important to consider all input from a user to be
&lt;br&gt;&amp;gt; dirty until it passes validation and filtering to be specifically the
&lt;br&gt;&amp;gt; type of input expected.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; File Line
&lt;br&gt;&amp;gt; SystemLogChute.java 142
&lt;br&gt;&amp;gt; StringUtils.java &amp;nbsp;376
&lt;br&gt;&amp;gt; SystemLogChute.java 141
&lt;br&gt;&amp;gt; Generator.java &amp;nbsp;215
&lt;br&gt;&amp;gt; PrintExceptions.java 102
&lt;br&gt;&amp;gt; FieldMethodizer.java 162
&lt;br&gt;&amp;gt; VelocityViewServlet.java 807
&lt;br&gt;&amp;gt; FieldMethodizer.java 92
&lt;br&gt;&amp;gt; Generator.java &amp;nbsp;168
&lt;br&gt;&amp;gt; StringUtils.java &amp;nbsp;489
&lt;br&gt;&amp;gt; SystemLogChute.java 151
&lt;br&gt;&amp;gt; LogSystemCommonsLog.java 156
&lt;br&gt;&amp;gt; StringUtils.java &amp;nbsp;389
&lt;br&gt;&amp;gt; Generator.java &amp;nbsp;520
&lt;br&gt;&amp;gt; VelocityServlet.java 705
&lt;br&gt;&amp;gt; FieldMethodizer.java 114
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm not quite sure what to say about these. &amp;nbsp;I haven't gone through
&lt;br&gt;&amp;gt; them all, but in our files that failed it was because of a call to
&lt;br&gt;&amp;gt; printStackTrace(). &amp;nbsp;Every call to printStackTrace() seems to raise a
&lt;br&gt;&amp;gt; flag with the auditors. &amp;nbsp;We're going to change ours to call a logger.
&lt;br&gt;&amp;gt; Given that these are very low, I'm not too worried about these. &amp;nbsp;But
&lt;br&gt;&amp;gt; for completeness I included them.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hope you could follow this VERY long post.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If anyone has any thoughts or suggestions on how I should proceed I
&lt;br&gt;&amp;gt; would welcome the input.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for your time.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Tom
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18246301&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18246301&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18246301&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18246301&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Results-from-a-security-audit-tp18243177p18246301.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18245955</id>
	<title>Re: Results from a security audit</title>
	<published>2008-07-02T13:21:42Z</published>
	<updated>2008-07-02T13:21:42Z</updated>
	<author>
		<name>Nathan Bubna</name>
	</author>
	<content type="html">On Wed, Jul 2, 2008 at 12:59 PM, Will Glass-Husain
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245955&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wglasshusain@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Thanks, Tom.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; That's interesting. &amp;nbsp;Appreciate the time to compile this list and post it.
&lt;br&gt;&amp;gt; I've posted some thoughts (fairly adhoc) directed to the community, you, and
&lt;br&gt;&amp;gt; your auditors below.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Personally, I wasn't familiar with Integer Overflow errors in Java. &amp;nbsp;I'd
&lt;br&gt;&amp;gt; always assumed the bounds checking took care of this C-like error. &amp;nbsp;I see
&lt;br&gt;&amp;gt; however there are still potential issues. &amp;nbsp; Googling turned up a nice
&lt;br&gt;&amp;gt; summary of the issue here. &amp;nbsp;(very end of page).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.javacoffeebreak.com/books/extracts/javanotesv3/c9/s1.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.javacoffeebreak.com/books/extracts/javanotesv3/c9/s1.html&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Personally, this seems fairly miniscule risk here (&amp;quot;Very High Risk&amp;quot;? hard to
&lt;br&gt;&amp;gt; take that seriously). &amp;nbsp;None of these functions are under the direct control
&lt;br&gt;&amp;gt; of the user. &amp;nbsp;The calls to functions that access nodes are generally
&lt;br&gt;&amp;gt; performed while iterating through a fixed number of nodes. &amp;nbsp;One response to
&lt;br&gt;&amp;gt; this audit would be to check the calls made to each function and confirm the
&lt;br&gt;&amp;gt; arguments are bounded.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Should Velocity be sanity checking these type of arguments in internal
&lt;br&gt;&amp;gt; functions? &amp;nbsp;I open that question to our other experienced developers.
&lt;br&gt;&amp;gt; Henning has advocated null checking in the past, perhaps this is a similar
&lt;br&gt;&amp;gt; issue.
&lt;/div&gt;&lt;br&gt;no thanks. &amp;nbsp;what would we do if we spotted such an overflow? &amp;nbsp;throw an
&lt;br&gt;error, but that's already what will happen. &amp;nbsp;we could perhaps put a
&lt;br&gt;more explanatory error message in place, but in most cases described,
&lt;br&gt;the user is doing something very extreme to cause it. &amp;nbsp;i expect it
&lt;br&gt;should be pretty obvious to them that their 2+ million argument method
&lt;br&gt;call or macro or 2+ million node template might be the source of their
&lt;br&gt;problem. &amp;nbsp; i also have never heard of anyone running across these in
&lt;br&gt;all of my many years reading these lists. &amp;nbsp;i don't think it's worth
&lt;br&gt;the effort. &amp;nbsp;the Parser and VelocityCharStream ones are perhaps a bit
&lt;br&gt;more likely to occur, but again, i have not heard of that happening.
&lt;br&gt;i say leave them be.
&lt;br&gt;&lt;br&gt;&amp;gt; There are other much more significant gotchas. &amp;nbsp;Please be sure to read the
&lt;br&gt;&amp;gt; article Nathan referenced. &amp;nbsp;In particular, if you have third parties
&lt;br&gt;&amp;gt; uploading templates they have the potential to call any Java method on
&lt;br&gt;&amp;gt; objects in the context. &amp;nbsp;Without proper configuration, they can even access
&lt;br&gt;&amp;gt; the ClassLoader and create instantiate new objects (for example, getting a
&lt;br&gt;&amp;gt; File object to access arbitrary files). &amp;nbsp;You need to configure Velocity to
&lt;br&gt;&amp;gt; use the SecureUberspector to prevent this. &amp;nbsp;Also, Velocity contains event
&lt;br&gt;&amp;gt; handlers to automatically escape all references-- this is recommended if
&lt;br&gt;&amp;gt; users enter text.
&lt;br&gt;&lt;br&gt;agreed. &amp;nbsp;their static code analysis missed the greatest risks, despite
&lt;br&gt;their extreme paranoia. &amp;nbsp;if you allow any third party/user content to
&lt;br&gt;be processed by Velocity as VTL (either by user templates or
&lt;br&gt;processing their inputs with the RenderTool), then you really must use
&lt;br&gt;the SecureUberspector or be an expert in controlling java security
&lt;br&gt;permissions at the JVM level. &amp;nbsp;And of course, escaping all user inputs
&lt;br&gt;(either via the event handler or something like EscapeTool) is always
&lt;br&gt;crucial to app security.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Regarding WebMacro in the velocity.jar. This is a utility class, intended to
&lt;br&gt;&amp;gt; help WebMacro users migrate to Velocity. &amp;nbsp;Does your app permit users to call
&lt;br&gt;&amp;gt; main methods? &amp;nbsp; If not, doesn't seem significant. &amp;nbsp;If your security concerns
&lt;br&gt;&amp;gt; are strong enough to warrant removal of this method, I recommend creating a
&lt;br&gt;&amp;gt; simple ant script to do a custom build of the Velocity jar that removes this
&lt;br&gt;&amp;gt; class. &amp;nbsp;(There are no dependencies on it).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regarding VelocityViewServlet-- I'll let Nathan or one of the other Tools
&lt;br&gt;&amp;gt; developers comment.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regarding the use of Random in Math.tools. &amp;nbsp;It's simply a pass through to
&lt;br&gt;&amp;gt; the Java function. &amp;nbsp;No worse or better than Java. &amp;nbsp;Don't like it? &amp;nbsp;Don't
&lt;br&gt;&amp;gt; configure your app to use MathTools. &amp;nbsp;Write your own tool-- it's easy.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I think it's unlikely we'll remove error messages from the log files. &amp;nbsp;We
&lt;br&gt;&amp;gt; find most users of Velocity find these helpful. &amp;nbsp;If this is an issue,
&lt;br&gt;&amp;gt; comment them out and recompile the code. &amp;nbsp; &amp;nbsp;Or (if you don't want to fork
&lt;br&gt;&amp;gt; the source) create a custom logger that ignores those comments.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; One more suggestion to Tom. &amp;nbsp;It seems that the integer overflow issues are
&lt;br&gt;&amp;gt; probably the most troubling to your auditors. &amp;nbsp;It's unlikely we'll rapidly
&lt;br&gt;&amp;gt; change these (low priority to the rest of us). &amp;nbsp;However, if you or a
&lt;br&gt;&amp;gt; colleague were to go through these 9 methods and add argument-checking code,
&lt;br&gt;&amp;gt; then submit in a patch, we'd probably add it in to the base. &amp;nbsp;(Would be
&lt;br&gt;&amp;gt; interesting to get other perspectives on this first).
&lt;/div&gt;&lt;br&gt;i wouldn't veto, but don't expect me to waste any more time on it. :)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp;Then you wouldn't
&lt;br&gt;&amp;gt; have to fork the code. &amp;nbsp;More on how to do this here:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://wiki.apache.org/velocity/GettingYourPatchCommitted&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/velocity/GettingYourPatchCommitted&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Best, WILL
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, Jul 2, 2008 at 10:49 AM, Tom Jenkins &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245955&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tomj.devis@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I posted on the user list asking where I should bring up the results
&lt;br&gt;&amp;gt;&amp;gt; of a 3rd party security audit one of our applications had to go
&lt;br&gt;&amp;gt;&amp;gt; through.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; All of these were found through static analysis; no attack vectors are
&lt;br&gt;&amp;gt;&amp;gt; known. &amp;nbsp;I'm also unsure of the validity of these results, but I have
&lt;br&gt;&amp;gt;&amp;gt; to do my due diligence.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; We're using Velocity 1.5 and Velocity Tools 1.3
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Excuse the formatting...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Very High Risk
&lt;br&gt;&amp;gt;&amp;gt; ============
&lt;br&gt;&amp;gt;&amp;gt; Integer Overflow (Wrap or Wraparound) (CWE ID 190)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Description
&lt;br&gt;&amp;gt;&amp;gt; An integer overflow condition exists when an integer that has not been
&lt;br&gt;&amp;gt;&amp;gt; properly sanity checked is used in the determination of an offset or
&lt;br&gt;&amp;gt;&amp;gt; size for memory allocation, copying, concatenation, or similarly. If
&lt;br&gt;&amp;gt;&amp;gt; the integer in question is incremented past the maximum possible
&lt;br&gt;&amp;gt;&amp;gt; value, it may wrap to become a very small, or negative number,
&lt;br&gt;&amp;gt;&amp;gt; therefore providing an unintended value. This occurs most commonly in
&lt;br&gt;&amp;gt;&amp;gt; arithmetic operations or loop iterations. Integer overflows can often
&lt;br&gt;&amp;gt;&amp;gt; result in buffer overflows or data corruption, both of which may be
&lt;br&gt;&amp;gt;&amp;gt; potentially exploited to execute arbitrary code.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt;&amp;gt; Perform bounds checking to ensure that integers do not exceed the
&lt;br&gt;&amp;gt;&amp;gt; maximum possible value.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; File Line
&lt;br&gt;&amp;gt;&amp;gt; Macro.java 241
&lt;br&gt;&amp;gt;&amp;gt; SimpleNode.java 156
&lt;br&gt;&amp;gt;&amp;gt; VelocityCharStream.java 65
&lt;br&gt;&amp;gt;&amp;gt; VelocityCharStream.java 67
&lt;br&gt;&amp;gt;&amp;gt; VelocityCharStream.java 416
&lt;br&gt;&amp;gt;&amp;gt; VelocityCharStream.java 66
&lt;br&gt;&amp;gt;&amp;gt; ASTMethod.java 143
&lt;br&gt;&amp;gt;&amp;gt; ASTMethod.java 134
&lt;br&gt;&amp;gt;&amp;gt; Parser.java 3298
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; My analysis:
&lt;br&gt;&amp;gt;&amp;gt; Macro:
&lt;br&gt;&amp;gt;&amp;gt; ----------
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int numArgs = node.jjtGetNumChildren();
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numArgs--; &amp;nbsp;// avoid the block tree...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp;String argArray[] = new String[numArgs];
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Looks like the flag is because if jjtGetNumChildren ever returns 0,
&lt;br&gt;&amp;gt;&amp;gt; numArgs will be -1. &amp;nbsp;But that will just throw a
&lt;br&gt;&amp;gt;&amp;gt; NegativeArraySizeException so there isn't any overflowing. &amp;nbsp;May be
&lt;br&gt;&amp;gt;&amp;gt; unintended that it go to -1, however.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; SimpleNode:
&lt;br&gt;&amp;gt;&amp;gt; -------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;public void jjtAddChild(Node n, int i)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (children == null)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; children = new Node[i + 1];
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (i &amp;gt;= children.length)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Theoretically the parameter 'i' could be max int. &amp;nbsp;Not sure if in
&lt;br&gt;&amp;gt;&amp;gt; practice this will be an issue. &amp;nbsp;This will wrap, but then we get a
&lt;br&gt;&amp;gt;&amp;gt; NegativeArraySizeException.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; VelocityCharStream:
&lt;br&gt;&amp;gt;&amp;gt; ------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;private final void ExpandBuff(boolean wrapAround)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; char[] newbuffer = new char[bufsize + 2048];
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; int newbufline[] = new int[bufsize + 2048];
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; int newbufcolumn[] = new int[bufsize + 2048];
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; All 3 of these array initializations are flagged. &amp;nbsp;Later on in
&lt;br&gt;&amp;gt;&amp;gt; ExpandBuff bufsize is incremented by 2048. &amp;nbsp;So again theoretically it
&lt;br&gt;&amp;gt;&amp;gt; could wrap.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; VelocityCharStream:
&lt;br&gt;&amp;gt;&amp;gt; ------------------------------
&lt;br&gt;&amp;gt;&amp;gt; public final char[] GetSuffix(int len)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; char[] ret = new char[len];
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; No idea why this is flagged.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ASTMethod:
&lt;br&gt;&amp;gt;&amp;gt; -----------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VelMethod method = null;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object [] params = new Object[paramCount];
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * sadly, we do need recalc the values of the args, as this can
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * change from visit to visit
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Class[] paramClasses = paramCount &amp;gt; 0 ? new
&lt;br&gt;&amp;gt;&amp;gt; Class[paramCount] : ArrayUtils.EMPTY_CLASS_ARRAY;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; paramCount is set by:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paramCount = jjtGetNumChildren() - 1;
&lt;br&gt;&amp;gt;&amp;gt; so again if that method can return a 0, paramCount will wrap. &amp;nbsp;And
&lt;br&gt;&amp;gt;&amp;gt; again a NegativeArraySizeException.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Parser:
&lt;br&gt;&amp;gt;&amp;gt; ----------
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;private void jj_add_error_token(int kind, int pos) {
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;if (pos &amp;gt;= 100) return;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;if (pos == jj_endpos + 1) {
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_lasttokens[jj_endpos++] = kind;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;} else if (jj_endpos != 0) {
&lt;br&gt;&amp;gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentry = new int[jj_endpos];
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Again, theoretically jj_endpos could get so large as to wrap. &amp;nbsp;And
&lt;br&gt;&amp;gt;&amp;gt; again a NegativeArraySizeException.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Any suggestions on how to position these 9 in my meeting with the
&lt;br&gt;&amp;gt;&amp;gt; client and auditors? &amp;nbsp;The fact that an exception is thrown (though I
&lt;br&gt;&amp;gt;&amp;gt; haven't specifically tested these methods) has got to alleviate some
&lt;br&gt;&amp;gt;&amp;gt; of the client panic. &amp;nbsp;Though what &amp;nbsp;does concern me is that knowing an
&lt;br&gt;&amp;gt;&amp;gt; exception should be thrown here, why is the auditor marking these as
&lt;br&gt;&amp;gt;&amp;gt; Very High?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Medium Risk
&lt;br&gt;&amp;gt;&amp;gt; ==========
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Leftover Debug Code (CWE ID 489)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Description
&lt;br&gt;&amp;gt;&amp;gt; A method may be leftover debug code that creates an unintended entry
&lt;br&gt;&amp;gt;&amp;gt; point in a web application. Although this is an acceptable practice
&lt;br&gt;&amp;gt;&amp;gt; during product development, classes that are part of a production J2EE
&lt;br&gt;&amp;gt;&amp;gt; application should not define a main() method. Whether this method can
&lt;br&gt;&amp;gt;&amp;gt; be remotely invoked depends on the configuration of the J2EE container
&lt;br&gt;&amp;gt;&amp;gt; and the application itself.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt;&amp;gt; A method may be leftover debug code that creates an unintended entry
&lt;br&gt;&amp;gt;&amp;gt; point in a web application. Although this is an acceptable practice
&lt;br&gt;&amp;gt;&amp;gt; during product development, classes that are part of a production J2EE
&lt;br&gt;&amp;gt;&amp;gt; application should not define a main() method. Whether this method can
&lt;br&gt;&amp;gt;&amp;gt; be remotely invoked depends on the configuration of the J2EE container
&lt;br&gt;&amp;gt;&amp;gt; and the application itself.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; File Line
&lt;br&gt;&amp;gt;&amp;gt; WebMacro.java 297
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Won't post the code; simply put there is a main() method there. &amp;nbsp;We
&lt;br&gt;&amp;gt;&amp;gt; don't reference WebMacro anywhere (that I can see) but its in the
&lt;br&gt;&amp;gt;&amp;gt; velocity jar so it popped out on the scan.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Also want to note that WebMacro &amp;quot;failed&amp;quot; another test - External
&lt;br&gt;&amp;gt;&amp;gt; Control of File Name or Path (CWE ID 73). &amp;nbsp;But as this class isn't
&lt;br&gt;&amp;gt;&amp;gt; used that I can see I won't include that &amp;quot;failure&amp;quot;.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Does WebMacro have to be in the velocity jar?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ++++++++++++++++++++++++++++++
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Failure to Sanitize Script-Related HTML Tags in a Web Page (Basic XSS)
&lt;br&gt;&amp;gt;&amp;gt; (CWE ID 80)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Description
&lt;br&gt;&amp;gt;&amp;gt; This call contains a cross-site scripting (XSS) flaw. The application
&lt;br&gt;&amp;gt;&amp;gt; populates the HTTP response with user-supplied input, allowing an
&lt;br&gt;&amp;gt;&amp;gt; attacker to embed malicious content, such as Javascript code, which
&lt;br&gt;&amp;gt;&amp;gt; will be executed in the context of the victim's browser. XSS
&lt;br&gt;&amp;gt;&amp;gt; vulnerabilities are commonly exploited to steal or manipulate cookies,
&lt;br&gt;&amp;gt;&amp;gt; modify presentation of content, and compromise confidential
&lt;br&gt;&amp;gt;&amp;gt; information, with new attack vectors being discovered on a regular
&lt;br&gt;&amp;gt;&amp;gt; basis.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt;&amp;gt; Use HTML entities to encode all non-alphanumeric user-supplied data
&lt;br&gt;&amp;gt;&amp;gt; when using it to construct an HTTP response. Always validate
&lt;br&gt;&amp;gt;&amp;gt; user-supplied input to ensure that it conforms to the expected format,
&lt;br&gt;&amp;gt;&amp;gt; using centralized data validation routines when possible.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; File Line
&lt;br&gt;&amp;gt;&amp;gt; VelocityViewServlet.java 814
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; It looks like a change was made to the servlet to add escapeHtml
&lt;br&gt;&amp;gt;&amp;gt; (r480851) in 1.3. &amp;nbsp;Not sure why it was flagged. &amp;nbsp;Either way, it looks
&lt;br&gt;&amp;gt;&amp;gt; like an upgrade of velocity tools will solve that one for us.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ++++++++++++++++++++++++++++++
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Insufficient Entropy (CWE ID 331)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Description
&lt;br&gt;&amp;gt;&amp;gt; Standard random number generators do not provide a sufficient amount
&lt;br&gt;&amp;gt;&amp;gt; of entropy when used for security purposes. Attackers can brute force
&lt;br&gt;&amp;gt;&amp;gt; the output of pseudorandom number generators such as rand().
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt;&amp;gt; If this random number is used where security is a concern, such as
&lt;br&gt;&amp;gt;&amp;gt; generating a session key or session identifier, use a trusted
&lt;br&gt;&amp;gt;&amp;gt; cryptographic random number generator instead. These can be found on
&lt;br&gt;&amp;gt;&amp;gt; the Windows platform in the CryptoAPI or in an open source library
&lt;br&gt;&amp;gt;&amp;gt; such as OpenSSL.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; File Line
&lt;br&gt;&amp;gt;&amp;gt; MathTool.java 361
&lt;br&gt;&amp;gt;&amp;gt; MathTool.java 364
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Both of these lines have Math.random(). &amp;nbsp;The audit tool just doesn't
&lt;br&gt;&amp;gt;&amp;gt; like Math.random() at all. &amp;nbsp;Not sure what MathTool.getRandom() or
&lt;br&gt;&amp;gt;&amp;gt; MathTool.random() are used for internally. &amp;nbsp;As an aside, I have
&lt;br&gt;&amp;gt;&amp;gt; changed (because we got dinged on it also) to using SecureRandom which
&lt;br&gt;&amp;gt;&amp;gt; I believe will pass this test.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Low Risk
&lt;br&gt;&amp;gt;&amp;gt; ==========
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Error Message Information Leaks (CWE ID 209)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Description
&lt;br&gt;&amp;gt;&amp;gt; Due to the fact that SOAP relies on XML data from the user, it is
&lt;br&gt;&amp;gt;&amp;gt; possible for the user to submit an invalid XML document to attack the
&lt;br&gt;&amp;gt;&amp;gt; parsing routines which can cause buffer overrun and/or denial of
&lt;br&gt;&amp;gt;&amp;gt; service attacks. The SOAP service library is responsible for
&lt;br&gt;&amp;gt;&amp;gt; converting the data into language specific data types. Users could
&lt;br&gt;&amp;gt;&amp;gt; attack this layer by utilizing an understanding of the back end
&lt;br&gt;&amp;gt;&amp;gt; languages limitations and the weaknesses in the SOAP libraries string
&lt;br&gt;&amp;gt;&amp;gt; to data type conversion process. After getting past all the SOAP
&lt;br&gt;&amp;gt;&amp;gt; specific processes your application logic can be attacked with normal
&lt;br&gt;&amp;gt;&amp;gt; input attacks, such as providing a negative number value when your
&lt;br&gt;&amp;gt;&amp;gt; software is expecting a standard number value and is ill equipped to
&lt;br&gt;&amp;gt;&amp;gt; handle it, or even general SQL Injection attacks.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt;&amp;gt; Make sure you are using the latest security patched parsing engine
&lt;br&gt;&amp;gt;&amp;gt; available and that you are trapping and handling all errors due to
&lt;br&gt;&amp;gt;&amp;gt; parsing problems and responding to the user gracefully. Make sure you
&lt;br&gt;&amp;gt;&amp;gt; are using the latest security patched SOAP library available and that
&lt;br&gt;&amp;gt;&amp;gt; you are trapping and handling all errors due to data type conversion
&lt;br&gt;&amp;gt;&amp;gt; problems and responding to the user gracefully. It is important to use
&lt;br&gt;&amp;gt;&amp;gt; strong definitions of expected data types to avoid having attacks get
&lt;br&gt;&amp;gt;&amp;gt; to the next layer. Your application logic must validate all data
&lt;br&gt;&amp;gt;&amp;gt; coming in. Do not rely on the SOAP library to handle this for you,
&lt;br&gt;&amp;gt;&amp;gt; unless it has specific features to do so. Like any web application
&lt;br&gt;&amp;gt;&amp;gt; development, it is important to consider all input from a user to be
&lt;br&gt;&amp;gt;&amp;gt; dirty until it passes validation and filtering to be specifically the
&lt;br&gt;&amp;gt;&amp;gt; type of input expected.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; File Line
&lt;br&gt;&amp;gt;&amp;gt; SystemLogChute.java 142
&lt;br&gt;&amp;gt;&amp;gt; StringUtils.java &amp;nbsp;376
&lt;br&gt;&amp;gt;&amp;gt; SystemLogChute.java 141
&lt;br&gt;&amp;gt;&amp;gt; Generator.java &amp;nbsp;215
&lt;br&gt;&amp;gt;&amp;gt; PrintExceptions.java 102
&lt;br&gt;&amp;gt;&amp;gt; FieldMethodizer.java 162
&lt;br&gt;&amp;gt;&amp;gt; VelocityViewServlet.java 807
&lt;br&gt;&amp;gt;&amp;gt; FieldMethodizer.java 92
&lt;br&gt;&amp;gt;&amp;gt; Generator.java &amp;nbsp;168
&lt;br&gt;&amp;gt;&amp;gt; StringUtils.java &amp;nbsp;489
&lt;br&gt;&amp;gt;&amp;gt; SystemLogChute.java 151
&lt;br&gt;&amp;gt;&amp;gt; LogSystemCommonsLog.java 156
&lt;br&gt;&amp;gt;&amp;gt; StringUtils.java &amp;nbsp;389
&lt;br&gt;&amp;gt;&amp;gt; Generator.java &amp;nbsp;520
&lt;br&gt;&amp;gt;&amp;gt; VelocityServlet.java 705
&lt;br&gt;&amp;gt;&amp;gt; FieldMethodizer.java 114
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I'm not quite sure what to say about these. &amp;nbsp;I haven't gone through
&lt;br&gt;&amp;gt;&amp;gt; them all, but in our files that failed it was because of a call to
&lt;br&gt;&amp;gt;&amp;gt; printStackTrace(). &amp;nbsp;Every call to printStackTrace() seems to raise a
&lt;br&gt;&amp;gt;&amp;gt; flag with the auditors. &amp;nbsp;We're going to change ours to call a logger.
&lt;br&gt;&amp;gt;&amp;gt; Given that these are very low, I'm not too worried about these. &amp;nbsp;But
&lt;br&gt;&amp;gt;&amp;gt; for completeness I included them.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hope you could follow this VERY long post.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If anyone has any thoughts or suggestions on how I should proceed I
&lt;br&gt;&amp;gt;&amp;gt; would welcome the input.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks for your time.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Tom
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245955&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245955&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Forio Business Simulations
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Will Glass-Husain
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245955&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wglass@...&lt;/a&gt;
&lt;br&gt;&amp;gt; www.forio.com
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245955&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245955&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Results-from-a-security-audit-tp18243177p18245955.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18245717</id>
	<title>Re: Results from a security audit</title>
	<published>2008-07-02T13:07:40Z</published>
	<updated>2008-07-02T13:07:40Z</updated>
	<author>
		<name>Nathan Bubna</name>
	</author>
	<content type="html">My thoughts inline...
&lt;br&gt;&lt;br&gt;On Wed, Jul 2, 2008 at 10:49 AM, Tom Jenkins &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245717&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tomj.devis@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I posted on the user list asking where I should bring up the results
&lt;br&gt;&amp;gt; of a 3rd party security audit one of our applications had to go
&lt;br&gt;&amp;gt; through.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; All of these were found through static analysis; no attack vectors are
&lt;br&gt;&amp;gt; known. &amp;nbsp;I'm also unsure of the validity of these results, but I have
&lt;br&gt;&amp;gt; to do my due diligence.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; We're using Velocity 1.5 and Velocity Tools 1.3
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Excuse the formatting...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Very High Risk
&lt;br&gt;&amp;gt; ============
&lt;br&gt;&amp;gt; Integer Overflow (Wrap or Wraparound) (CWE ID 190)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Description
&lt;br&gt;&amp;gt; An integer overflow condition exists when an integer that has not been
&lt;br&gt;&amp;gt; properly sanity checked is used in the determination of an offset or
&lt;br&gt;&amp;gt; size for memory allocation, copying, concatenation, or similarly. If
&lt;br&gt;&amp;gt; the integer in question is incremented past the maximum possible
&lt;br&gt;&amp;gt; value, it may wrap to become a very small, or negative number,
&lt;br&gt;&amp;gt; therefore providing an unintended value. This occurs most commonly in
&lt;br&gt;&amp;gt; arithmetic operations or loop iterations. Integer overflows can often
&lt;br&gt;&amp;gt; result in buffer overflows or data corruption, both of which may be
&lt;br&gt;&amp;gt; potentially exploited to execute arbitrary code.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Recommendations
&lt;br&gt;&amp;gt; Perform bounds checking to ensure that integers do not exceed the
&lt;br&gt;&amp;gt; maximum possible value.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; File Line
&lt;br&gt;&amp;gt; Macro.java 241
&lt;br&gt;&amp;gt; SimpleNode.java 156
&lt;br&gt;&amp;gt; VelocityCharStream.java 65
&lt;br&gt;&amp;gt; VelocityCharStream.java 67
&lt;br&gt;&amp;gt; VelocityCharStream.java 416
&lt;br&gt;&amp;gt; VelocityCharStream.java 66
&lt;br&gt;&amp;gt; ASTMethod.java 143
&lt;br&gt;&amp;gt; ASTMethod.java 134
&lt;br&gt;&amp;gt; Parser.java 3298
&lt;/div&gt;&lt;br&gt;I don't see how an integer overflow in any of these would cause
&lt;br&gt;anything but an array access error. &amp;nbsp;And i'm quite sure none of these
&lt;br&gt;could be triggered by a third party unless that third party is able to
&lt;br&gt;create their own templates and have the app process them. &amp;nbsp;So unless
&lt;br&gt;you process user input as templates or using the RenderTool, i don't
&lt;br&gt;see anything to worry about. &amp;nbsp;Even if you do have the VelocityEngine
&lt;br&gt;process user-generated VTL somehow, then at worst you have to worry
&lt;br&gt;about an uncaught exception that i doubt could be exploited.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; My analysis:
&lt;br&gt;&amp;gt; Macro:
&lt;br&gt;&amp;gt; ----------
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int numArgs = node.jjtGetNumChildren();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numArgs--; &amp;nbsp;// avoid the block tree...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp;String argArray[] = new String[numArgs];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Looks like the flag is because if jjtGetNumChildren ever returns 0,
&lt;br&gt;&amp;gt; numArgs will be -1. &amp;nbsp;But that will just throw a
&lt;br&gt;&amp;gt; NegativeArraySizeException so there isn't any overflowing. &amp;nbsp;May be
&lt;br&gt;&amp;gt; unintended that it go to -1, however.
&lt;/div&gt;&lt;br&gt;heh. &amp;nbsp;that would mean a macro with more than 2,147,483,647 arguments.
&lt;br&gt;i think a NegativeArraySizeException sounds like a fair retort to the
&lt;br&gt;author of such a macro.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; SimpleNode:
&lt;br&gt;&amp;gt; -------------------
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;public void jjtAddChild(Node n, int i)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (children == null)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; children = new Node[i + 1];
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (i &amp;gt;= children.length)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Theoretically the parameter 'i' could be max int. &amp;nbsp;Not sure if in
&lt;br&gt;&amp;gt; practice this will be an issue. &amp;nbsp;This will wrap, but then we get a
&lt;br&gt;&amp;gt; NegativeArraySizeException.
&lt;/div&gt;&lt;br&gt;again, if they have over 2 million child nodes at any point in the
&lt;br&gt;AST, then they deserve an exception. :)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; VelocityCharStream:
&lt;br&gt;&amp;gt; ------------------------------
&lt;br&gt;&amp;gt; &amp;nbsp;private final void ExpandBuff(boolean wrapAround)
&lt;br&gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; char[] newbuffer = new char[bufsize + 2048];
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; int newbufline[] = new int[bufsize + 2048];
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; int newbufcolumn[] = new int[bufsize + 2048];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; All 3 of these array initializations are flagged. &amp;nbsp;Later on in
&lt;br&gt;&amp;gt; ExpandBuff bufsize is incremented by 2048. &amp;nbsp;So again theoretically it
&lt;br&gt;&amp;gt; could wrap.
&lt;/div&gt;&lt;br&gt;this has its origins in JavaCC. &amp;nbsp;i've never heard of any problems from
&lt;br&gt;it, and the javacc crew usually seem to know what they're doing.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; VelocityCharStream:
&lt;br&gt;&amp;gt; ------------------------------
&lt;br&gt;&amp;gt; public final char[] GetSuffix(int len)
&lt;br&gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; char[] ret = new char[len];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; No idea why this is flagged.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ASTMethod:
&lt;br&gt;&amp;gt; -----------------
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VelMethod method = null;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object [] params = new Object[paramCount];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * sadly, we do need recalc the values of the args, as this can
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * change from visit to visit
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Class[] paramClasses = paramCount &amp;gt; 0 ? new
&lt;br&gt;&amp;gt; Class[paramCount] : ArrayUtils.EMPTY_CLASS_ARRAY;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; paramCount is set by:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paramCount = jjtGetNumChildren() - 1;
&lt;br&gt;&amp;gt; so again if that method can return a 0, paramCount will wrap. &amp;nbsp;And
&lt;br&gt;&amp;gt; again a NegativeArraySizeException.
&lt;/div&gt;&lt;br&gt;over 2.1 million arguments to a method call in a template also seems unlikely.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Parser:
&lt;br&gt;&amp;gt; ----------
&lt;br&gt;&amp;gt; &amp;nbsp;private void jj_add_error_token(int kind, int pos) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;if (pos &amp;gt;= 100) return;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;if (pos == jj_endpos + 1) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_lasttokens[jj_endpos++] = kind;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;} else if (jj_endpos != 0) {
&lt;br&gt;&amp;gt; --&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentry = new int[jj_endpos];
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Again, theoretically jj_endpos could get so large as to wrap. &amp;nbsp;And
&lt;br&gt;&amp;gt; again a NegativeArraySizeException.
&lt;/div&gt;&lt;br&gt;as with VelocityCharStream, i've never heard of it happening.
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any suggestions on how to position these 9 in my meeting with the
&lt;br&gt;&amp;gt; client and auditors? &amp;nbsp;The fact that an exception is thrown (though I
&lt;br&gt;&amp;gt; haven't specifically tested these methods) has got to alleviate some
&lt;br&gt;&amp;gt; of the client panic. &amp;nbsp;Though what &amp;nbsp;does concern me is that knowing an
&lt;br&gt;&amp;gt; exception should be t