trimInitialSpace throws nullpointer
ector7280 Apr 18, 2007 11:01 AMI'm using ajax4jsf with trinidad and richfaces. I'm getting a nullpointer exception as well as a popup that says "500 Internal Server error" when I select one of the dropdowns that use an ajax tag.
Any help would be appreciated.
Here's the page:
<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:tr="http://myfaces.apache.org/trinidad" xmlns:rich="http://richfaces.ajax4jsf.org/rich" xmlns:a="https://ajax4jsf.dev.java.net/ajax"> <html> <body> <h:messages globalOnly="true" styleClass="message" id="globalMessages" /> <rich:tabPanel switchType="ajax"> <rich:tab label="Borrower Information"> <h:form id="titleXiProfile" styleClass="edit"> <f:facet name="header">Borrower Information</f:facet> <h:panelGrid> <h:inputHidden id="projectNumber" required="true" disabled="#{titleXiProfileHome.managed}" value="#{titleXiProfileHome.instance.projectNumber}"> <a:support event="onblur" reRender="projectNumberDecoration" /> </h:inputHidden> <h:outputLabel for="projectName"> * Project Name: </h:outputLabel> <s:decorate id="projectName"> <h:inputText id="projectName" required="true" size="30" maxlength="30" value="#{titleXiProfileHome.instance.projectName}"> </h:inputText> <h:message for="projectName" /> </s:decorate> <a:region> <a:outputPanel ajaxRendered="true"> <h:outputText> <fieldset title="company"><legend>Company</legend> <table> <tr> <td><h:outputLabel for="company"> <p align="right">Company:</p> </h:outputLabel></td> <td><s:decorate id="companyDecoration"> <h:selectOneMenu id="company" value="#{titleXiProfileHome.instance.company}"> <s:selectItems value="#{companyList.resultList}" var="company" label="#{company.name}" noSelectionLabel="Please Select..." hideNoSelectionLabel="true" /> <a:support event="onchange" reRender="companyDecoration" /> <s:convertEntity /> </h:selectOneMenu> </s:decorate></td> </tr> <f:subview rendered="#{titleXiProfileHome.instance.company != null}" id="companyInfo1"> <ui:repeat value="#{titleXiProfileHome.instance.company}" var="company" id="companyInfo"> <ui:include src="CompanyContact.xhtml" /> </ui:repeat> </f:subview> <f:subview rendered="#{titleXiProfileHome.instance.company == null}" id="companyInfo1"> <ui:include src="CompanyNew.xhtml" /> </f:subview> </table> </fieldset> </h:outputText> </a:outputPanel> </a:region> <a:region> <a:outputPanel ajaxRendered="true"> <h:outputText> <fieldset title="contact"><legend>Contact</legend> <table> <tr> <td><h:outputLabel for="contact"> <p align="right">Contact:</p> </h:outputLabel></td> <td><s:decorate id="contactDecoration"> <h:selectOneMenu id="contact" value="#{titleXiProfileHome.instance.contact}"> <s:selectItems value="#{contactList.resultList}" var="contact" label="#{contact.firstName} #{contact.lastName}" noSelectionLabel="Please Select..." hideNoSelectionLabel="true" /> <a:support event="onchange" reRender="contactDecoration" /> <s:convertEntity /> </h:selectOneMenu> </s:decorate></td> </tr> <f:subview rendered="#{titleXiProfileHome.instance.contact != null}" id="contactInfo1"> <ui:repeat value="#{titleXiProfileHome.instance.contact}" var="contact" id="contactInfo"> <ui:include src="ContactChild.xhtml" /> </ui:repeat> </f:subview> <f:subview rendered="#{titleXiProfileHome.instance.contact == null}" id="contactInfo1"> <ui:include src="ContactNew.xhtml" /> </f:subview> </table> </fieldset> </h:outputText> </a:outputPanel> </a:region> <s:decorate id="cppmsUserDecoration" template="layout/edit.xhtml"> <ui:define name="label">DOT Analyst</ui:define> <h:selectManyListbox id="cppmsUsers" value="#{titleXiProfileHome.instance.cppmsUsers}" size="2"> <s:selectItems value="#{cppmsUserList.resultList}" var="cppmsUser" label="#{cppmsUser.name}" /> <s:convertEntity /> </h:selectManyListbox> </s:decorate> <s:decorate id="approvedDateDecoration" template="layout/edit.xhtml"> <ui:define name="label">approvedDate</ui:define> <h:inputText id="approvedDate" size="16" value="#{titleXiProfileHome.instance.approvedDate}"> <s:convertDateTime type="both" dateStyle="short" /> <a:support event="onblur" reRender="approvedDateDecoration" /> </h:inputText> </s:decorate> <s:decorate id="meetingFinancialTestDecoration" template="layout/edit.xhtml"> <ui:define name="label">meetingFinancialTest</ui:define> <h:inputText id="meetingFinancialTest" value="#{titleXiProfileHome.instance.meetingFinancialTest}"> <a:support event="onblur" reRender="meetingFinancialTestDecoration" /> </h:inputText> </s:decorate> <s:decorate id="numberOfYearsDecoration" template="layout/edit.xhtml"> <ui:define name="label">numberOfYears</ui:define> <h:inputText id="numberOfYears" value="#{titleXiProfileHome.instance.numberOfYears}"> <a:support event="onblur" reRender="numberOfYearsDecoration" /> </h:inputText> </s:decorate> <s:decorate id="originalSubsidyRateDecoration" template="layout/edit.xhtml"> <ui:define name="label">originalSubsidyRate</ui:define> <h:inputText id="originalSubsidyRate" value="#{titleXiProfileHome.instance.originalSubsidyRate}" size="29"> <a:support event="onblur" reRender="originalSubsidyRateDecoration" /> </h:inputText> </s:decorate> <s:decorate id="guaranteeFeeDecoration" template="layout/edit.xhtml"> <ui:define name="label">guaranteeFee</ui:define> <h:inputText id="guaranteeFee" value="#{titleXiProfileHome.instance.guaranteeFee}" size="22"> <a:support event="onblur" reRender="guaranteeFeeDecoration" /> </h:inputText> </s:decorate> <s:decorate id="investigationFeeDecoration" template="layout/edit.xhtml"> <ui:define name="label">investigationFee</ui:define> <h:inputText id="investigationFee" value="#{titleXiProfileHome.instance.investigationFee}" size="22"> <a:support event="onblur" reRender="investigationFeeDecoration" /> </h:inputText> </s:decorate> <s:decorate id="reserveFundBalanceDecoration" template="layout/edit.xhtml"> <ui:define name="label">reserveFundBalance</ui:define> <h:inputText id="reserveFundBalance" value="#{titleXiProfileHome.instance.reserveFundBalance}" size="22"> <a:support event="onblur" reRender="reserveFundBalanceDecoration" /> </h:inputText> </s:decorate> <s:decorate id="guarantorNameDecoration" template="layout/edit.xhtml"> <ui:define name="label">guarantorName</ui:define> <h:inputText id="guarantorName" size="50" maxlength="50" value="#{titleXiProfileHome.instance.guarantorName}"> <a:support event="onblur" reRender="guarantorNameDecoration" /> </h:inputText> </s:decorate> <s:decorate id="modifiedDateDecoration" template="layout/edit.xhtml"> <ui:define name="label">modifiedDate</ui:define> <h:inputText id="modifiedDate" size="16" value="#{titleXiProfileHome.instance.modifiedDate}"> <s:convertDateTime type="both" dateStyle="short" /> <a:support event="onblur" reRender="modifiedDateDecoration" /> </h:inputText> </s:decorate> <s:decorate id="guaranteeFeeDateDecoration" template="layout/edit.xhtml"> <ui:define name="label">guaranteeFeeDate</ui:define> <h:inputText id="guaranteeFeeDate" size="16" value="#{titleXiProfileHome.instance.guaranteeFeeDate}"> <s:convertDateTime type="both" dateStyle="short" /> <a:support event="onblur" reRender="guaranteeFeeDateDecoration" /> </h:inputText> </s:decorate> <div style="clear:both"><span class="required">*</span> required fields</div> </h:panelGrid> <div class="actionButtons"><h:commandButton id="save" value="Save" action="#{titleXiProfileHome.persist}" disabled="#{!titleXiProfileHome.wired}" rendered="#{!titleXiProfileHome.managed}" /> <h:commandButton id="update" value="Save" action="#{titleXiProfileHome.update}" rendered="#{titleXiProfileHome.managed}" /> <h:commandButton id="delete" value="Delete" action="#{titleXiProfileHome.remove}" rendered="#{titleXiProfileHome.managed}" /> <s:button id="done" value="Done" propagation="end" view="/TitleXiProfile.xhtml" rendered="#{titleXiProfileHome.managed}" /> <s:button id="cancel" value="Cancel" propagation="end" view="/#{empty titleXiProfileFrom ? 'TitleXiProfileList' : titleXiProfileFrom}.xhtml" rendered="#{!titleXiProfileHome.managed}" /></div> </h:form> </rich:tab> <rich:tab label="Project Description"> <h:form> <rich:panel> <h:inputHidden id="projectNumber" required="true" disabled="#{titleXiProfileHome.managed}" value="#{titleXiProfileHome.instance.projectNumber}"> <a:support event="onblur" reRender="projectNumberDecoration" /> </h:inputHidden> <s:decorate id="applicationNumberDecoration" template="layout/edit.xhtml"> <ui:define name="label">applicationNumber</ui:define> <h:inputText id="applicationNumber" size="15" maxlength="15" value="#{titleXiProfileHome.instance.applicationNumber}"> <a:support event="onblur" reRender="applicationNumberDecoration" /> </h:inputText> </s:decorate> <s:decorate id="agreementNumberDecoration" template="layout/edit.xhtml"> <ui:define name="label">agreementNumber</ui:define> <h:inputText id="agreementNumber" size="15" maxlength="15" value="#{titleXiProfileHome.instance.agreementNumber}"> <a:support event="onblur" reRender="agreementNumberDecoration" /> </h:inputText> </s:decorate> <s:decorate id="initialClosingDateDecoration" template="layout/edit.xhtml"> <ui:define name="label">Initial Closing Date: </ui:define> <h:inputText id="initialClosingDate" size="16" value="#{titleXiProfileHome.instance.initialClosingDate}"> <s:convertDateTime type="both" dateStyle="short" /> <a:support event="onblur" reRender="initialClosingDateDecoration" /> </h:inputText> </s:decorate> <s:decorate id="statusDecoration" template="layout/edit.xhtml"> <ui:define name="label">Status: </ui:define> <h:selectOneMenu id="status" value="#{titleXiProfileHome.instance.status}"> <s:selectItems value="#{statusList.resultList}" var="status" label="#{status.name}" noSelectionLabel="Please Select..." hideNoSelectionLabel="true" /> <a:support event="onchange" reRender="statusDecoration" /> <s:convertEntity /> </h:selectOneMenu> </s:decorate> <s:decorate id="receivedDateDecoration" template="layout/edit.xhtml"> <ui:define name="label">Received Date: </ui:define> <h:inputText id="receivedDate" size="16" value="#{titleXiProfileHome.instance.receivedDate}"> <s:convertDateTime type="both" dateStyle="short" /> <a:support event="onblur" reRender="receivedDateDecoration" /> </h:inputText> </s:decorate> </rich:panel> <div class="actionButtons"><h:commandButton id="save" value="Save" action="#{titleXiProfileHome.persist}" disabled="#{!titleXiProfileHome.wired}" rendered="#{!titleXiProfileHome.managed}" /> <h:commandButton id="update" value="Save" action="#{titleXiProfileHome.update}" rendered="#{titleXiProfileHome.managed}" /> <h:commandButton id="delete" value="Delete" action="#{titleXiProfileHome.remove}" rendered="#{titleXiProfileHome.managed}" /> <s:button id="done" value="Done" propagation="end" view="/TitleXiProfile.xhtml" rendered="#{titleXiProfileHome.managed}" /> <s:button id="cancel" value="Cancel" propagation="end" view="/#{empty titleXiProfileFrom ? 'TitleXiProfileList' : titleXiProfileFrom}.xhtml" rendered="#{!titleXiProfileHome.managed}" /></div> </h:form> </rich:tab> <rich:tab label="Payment Information"> </rich:tab> <rich:tab label="General Information"> </rich:tab> </rich:tabPanel> </body> </html> </f:view>
Here's the error:
10:47:18,828 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception java.lang.NullPointerException at org.ajax4jsf.org.w3c.tidy.Node.trimInitialSpace(Node.java:967) at org.ajax4jsf.org.w3c.tidy.Node.trimSpaces(Node.java:1033) at org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseInline.parse(ParserImpl.java:1146) at org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(ParserImpl.java:224) at org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseRow.parse(ParserImpl.java:3033) at org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(ParserImpl.java:224) at org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseRowGroup.parse(ParserImpl.java:2906) at org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(ParserImpl.java:224) at org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseTableTag.parse(ParserImpl.java:2650) at org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(ParserImpl.java:224) at org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseBlock.parse(ParserImpl.java:2488) at org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(ParserImpl.java:224) at org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseInline.parse(ParserImpl.java:1608) at org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(ParserImpl.java:224) at org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseBody.parse(ParserImpl.java:999) at org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(ParserImpl.java:224) at org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseHTML.parse(ParserImpl.java:507) at org.ajax4jsf.org.w3c.tidy.ParserImpl.parseDocument(ParserImpl.java:3430) at org.ajax4jsf.org.w3c.tidy.Tidy.parse(Tidy.java:384) at org.ajax4jsf.org.w3c.tidy.Tidy.parse(Tidy.java:282) at org.ajax4jsf.org.w3c.tidy.Tidy.parseDOM(Tidy.java:625) at org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyParser.parseHtmlByTidy(TidyParser.java:98) at org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyParser.parseHtml(TidyParser.java:203) at org.ajax4jsf.framework.ajax.xmlfilter.FilterServletResponseWrapper.parseContent(FilterServletResponseWrapper. java:607) at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:212) at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java :664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595)