Re: Barracuda: NullPointerException when importing a node
"Adam Chesney" <[email protected]>
| Newsgroups | gmane.comp.java.enhydra.barracuda.general |
|---|---|
| Message-ID | <[email protected]> |
A bit more explanation needed. I am attempting to build a site that allows people to upload all sorts of files, some of which could be html files. I don't want to use frames, so if possible I would like to somehow extract a Document from the uploaded files, and then add the contents into a template that contains the main look and feel of the site. To start with I just wanted to take the <BODY> of the uploaded files, iterate the child nodes and add them into the main template Document (compliled with XMLC). I thought that in an ideal world, the Document produced with JTidy would contain nodes that could be inserted into the XMLC Document as they are all the same interfaces. But I guess that isn't the case. I might try one last attempt to use the normal DOM with my compiled XMLC as that might be the same implementation as JTidy (which I think uses xerces). Anyway, if anyone knows a good way of doing this, then I'd love to hear about it. Cheers, Adam. ----- Original Message ----- From: Christian Cryder To: [email protected] Sent: Wednesday, December 11, 2002 1:34 AM Subject: RE: Barracuda: NullPointerException when importing a node Hi Adam, I'm a little confused here...is the "webhook" element in a completely different DOM? If so, what you should be doing is loading that page via straight XMLC, getting the appropriate node that way, and then simply passing that node directly into the BComponent and returning that...I don't think you need to call importNode in your code here...BTemplate should take care of that for you (I believe). Alternatively, have you considered inserting the DOM snippet at compile time? This can be done using .ssi files (XMLC can resolve them). Of course, that wouldn't work if sometimes you need to insert "webhook1" and other times you need to insert "webhook2" or something like that, but its an option worth considering as it pushes the work to compile time (once) rather than runtime (every request). Just some thoughts... Christian ---------------------------------------------- Christian Cryder [[email protected]] Internet Architect, ATMReports.com Barracuda - http://barracuda.enhydra.org ---------------------------------------------- "Coffee? I could quit anytime, just not today" -----Original Message----- From: [email protected] [mailto:[email protected]]On Behalf Of Adam Sent: Tuesday, December 10, 2002 5:27 PM To: [email protected]; [email protected] Subject: Barracuda: NullPointerException when importing a node Hi all, I am getting the following stack trace while trying to import a node that I have dynamically extracted from an html page using JTidy. This is the bit of code which is in a model: Node node = item.getNode(); Document doc = getViewContext().getElementFactory().getDocument(); node = doc.importNode( node, true ); Element td = doc.getElementById("webhook"); if ( td != null ) { td.removeAttribute("id"); td.appendChild( node ); return new BComponent(); } The NullPointerException originates from the importNode call. Any ideas? Can I import a node that I have extracted using JTiday into a document that was compiled with XMLC and is using the lazy dom? Cheers, Adam. 49942 [Thread-6] WARN mikey.ItemModel - item getItem java.lang.NullPointerException at org.apache.xerces.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:901) at org.apache.xerces.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:862) at org.neuralyte.mikey.ItemModel.getWebItem(ItemModel.java:215) at org.neuralyte.mikey.ItemModel.getItem(ItemModel.java:62) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:306) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:131) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.render(TemplateHelper.java:109) at org.enhydra.barracuda.core.comp.renderer.html.HTMLTemplateRenderer.renderComponent(HTMLTemplateRenderer.java:114) at org.enhydra.barracuda.core.comp.BComponent.renderView(BComponent.java:567) at org.enhydra.barracuda.core.comp.BComponent.render(BComponent.java:462) at org.enhydra.barracuda.core.comp.BComponent.render(BComponent.java:388) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:417) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:131) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:616) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:131) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:616) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:131) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:616) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:131) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:616) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:131) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:616) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:131) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:616) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:131) at org.enhydra.barracuda.core.comp.renderer.TemplateHelper.render(TemplateHelper.java:109) at org.enhydra.barracuda.core.comp.renderer.html.HTMLTemplateRenderer.renderComponent(HTMLTemplateRenderer.java:114) at org.enhydra.barracuda.core.comp.BComponent.renderView(BComponent.java:567) at org.enhydra.barracuda.core.comp.BComponent.render(BComponent.java:462) at org.enhydra.barracuda.core.comp.BComponent.render(BComponent.java:480) at org.enhydra.barracuda.core.comp.BComponent.render(BComponent.java:388) at org.enhydra.barracuda.core.event.helper.DefaultViewHandler.handleViewEvent(DefaultViewHandler.java:164) at org.enhydra.barracuda.core.event.DefaultBaseEventListener.handleEvent(DefaultBaseEventListener.java:66) at org.enhydra.barracuda.core.event.DefaultEventDispatcher.notifyListeners(DefaultEventDispatcher.java:384) at org.enhydra.barracuda.core.event.DefaultEventDispatcher.dispatch(DefaultEventDispatcher.java:184) at org.enhydra.barracuda.core.event.DefaultEventDispatcher.dispatchEvent(DefaultEventDispatcher.java:121) at org.enhydra.barracuda.core.event.DefaultEventBroker.dispatchEvent(DefaultEventBroker.java:489) at org.enhydra.barracuda.core.event.ApplicationGateway.handleDefaultExt(ApplicationGateway.java:415) at org.neuralyte.mikey.barracuda.MikeyApplicationGateway.handleDefaultExt(MikeyApplicationGateway.java:96) at org.enhydra.barracuda.core.event.ApplicationGateway.handleDefault(ApplicationGateway.java:240) at org.enhydra.barracuda.core.event.ApplicationGateway.doGet(ApplicationGateway.java:643) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533) at java.lang.Thread.run(Thread.java:484)