| Summary: | Angent Style in buildOverflowStyle HTML emitter throws nullpointer exception | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Jason Weathersby <jasonweathersby> |
| Component: | BIRT | Assignee: | Birt-ReportEngine-inbox <Birt-ReportEngine-inbox> |
| Status: | VERIFIED FIXED | QA Contact: | Xiaoying Gu <bluesoldier> |
| Severity: | normal | ||
| Priority: | P3 | CC: | bluesoldier, jouyang |
| Version: | 2.6.0 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows 7 | ||
| Whiteboard: | |||
I can not reproduce this issue using the 2.6.0 birt runtime, previewing the sample report by URL: http://qa-build:8080/birt_2_6_0/frameset?__report=test.rptdesign&sample=my+parameter&__agentstyle=false try it from the API, and try it within the designer with external browswer enabled and add the __agentstyle=false. Also the report must be fixed layout. BTW, for some reason I do not get this error with sampledb, just an external db. I can reproduce the exception in 2.6.0 release build with report accessing external db. But this issue can not be reproduced in latest 2.6.1 build. (2.6.1.v20100801-0630) Already fixed. Verified in daily build 2.6.1.v20100804-0630 Similar issue #318062 |
If you add the agentstyle parameter to the viewer url and set its value to false: __agentstyle=false This throws a null pointer exception. This creates a proplem for API users as this is the default value for agentstyle. To work around the issue users need to add the setEnableAgentStyle(true) command to there code. HTMLRenderOption options = new HTMLRenderOption(); options.setOutputFileName("output/resample/MySQL.html"); options.setOutputFormat("HTML"); //options.setHtmlRtLFlag(false); options.setEnableAgentStyleEngine(true); The error happens in HTMLVisionOptimize.java (getElementStyle returns a null) public void buildCellStyle( ICellContent cell, StringBuffer styleBuffer, boolean isHead, boolean fixedCellHeight ) { IStyle style = getElementStyle( cell ); // implement the cell's clip. if ( fixedReport ) { HTMLEmitterUtil.buildOverflowStyle( styleBuffer, style, true ); } The null style is then passed to the buildOverflowStyle method and public static void buildOverflowStyle( StringBuffer buf, IStyle style, boolean outputHidden ) { String overflow = style.getOverflow( ); throws the exception,