Hi, I just saw, that I'm not working with the beta 2 but with the snapshot. In beta 2 the NPW is thrown at line 1038 (in snapshot at line 1041). The line is:
String renderKitId = context.getViewRoot().getRenderKitId(); And looking at the variables in debugging mode says, that the viewRoot is null. Sorry for the confusion :) Of course I don't mind to open a JIRA issue :) PS: I know tomahawk isn't even supposed to work with myfaces 2, but in generally it does. This one here is the only compatibility problem I found (...for now ;) ) Matthias -------- Original-Nachricht -------- > Datum: Tue, 23 Mar 2010 15:44:32 +0100 > Von: Jakob Korherr <[email protected]> > An: MyFaces Discussion <[email protected]> > Betreff: Re: UIComponentBase.java - context.getViewRoot() returns null > Hi, > > Unfortunately there is no tomahawk port for MyFaces 2.0 available yet, so > this might be a compatibility problem. > > I traced the Exception down and found out that it happens, because the > RenderKitFactory returns null for the RenderKit here, see the code from > UIComponentBase: > > String renderKitId = context.getViewRoot().getRenderKitId(); > RenderKitFactory rkf = (RenderKitFactory) > FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY); > RenderKit renderKit = rkf.getRenderKit(context, renderKitId); > Renderer renderer = renderKit.getRenderer(getFamily(), > rendererType); > > In the last line renderKit is null and thus we get a NPE. > > Do you mind opening a JIRA issue for this? This would be really great. > > Thanks! > > Regards, > Jakob > > 2010/3/23 Matthias Leis <[email protected]> > > > Hi, > > > > I'm using myfaces 2.0 beta 2 and currently I'm using a <h:dataTable> on > my > > pages and everything is fine. > > For some reasons (sorting etc.) I want to use the <t:dataTable> (from > > Tomahawk 1.1.9). > > > > Now, when I click on a link inside the table, I get the following > > exception: > > java.lang.NullPointerException > > at > > > javax.faces.component.UIComponentBase.getRenderer(UIComponentBase.java:1041) > > at > > > org.apache.myfaces.component.html.ext.HtmlDataTableHack.getClientId(HtmlDataTableHack.java:111) > > at > > > org.apache.myfaces.component.html.ext.AbstractHtmlDataTable.getClientId(AbstractHtmlDataTable.java:135) > > at > > > org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex(HtmlDataTableHack.java:275) > > at > > > org.apache.myfaces.component.html.ext.AbstractHtmlDataTable.setRowIndex(AbstractHtmlDataTable.java:276) > > at javax.faces.component.UIData.visitTree(UIData.java:1257) > > at > javax.faces.component.UIComponent.visitTree(UIComponent.java:770) > > at > javax.faces.component.UIComponent.visitTree(UIComponent.java:770) > > at > > > javax.faces.component.UIViewRoot.processRestoreState(UIViewRoot.java:648) > > at > > > org.springframework.faces.webflow.FlowViewStateManager.restoreComponentState(FlowViewStateManager.java:77) > > at > > > org.springframework.faces.webflow.FlowViewStateManager.restoreView(FlowViewStateManager.java:159) > > at > > > org.apache.myfaces.shared_impl.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106) > > at > > > org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:1230) > > at > > > org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:240) > > at > > > com.sun.facelets.FaceletViewHandler.restoreView(FaceletViewHandler.java:316) > > at > > > org.springframework.faces.webflow.FlowViewHandler.restoreFlowView(FlowViewHandler.java:128) > > at > > > org.springframework.faces.webflow.FlowViewHandler.restoreView(FlowViewHandler.java:75) > > at > > > org.springframework.faces.webflow.JsfViewFactory.getView(JsfViewFactory.java:93) > > at > > org.springframework.webflow.engine.ViewState.resume(ViewState.java:193) > > at org.springframework.webflow.engine.Flow.resume(Flow.java:545) > > at > > > org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259) > > at > > > org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:163) > > at > > > org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183) > > at > > > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771) > > at > > > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) > > at > > > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) > > at > > > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at > > > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343) > > at > > > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) > > at > > > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) > > at > > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) > > at > > > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149) > > at > > > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) > > at > > > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at main.util.RendererFilter.doFilter(RendererFilter.java:103) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > > at > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > > at > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > > at > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) > > at > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) > > at > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) > > at > > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > > at java.lang.Thread.run(Unknown Source) > > > > Is this the "fault" of myfaces or tomahawk? Is it possible to check, if > the > > viewId is null, and - if so - create a new one? > > > > Any help is appreciated :) > > > > Thx, Matthias > > -- > > GMX DSL: Internet, Telefon und Entertainment für nur 19,99 EUR/mtl.! > > http://portal.gmx.net/de/go/dsl02 > > -- Sicherer, schneller und einfacher. Die aktuellen Internet-Browser - jetzt kostenlos herunterladen! http://portal.gmx.net/de/go/atbrowser

