|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
NullPointerException at ExecutorManager.java 274Any report that I execute results in a NullPointer exception at ExecutorManager.java: 274. Report Engine: 2.2.1 Container: Jetty My Engine is initialized as follows: EngineConfig config = new EngineConfig(); config.setEngineHome( "" ); config.setLogConfig(null, Level.ALL ); IPlatformContext servletContext = new PlatformServletContext( context ); config.setPlatformContext(servletContext); config.setResourcePath( BIRT_VIEWER_SCRIPTLIB_DIR ); config.setProperty( "BIRT_VIEWER_SCRIPTLIB_DIR", BIRT_VIEWER_SCRIPTLIB_DIR ); Platform.startup(config); IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); engine = factory.createReportEngine(config); The last line executed by my code is: runTask.run( docFileName ); I can see that the run task is creating an output file and data is being written to it. The stacktrace from the BIRT Engine: org.eclipse.birt.data.engine.impl.DataEngineImpl <init> Data Engine starts up org.eclipse.birt.report.engine.extension.internal.ExtensionManager createReportItemExecutor WARNING: Create Report Item Executor fail, Config not exist class: reportItem org.eclipse.birt.report.engine.api.impl.RunTask doRun SEVERE: An error happened while running the report. Cause: java.lang.NullPointerException at org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorFactory.visitExtendedItem(ExecutorManager.java:274) at org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItemDesign.java:45) at org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorFactory.createExecutor(ExecutorManager.java:246) Looking at ExecutorManager:274 273: IReportItemExecutor executor = ExtensionManager.getInstance( ).createReportItemExecutor( ExecutorManager.this, tagName ); 274: executor.setContext( executorContext ); It appears that the null pointer exception is caused by callint setContext on a null IReportItemExecutor object. Looking into ExtensionManager.createReportItemExecutor: 140: IConfigurationElement config = (IConfigurationElement) generationExtensions.get( itemType ); 142: if ( config != null ) 143 { 144 Object object = createObject( config, "class" ); //$NON-NLS-1$ 145 if ( object instanceof IReportItemExecutor ) 146 { 147 return (IReportItemExecutor) object; 148 } 149 else if ( object instanceof IReportItemGeneration ) 150 { 151 return new ExtendedGenerateExecutor( manager, 152 (IReportItemGeneration) object ); 153 } 154 logger 155 .log( 156 Level.WARNING, 157 "Create Report Item Executor fail, Config not exist class: {0}", config.getName( ) ); //$NON-NLS-1$ 158 return null; 159 } The last log line above is where I was getting the error I pasted in my previous post. That means that this method is returning null.( Perhaps it would be good practice for ExecutorManager to check for null after its call to ExtensionManager in order to avoid the NullPointerException? ) So why am I getting null from ExtensionManager? Looking into the variable *generationExtensions*, its a HashMap thats populated in the method ExtensionManager.loadGenerationExtensionDefns. Here is the body of this method: 337 protected void loadGenerationExtensionDefns() 338 { 339 IExtensionRegistry registry = Platform.getExtensionRegistry(); 340 IExtensionPoint extPoint = registry.getExtensionPoint(EXTENSION_POINT_GENERATION); 341 if(extPoint==null) 342 return; 343 344 IExtension[] exts = extPoint.getExtensions(); 345 logger.log(Level.FINE, "Start load extension point: {0}", EXTENSION_POINT_GENERATION); //$NON-NLS-1$ 346 for (int i = 0; i < exts.length; i++) 347 { 348 IConfigurationElement[] configs = exts[i].getConfigurationElements(); 349 for (int j = 0; j < configs.length; j++) 350 { 351 String itemName = configs[j].getAttribute("name"); //$NON-NLS-1$ 352 generationExtensions.put(itemName, configs[j]); 353 logger.log(Level.FINE, "Load generation extension: {0}", itemName); //$NON-NLS-1$ 354 } 355 } 356 } So it looks like something is missing ( from the error above, I'd say "reportItem" ) from the exts array. Any ideas? _______________________________________________ birt-report-engine-dev mailing list birt-report-engine-dev@... https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev |
|
|
RE: NullPointerException atExecutorManager.java 274It seems that you have created you own extended item "reportItem" but
failed to implement the IReportItemGeneration. Can you check your report design to see if there exits an extended item "reportItem"? BIRT should do NPE checking after loading the extended item executor. It will be fixed in 2.3. Thanks. -Wei Yan -----Original Message----- From: birt-report-engine-dev-bounces@... [mailto:birt-report-engine-dev-bounces@...] On Behalf Of Grant Gavares Sent: Friday, November 09, 2007 3:29 AM To: birt-report-engine-dev@... Subject: [birt-report-engine-dev] NullPointerException atExecutorManager.java 274 Any report that I execute results in a NullPointer exception at ExecutorManager.java: 274. Report Engine: 2.2.1 Container: Jetty My Engine is initialized as follows: EngineConfig config = new EngineConfig(); config.setEngineHome( "" ); config.setLogConfig(null, Level.ALL ); IPlatformContext servletContext = new PlatformServletContext( context ); config.setPlatformContext(servletContext); config.setResourcePath( BIRT_VIEWER_SCRIPTLIB_DIR ); config.setProperty( "BIRT_VIEWER_SCRIPTLIB_DIR", BIRT_VIEWER_SCRIPTLIB_DIR ); Platform.startup(config); IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); engine = factory.createReportEngine(config); The last line executed by my code is: runTask.run( docFileName ); I can see that the run task is creating an output file and data is being written to it. The stacktrace from the BIRT Engine: org.eclipse.birt.data.engine.impl.DataEngineImpl <init> Data Engine starts up org.eclipse.birt.report.engine.extension.internal.ExtensionManager createReportItemExecutor WARNING: Create Report Item Executor fail, Config not exist class: reportItem org.eclipse.birt.report.engine.api.impl.RunTask doRun SEVERE: An error happened while running the report. Cause: java.lang.NullPointerException at org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorFactory. visitExtendedItem(ExecutorManager.java:274) at org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItem Design.java:45) at org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorFactory. createExecutor(ExecutorManager.java:246) Looking at ExecutorManager:274 273: IReportItemExecutor executor = ExtensionManager.getInstance( ).createReportItemExecutor( ExecutorManager.this, tagName ); 274: executor.setContext( executorContext ); It appears that the null pointer exception is caused by callint setContext on a null IReportItemExecutor object. Looking into ExtensionManager.createReportItemExecutor: 140: IConfigurationElement config = (IConfigurationElement) generationExtensions.get( itemType ); 142: if ( config != null ) 143 { 144 Object object = createObject( config, "class" ); //$NON-NLS-1$ 145 if ( object instanceof IReportItemExecutor ) 146 { 147 return (IReportItemExecutor) object; 148 } 149 else if ( object instanceof IReportItemGeneration ) 150 { 151 return new ExtendedGenerateExecutor( manager, 152 (IReportItemGeneration) object ); 153 } 154 logger 155 .log( 156 Level.WARNING, 157 "Create Report Item Executor fail, Config not exist class: {0}", config.getName( ) ); //$NON-NLS-1$ 158 return null; 159 } The last log line above is where I was getting the error I pasted in my previous post. That means that this method is returning null.( Perhaps it would be good practice for ExecutorManager to check for null after its call to ExtensionManager in order to avoid the NullPointerException? ) So why am I getting null from ExtensionManager? Looking into the variable *generationExtensions*, its a HashMap thats populated in the method ExtensionManager.loadGenerationExtensionDefns. Here is the body of this method: 337 protected void loadGenerationExtensionDefns() 338 { 339 IExtensionRegistry registry = Platform.getExtensionRegistry(); 340 IExtensionPoint extPoint = registry.getExtensionPoint(EXTENSION_POINT_GENERATION); 341 if(extPoint==null) 342 return; 343 344 IExtension[] exts = extPoint.getExtensions(); 345 logger.log(Level.FINE, "Start load extension point: {0}", EXTENSION_POINT_GENERATION); //$NON-NLS-1$ 346 for (int i = 0; i < exts.length; i++) 347 { 348 IConfigurationElement[] configs = exts[i].getConfigurationElements(); 349 for (int j = 0; j < configs.length; j++) 350 { 351 String itemName = configs[j].getAttribute("name"); //$NON-NLS-1$ 352 generationExtensions.put(itemName, configs[j]); 353 logger.log(Level.FINE, "Load generation extension: {0}", itemName); //$NON-NLS-1$ 354 } 355 } 356 } So it looks like something is missing ( from the error above, I'd say "reportItem" ) from the exts array. Any ideas? _______________________________________________ birt-report-engine-dev mailing list birt-report-engine-dev@... https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev _______________________________________________ birt-report-engine-dev mailing list birt-report-engine-dev@... https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev |
|
|
Re: NullPointerException atExecutorManager.java 274Thanks for the reply Wei.
To my knowledge, I haven't created any sort of extended item. Checking my .rptdesign files, there isn't anything in any called "reportItem". Also, the reports render fine in other envs using BIRT RE 2.2.1. We have somewhere around 400 reports, all of them working in our webcontainer when our webapp is deployed as a war file. When I deploy the webapp in a directory ( basically the expanded war file ) I see this error. Could this be caused by a bad classpath? On Thu, Nov 08, 2007 at 05:59:48PM -0800, Wei Yan wrote: > From: Wei Yan <wyan@...> > To: For developers on the BIRT Report Engine project <birt-report-engine-dev@...> > Date: Thu, 8 Nov 2007 17:59:48 -0800 > Subject: RE: [birt-report-engine-dev] NullPointerException > atExecutorManager.java 274 > > It seems that you have created you own extended item "reportItem" but > failed to implement the IReportItemGeneration. Can you check your report > design to see if there exits an extended item "reportItem"? > > BIRT should do NPE checking after loading the extended item executor. It > will be fixed in 2.3. > > Thanks. > > > -Wei Yan > > > -----Original Message----- > From: birt-report-engine-dev-bounces@... > [mailto:birt-report-engine-dev-bounces@...] On Behalf Of Grant > Gavares > Sent: Friday, November 09, 2007 3:29 AM > To: birt-report-engine-dev@... > Subject: [birt-report-engine-dev] NullPointerException > atExecutorManager.java 274 > > > Any report that I execute results in a NullPointer exception at > ExecutorManager.java: 274. > > Report Engine: 2.2.1 > Container: Jetty > > My Engine is initialized as follows: > > EngineConfig config = new EngineConfig(); > config.setEngineHome( "" ); > config.setLogConfig(null, Level.ALL ); > IPlatformContext servletContext = new PlatformServletContext( > context ); > config.setPlatformContext(servletContext); > config.setResourcePath( BIRT_VIEWER_SCRIPTLIB_DIR ); > config.setProperty( "BIRT_VIEWER_SCRIPTLIB_DIR", > BIRT_VIEWER_SCRIPTLIB_DIR ); > Platform.startup(config); > IReportEngineFactory factory = (IReportEngineFactory) > Platform.createFactoryObject( > IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); > engine = factory.createReportEngine(config); > > The last line executed by my code is: > > runTask.run( docFileName ); > > I can see that the run task is creating an output file and data is being > written to it. The stacktrace from the BIRT Engine: > > > org.eclipse.birt.data.engine.impl.DataEngineImpl <init> > Data Engine starts up > org.eclipse.birt.report.engine.extension.internal.ExtensionManager > createReportItemExecutor > WARNING: Create Report Item Executor fail, Config not exist class: > reportItem > org.eclipse.birt.report.engine.api.impl.RunTask doRun > SEVERE: An error happened while running the report. Cause: > java.lang.NullPointerException > at > org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorFactory. > visitExtendedItem(ExecutorManager.java:274) > at > org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItem > Design.java:45) > at > org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorFactory. > createExecutor(ExecutorManager.java:246) > > > > Looking at ExecutorManager:274 > > 273: IReportItemExecutor executor = ExtensionManager.getInstance( > ).createReportItemExecutor( ExecutorManager.this, tagName ); > 274: executor.setContext( executorContext ); > > It appears that the null pointer exception is caused by callint > setContext on a null IReportItemExecutor object. > > Looking into ExtensionManager.createReportItemExecutor: > > 140: IConfigurationElement config = (IConfigurationElement) > generationExtensions.get( itemType ); > 142: if ( config != null ) > 143 { > 144 Object object = createObject( config, "class" ); > //$NON-NLS-1$ > 145 if ( object instanceof IReportItemExecutor ) > 146 { > 147 return (IReportItemExecutor) object; > 148 } > 149 else if ( object instanceof IReportItemGeneration ) > 150 { > 151 return new ExtendedGenerateExecutor( manager, > 152 (IReportItemGeneration) object ); > 153 } > 154 logger > 155 .log( > 156 Level.WARNING, > 157 "Create Report Item Executor fail, > Config not exist class: {0}", config.getName( ) ); //$NON-NLS-1$ > 158 return null; > 159 } > > > The last log line above is where I was getting the error I pasted in my > previous post. That means that this method is returning null.( Perhaps > it would be good practice for ExecutorManager to check for null after > its call to ExtensionManager in order to avoid the NullPointerException? > ) So why am I getting null from ExtensionManager? Looking into the > variable *generationExtensions*, its a HashMap thats populated in the > method ExtensionManager.loadGenerationExtensionDefns. Here is the body > of this method: > 337 protected void loadGenerationExtensionDefns() > 338 { > 339 IExtensionRegistry registry = > Platform.getExtensionRegistry(); > 340 IExtensionPoint extPoint = > registry.getExtensionPoint(EXTENSION_POINT_GENERATION); > 341 if(extPoint==null) > 342 return; > 343 > 344 IExtension[] exts = extPoint.getExtensions(); > 345 logger.log(Level.FINE, "Start load extension point: > {0}", EXTENSION_POINT_GENERATION); //$NON-NLS-1$ > 346 for (int i = 0; i < exts.length; i++) > 347 { > 348 IConfigurationElement[] configs = > exts[i].getConfigurationElements(); > 349 for (int j = 0; j < configs.length; j++) > 350 { > 351 String itemName = > configs[j].getAttribute("name"); //$NON-NLS-1$ > 352 generationExtensions.put(itemName, configs[j]); > 353 logger.log(Level.FINE, "Load generation > extension: {0}", itemName); //$NON-NLS-1$ > 354 } > 355 } > 356 } > > > So it looks like something is missing ( from the error above, I'd say > "reportItem" ) from the exts array. > > Any ideas? > > > _______________________________________________ > birt-report-engine-dev mailing list > birt-report-engine-dev@... > https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev > _______________________________________________ > birt-report-engine-dev mailing list > birt-report-engine-dev@... > https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev birt-report-engine-dev mailing list birt-report-engine-dev@... https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev |
|
|
Re: NullPointerException atExecutorManager.java 274Found the solution: It was my classpath. I had too much stuff in my class path. In the past I'd had problems with initialization of the HTMLEmitter when I had my classpath built wrong. In the end, it was the same issue here disguised as a NullPointerException. I was using a script to dynamically build my classpath and all the jars under the plugins directory were being appended to the classpath. Once I removed those jars and only kept the jars in ReportEngine/lib , my problems were solved. On Fri, Nov 09, 2007 at 06:58:09AM -0800, Gavares, Grant wrote: > From: "Gavares, Grant" <gavares@...> > To: For developers on the BIRT Report Engine project <birt-report-engine-dev@...> > Date: Fri, 9 Nov 2007 06:58:09 -0800 > Subject: Re: [birt-report-engine-dev] NullPointerException > atExecutorManager.java 274 > > Thanks for the reply Wei. > > To my knowledge, I haven't created any sort of extended item. Checking my .rptdesign files, there isn't anything in any called "reportItem". > > Also, the reports render fine in other envs using BIRT RE 2.2.1. We have somewhere around 400 reports, all of them working in our webcontainer when our webapp is deployed as a war file. When I deploy the webapp in a directory ( basically the expanded war file ) I see this error. > > Could this be caused by a bad classpath? > > > On Thu, Nov 08, 2007 at 05:59:48PM -0800, Wei Yan wrote: > > From: Wei Yan <wyan@...> > > To: For developers on the BIRT Report Engine project <birt-report-engine-dev@...> > > Date: Thu, 8 Nov 2007 17:59:48 -0800 > > Subject: RE: [birt-report-engine-dev] NullPointerException > > atExecutorManager.java 274 > > > > It seems that you have created you own extended item "reportItem" but > > failed to implement the IReportItemGeneration. Can you check your report > > design to see if there exits an extended item "reportItem"? > > > > BIRT should do NPE checking after loading the extended item executor. It > > will be fixed in 2.3. > > > > Thanks. > > > > > > -Wei Yan > > > > > > -----Original Message----- > > From: birt-report-engine-dev-bounces@... > > [mailto:birt-report-engine-dev-bounces@...] On Behalf Of Grant > > Gavares > > Sent: Friday, November 09, 2007 3:29 AM > > To: birt-report-engine-dev@... > > Subject: [birt-report-engine-dev] NullPointerException > > atExecutorManager.java 274 > > > > > > Any report that I execute results in a NullPointer exception at > > ExecutorManager.java: 274. > > > > Report Engine: 2.2.1 > > Container: Jetty > > > > My Engine is initialized as follows: > > > > EngineConfig config = new EngineConfig(); > > config.setEngineHome( "" ); > > config.setLogConfig(null, Level.ALL ); > > IPlatformContext servletContext = new PlatformServletContext( > > context ); > > config.setPlatformContext(servletContext); > > config.setResourcePath( BIRT_VIEWER_SCRIPTLIB_DIR ); > > config.setProperty( "BIRT_VIEWER_SCRIPTLIB_DIR", > > BIRT_VIEWER_SCRIPTLIB_DIR ); > > Platform.startup(config); > > IReportEngineFactory factory = (IReportEngineFactory) > > Platform.createFactoryObject( > > IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); > > engine = factory.createReportEngine(config); > > > > The last line executed by my code is: > > > > runTask.run( docFileName ); > > > > I can see that the run task is creating an output file and data is being > > written to it. The stacktrace from the BIRT Engine: > > > > > > org.eclipse.birt.data.engine.impl.DataEngineImpl <init> > > Data Engine starts up > > org.eclipse.birt.report.engine.extension.internal.ExtensionManager > > createReportItemExecutor > > WARNING: Create Report Item Executor fail, Config not exist class: > > reportItem > > org.eclipse.birt.report.engine.api.impl.RunTask doRun > > SEVERE: An error happened while running the report. Cause: > > java.lang.NullPointerException > > at > > org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorFactory. > > visitExtendedItem(ExecutorManager.java:274) > > at > > org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItem > > Design.java:45) > > at > > org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorFactory. > > createExecutor(ExecutorManager.java:246) > > > > > > > > Looking at ExecutorManager:274 > > > > 273: IReportItemExecutor executor = ExtensionManager.getInstance( > > ).createReportItemExecutor( ExecutorManager.this, tagName ); > > 274: executor.setContext( executorContext ); > > > > It appears that the null pointer exception is caused by callint > > setContext on a null IReportItemExecutor object. > > > > Looking into ExtensionManager.createReportItemExecutor: > > > > 140: IConfigurationElement config = (IConfigurationElement) > > generationExtensions.get( itemType ); > > 142: if ( config != null ) > > 143 { > > 144 Object object = createObject( config, "class" ); > > //$NON-NLS-1$ > > 145 if ( object instanceof IReportItemExecutor ) > > 146 { > > 147 return (IReportItemExecutor) object; > > 148 } > > 149 else if ( object instanceof IReportItemGeneration ) > > 150 { > > 151 return new ExtendedGenerateExecutor( manager, > > 152 (IReportItemGeneration) object ); > > 153 } > > 154 logger > > 155 .log( > > 156 Level.WARNING, > > 157 "Create Report Item Executor fail, > > Config not exist class: {0}", config.getName( ) ); //$NON-NLS-1$ > > 158 return null; > > 159 } > > > > > > The last log line above is where I was getting the error I pasted in my > > previous post. That means that this method is returning null.( Perhaps > > it would be good practice for ExecutorManager to check for null after > > its call to ExtensionManager in order to avoid the NullPointerException? > > ) So why am I getting null from ExtensionManager? Looking into the > > variable *generationExtensions*, its a HashMap thats populated in the > > method ExtensionManager.loadGenerationExtensionDefns. Here is the body > > of this method: > > 337 protected void loadGenerationExtensionDefns() > > 338 { > > 339 IExtensionRegistry registry = > > Platform.getExtensionRegistry(); > > 340 IExtensionPoint extPoint = > > registry.getExtensionPoint(EXTENSION_POINT_GENERATION); > > 341 if(extPoint==null) > > 342 return; > > 343 > > 344 IExtension[] exts = extPoint.getExtensions(); > > 345 logger.log(Level.FINE, "Start load extension point: > > {0}", EXTENSION_POINT_GENERATION); //$NON-NLS-1$ > > 346 for (int i = 0; i < exts.length; i++) > > 347 { > > 348 IConfigurationElement[] configs = > > exts[i].getConfigurationElements(); > > 349 for (int j = 0; j < configs.length; j++) > > 350 { > > 351 String itemName = > > configs[j].getAttribute("name"); //$NON-NLS-1$ > > 352 generationExtensions.put(itemName, configs[j]); > > 353 logger.log(Level.FINE, "Load generation > > extension: {0}", itemName); //$NON-NLS-1$ > > 354 } > > 355 } > > 356 } > > > > > > So it looks like something is missing ( from the error above, I'd say > > "reportItem" ) from the exts array. > > > > Any ideas? > > > > > > _______________________________________________ > > birt-report-engine-dev mailing list > > birt-report-engine-dev@... > > https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev > > _______________________________________________ > > birt-report-engine-dev mailing list > > birt-report-engine-dev@... > > https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev > _______________________________________________ > birt-report-engine-dev mailing list > birt-report-engine-dev@... > https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev birt-report-engine-dev mailing list birt-report-engine-dev@... https://dev.eclipse.org/mailman/listinfo/birt-report-engine-dev |
| Free embeddable forum powered by Nabble | Forum Help |