Bug 314645 XML Datasource is not Thread-Safe when passing data as InputStream
Build Identifier: Eclipse Build id: 20090920-1017 / BIRT Runtime 2.5.1 + 2.5.2 When passing XML-data to the IRunTask in a multi-threaded application, some of the resulting .rptdocument files will be corrupted. The error only occures when passing an InputStream using the setAppContext method: ctxMap.put("org.eclipse.birt.report.data.oda.xml.inputStream", new FileInputStream("data.xml")); ctxMap.put("org.eclipse.birt.report.data.oda.xml.closeInputStream", new Boolean(true)); task.setAppContext(ctxMap); This warning will be written to the log: "WARNUNG: Exceptions occur during xml parsing" (see attachments for stackstrace) Reproducible: Sometimes Steps to Reproduce: 1. Run the sample application in the attachments (use the -Xmx1024m VM-Argument to avoid our of memory errors 2. Wait till the log shows the this warning: WARNUNG: Exceptions occur during xml parsing 3. Kill the sample application process 4. Analyze the generated rptdocument files (sort by ascending file size to find corrupted files)
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/odaconsumer/Driver.java
throw new IllegalArgumentException( dataSourceDriverId );
			return null;
	    }
	    catch( Exception ex )
		{
		    
			if( useDtpExtPoint && 
			    ex instanceof IllegalArgumentException )
			{
			    if( ! throwsIfNotFound )
			        return null;	
			}
			
			
	    	return throwConfigException( methodName, dataSourceDriverId, ex );
		}
	}
		
	private ExtensionManifest throwConfigException( String methodName, 
	        		String dataSourceDriverId, Throwable cause ) 
		throws DataException
	{
		sm_logger.logp( Level.SEVERE, sm_className, methodName,
			"Cannot find or process the ODA data source extension configuration.", cause ); 
		
		throw ExceptionHandler.newException( ResourceConstants.CANNOT_PROCESS_DRIVER_CONFIG, 
		                                    new Object[] { dataSourceDriverId }, cause );	
	}
}