Defect #707 ยป relation_jasper.patch
src/com/servoy/plugins/jasperreports/ServoyThreadSubreportRunnerFactory.java (working copy) | ||
---|---|---|
29 | 29 | |
30 | 30 |
package com.servoy.plugins.jasperreports; |
31 | 31 | |
32 |
import com.servoy.j2db.IServiceProvider; |
|
33 |
import com.servoy.j2db.J2DBGlobals; |
|
34 | ||
32 | 35 |
import net.sf.jasperreports.engine.fill.JRBaseFiller; |
33 | 36 |
import net.sf.jasperreports.engine.fill.JRFillSubreport; |
34 | 37 |
import net.sf.jasperreports.engine.fill.JRSubreportRunResult; |
... | ... | |
47 | 50 |
private ClassLoader pluginContextClassLoader; |
48 | 51 |
private IJasperReportsService jasperReportsService; |
49 | 52 |
private String jasperReportsClientId; |
50 | ||
53 |
private IServiceProvider application; |
|
54 |
|
|
51 | 55 |
public JRSubreportRunner createSubreportRunner(JRFillSubreport fillSubreport, JRBaseFiller subreportFiller) |
52 | 56 |
{ |
53 | 57 |
return new JRThreadSubreportRunner(fillSubreport, subreportFiller){ |
... | ... | |
58 | 62 |
pluginContextClassLoader = Thread.currentThread().getContextClassLoader(); |
59 | 63 |
jasperReportsService = JasperReportsProvider.jasperReportsLocalService.get(); |
60 | 64 |
jasperReportsClientId = JasperReportsProvider.jasperReportsLocalClientID.get(); |
61 |
|
|
65 |
// internal Servoy API, needed for in memory data sources |
|
66 |
application = J2DBGlobals.getServiceProvider(); |
|
62 | 67 |
return super.start(); |
63 | 68 |
} |
64 | 69 | |
... | ... | |
68 | 73 |
Thread.currentThread().setContextClassLoader(pluginContextClassLoader); |
69 | 74 |
JasperReportsProvider.jasperReportsLocalService.set(jasperReportsService); |
70 | 75 |
JasperReportsProvider.jasperReportsLocalClientID.set(jasperReportsClientId); |
71 | ||
76 |
J2DBGlobals.setServiceProvider(application); |
|
72 | 77 |
super.run(); |
73 | 78 |
}}; |
74 | 79 |
} |