Bug 137817 NPE while generating PDF report
Got this excecption when generating a big PDF report. The PDF report fails and a browser error page is displayed: WARNING: D:\workspaces\runtime-workspace\.metadata\.plugins\com.ibm.xtools.analysis.reporting\reports\codereview_severity_summary\codereview_severity_summary.pdf (The system cannot find the path specified) java.io.FileNotFoundException: D:\workspaces\runtime-workspace\.metadata\.plugins\com.ibm.xtools.analysis.reporting\reports\codereview_severity_summary\codereview_severity_summary.pdf (The system cannot find the path specified) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:201) at java.io.FileOutputStream.<init>(FileOutputStream.java:153) at org.eclipse.birt.report.engine.emitter.pdf.PDFEmitter.initialize(PDFEmitter.java:186) at org.eclipse.birt.report.engine.layout.impl.ReportLayoutEngine.initialize(ReportLayoutEngine.java:381) at org.eclipse.birt.report.engine.presentation.WrappedEmitter.initialize(WrappedEmitter.java:44) at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.initialize(LocalizedEmitter.java:129) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.createContentEmitter(RunAndRenderTask.java:145) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:174) at com.ibm.xtools.analysis.reporting.internal.editor.ReportEditor$1.runInWorkspace(ReportEditor.java:167) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
engine/org.eclipse.birt.report.engine.emitter.pdf/src/org/eclipse/birt/report/engine/emitter/pdf/PDFEmitter.java
PdfContentByte contentByte, float contentByteHeight )
	{	 
		IStyle style = text.getStyle();
		assert style!=null; 
		
	    
	    
		float fontSize = text.getFontInfo().getFontSize();
		float characterSpacing = pdfMeasure( PropertyUtil.getDimensionValue(
	        	style.getProperty(StyleConstants.STYLE_LETTER_SPACING)) );
		float wordSpacing = pdfMeasure( PropertyUtil.getDimensionValue(
	        	style.getProperty(StyleConstants.STYLE_WORD_SPACING)) );
		contentByte.saveState();
		
		contentByte.beginText();
	    
		contentByte.setFontAndSize(text.getFontInfo().getBaseFont(), fontSize); 
		contentByte.setCharacterSpacing(characterSpacing);
		contentByte.setWordSpacing(wordSpacing);
	       
	    placeText(contentByte, text.getFontInfo(), layoutAreaX2PDF(textX), 
	    		layoutAreaY2PDFEx(textY, text.getFontInfo().getBaseline(), contentByteHeight));
	    
	    Color color = PropertyUtil.getColor(style.getProperty(StyleConstants.STYLE_COLOR));
	    if (null != color)
	    {
	    	contentByte.setColorFill(color);
	    }
	   
	    contentByte.showText(text.getText());