I downloaded a snapshot:
http://svn.apache.org/snapshots/jakarta-velocity/

built it:
ant jar

put the new velocity-1.5.jar in my classpath and deleted velocity-1.4 jar.

And no more NPE stack traces.  :-)


Thank You,

David

Nathan Bubna wrote:

>hmm.  no, this isn't the NPE mentioned in the FAQ.   i think you've
>run afoul of a bug that was fixed, unfixed, and refixed.
>
>Fixed: 
>http://svn.apache.org/viewcvs.cgi/jakarta/velocity/trunk/src/java/org/apache/velocity/io/VelocityWriter.java?rev=75937&r1=75805&r2=75937
>
>Unfixed: 
>http://svn.apache.org/viewcvs.cgi/jakarta/velocity/trunk/src/java/org/apache/velocity/io/VelocityWriter.java?rev=75959&r1=75949&r2=75959
>
>Refixed: 
>http://svn.apache.org/viewcvs.cgi/jakarta/velocity/trunk/src/java/org/apache/velocity/io/VelocityWriter.java?rev=75960&r1=75959&r2=75960
>
>unfortunately, it appears that Velocity 1.4 was released after the
>"unfixed" revision and before the refixed revision, since the problem
>occurs on line 319 in both the 1.4 tag and the unfixed revision on the
>trunk.  :(
>
>so, all i can recommend is that you check out the last SVN code for
>Velocity 1.5 and use that.  hopefully we'll get it released soon, but
>in the meantime, it is quite stable and definitely superior to the 1.4
>version.  if you are unable to build it yourself, let me know and i
>will upload a nightly build that you can use.
>
>On 2/5/06, David Sperling <[EMAIL PROTECTED]> wrote:
>  
>
>>My velocity-struts-1.2 message tool is throwing NPEs,
>>even though it looks to me that my action servlet
>>is being loaded before the velocity servlet.
>>
>>The velocity faq says that the MessageTool will throw
>>a NullPointerException if the ActionServlet isn't
>>initialized before trying to use struts-tools.
>>I set my ActionServlet to load 1st and my
>>Velocity Servlet to load 3rd.  But I still get
>>NullPointerException when I don't have a resource
>>in my resource bundle.
>>
>>So $text.resource.in.bundle
>>displays fine but
>>   $text.resource.not.in.bundle
>>gives a null pointer stack trace.
>>
>>
>>
>>Below I've listed my web.xml and a sample stack trace.
>> I'd like to know what I need to do to get
>>the text "$text.resource.not.in.bundle" in my pages
>>instead of a stack trace.
>>
>>
>>
>>Cheers,
>>
>>
>><?xml version="1.0" encoding="UTF-8"?>
>><!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
>>Inc.//DTD Web Application 2.3//EN"
>>"http://java.sun.com/dtd/web-app_2_3.dtd";>
>><web-app>
>>  <display-name>Reservations Web App</display-name>
>>  <filter>
>>    <filter-name>Set Character Encoding</filter-name>
>>
>><filter-class>mydomain.reservations.filters.SetCharacterEncodingFilter</filter-class>
>>    <init-param>
>>      <param-name>encoding</param-name>
>>      <param-value>UTF-8</param-value>
>>    </init-param>
>>  </filter>
>>  <filter-mapping>
>>    <filter-name>Set Character Encoding</filter-name>
>>    <url-pattern>/*</url-pattern>
>>  </filter-mapping>
>>
>>  <servlet>
>>    <servlet-name>action</servlet-name>
>>
>><servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
>>    <init-param>
>>      <param-name>config</param-name>
>>      <param-value>/WEB-INF/main/strutsConfig.xml,
>>                                /WEB-INF/hotel/hotelConfig.xml,
>>                                /WEB-INF/rate/rateConfig.xml,
>>                                /WEB-INF/room/roomMasterConfig.xml,
>>                                /WEB-INF/glance/atAGlanceConfig.xml,
>>                            /WEB-INF/user/userConfig.xml,
>>                                
>> /WEB-INF/reservation/reservationDetailConfig.xml,
>>                                /WEB-INF/calendar/calendarConfig.xml,
>>                                /WEB-INF/plan/planConfig.xml,
>>                                /WEB-INF/feature/featureConfig.xml,
>>                                /WEB-INF/member/memberConfig.xml,
>>                                /WEB-INF/external/externalConfig.xml,
>>                                /WEB-INF/report/reportConfig.xml
>>        </param-value>
>>    </init-param>
>>    <init-param>
>>      <param-name>debug</param-name>
>>      <param-value>2</param-value>
>>    </init-param>
>>    <init-param>
>>      <param-name>detail</param-name>
>>      <param-value>2</param-value>
>>    </init-param>
>>    <load-on-startup>1</load-on-startup>
>>  </servlet>
>>
>>
>>
>>  <servlet>
>>    <servlet-name>exportServlet</servlet-name>
>>
>><servlet-class>mydomain.reservations.export.servlet.ExportServlet</servlet-class>
>>    <load-on-startup>2</load-on-startup>
>>  </servlet>
>>
>>  <servlet>
>>    <servlet-name>velocity</servlet-name>
>>
>><servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
>>    <init-param>
>>
>><param-name>org.apache.velocity.toolbox</param-name>
>>      <param-value>/WEB-INF/toolbox.xml</param-value>
>>    </init-param>
>>    <init-param>
>>
>><param-name>org.apache.velocity.properties</param-name>
>>
>><param-value>/WEB-INF/velocity.properties</param-value>
>>    </init-param>
>>    <load-on-startup>3</load-on-startup>
>>  </servlet>
>>
>>
>>
>>  <servlet-mapping>
>>    <servlet-name>exportServlet</servlet-name>
>>    <url-pattern>/export</url-pattern>
>>  </servlet-mapping>
>>  <servlet-mapping>
>>    <servlet-name>action</servlet-name>
>>    <url-pattern>*.do</url-pattern>
>>  </servlet-mapping>
>>  <servlet-mapping>
>>    <servlet-name>velocity</servlet-name>
>>    <url-pattern>*.vm</url-pattern>
>>  </servlet-mapping>
>>  <welcome-file-list>
>>    <welcome-file>index.vm</welcome-file>
>>  </welcome-file-list>
>>  <resource-ref>
>>    <description>DB Connection</description>
>>    <res-ref-name>jdbc/reservationDB</res-ref-name>
>>    <res-type>javax.sql.DataSource</res-type>
>>    <res-auth>Container</res-auth>
>>  </resource-ref>
>>  <security-constraint>
>>    <web-resource-collection>
>>      <web-resource-name>Admin
>>Services</web-resource-name>
>>      <url-pattern>/admin/*</url-pattern>
>>    </web-resource-collection>
>>    <auth-constraint>
>>      <role-name>hotelAdmin</role-name>
>>  <!--Engineer will be employees companies that
>>re-sell the reservation system to hotels, -->
>>  <!--   they have access to hotels the posses-->
>>      <role-name>hotelEngineer</role-name>
>>  <!--Manager can update plans, room, rate, options,
>>and everything else in an owned hotel
>>          internal admin section -->
>>      <role-name>hotelManager</role-name>
>>  <!--Hotel operators can only access ataglance,
>>report and the order page for owned hotels-->
>>      <role-name>hotelOperator</role-name>
>>    </auth-constraint>
>>  </security-constraint>
>>  <login-config>
>>    <auth-method>FORM</auth-method>
>>    <form-login-config>
>>
>><form-login-page>/WEB-INF/main/login.vm</form-login-page>
>>
>><form-error-page>/WEB-INF/main/notAuthenticated.vm</form-error-page>
>>    </form-login-config>
>>  </login-config>
>>  <security-role>
>>    <role-name>hotelAdmin</role-name>
>>  </security-role>
>>  <security-role>
>>    <role-name>hotelManager</role-name>
>>  </security-role>
>>  <security-role>
>>    <role-name>hotelOperator</role-name>
>>  </security-role>
>>  <security-role>
>>    <role-name>hotelEngineer</role-name>
>>  </security-role>
>></web-app>
>>
>>
>>VelocityViewServlet : Error processing the template
>>
>>java.lang.NullPointerException
>>        at
>>org.apache.velocity.io.VelocityWriter.write(VelocityWriter.java:319)
>>        at
>>org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:291)
>>        at
>>org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
>>        at
>>org.apache.velocity.Template.merge(Template.java:256)
>>        at
>>org.apache.velocity.tools.view.servlet.VelocityViewServlet.performMerge(Unknown
>>Source)
>>        at
>>org.apache.velocity.tools.view.servlet.VelocityViewServlet.mergeTemplate(Unknown
>>Source)
>>        at
>>org.apache.velocity.tools.view.servlet.VelocityViewServlet.doRequest(Unknown
>>Source)
>>        at
>>org.apache.velocity.tools.view.servlet.VelocityViewServlet.doGet(Unknown
>>Source)
>>        at
>>javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>>        at
>>javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>        at
>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
>>        at
>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>>        at
>>hakodatecgi.reservations.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
>>        at
>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
>>        at
>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>>        at
>>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
>>        at
>>org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>>        at
>>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>>        at
>>org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
>>        at
>>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
>>        at
>>org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>>        at
>>org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
>>        at
>>org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
>>        at
>>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>>        at
>>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
>>        at
>>org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>>        at
>>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
>>        at
>>org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
>>        at
>>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>>        at
>>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>        at
>>org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>>        at
>>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>>        at
>>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>>        at
>>org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>>        at
>>org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
>>        at
>>org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
>>        at
>>org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
>>        at
>>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
>>        at java.lang.Thread.run(Thread.java:534)
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>    
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>  
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to