Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » BIRT » Birt Report 3.2.22 fails in 4.3(programmatically generated reports)
Birt Report 3.2.22 fails in 4.3 [message #1405921] Fri, 08 August 2014 13:57 Go to next message
Ludwig Moser is currently offline Ludwig MoserFriend
Messages: 450
Registered: July 2009
Senior Member
Hello NG,

some (long) time ago i wrote an Report Generator,
which is able to feed my POJO objects into a rptdesign (by using a DataSetProvider). (with help of Jason Weathersby)

today i came back to this code, did a test run and noticed a failure.
sadly there is only a red information line in the report view:
Quote:
+ There is no report design object available.


and two exceptions in the log (see [1] and [2])

my report template is pretty simple.
it defines a data-set, and a datasource and finally some functions how data is retrieved.

iff i open the report in the new designer it tells me 'This design file was created by an earlier verion of BIRT. Click OK to convert it to a format supported by the current version of the product. (nothing happens - well it opens me the xml source editor but thats it - no automatic update so i could see whats expected.)

an example report template for a contact [3]
NOTE: the report xml is not generated by any birt libray i am using xstream to do so.

hopefully you can help me getting the code back on track?
if you need more information let me know (i just put up what i think is needed/helpful)
i guess data-sets and scripted data set got changed in the last versions, but i was not able to find out how.

Thanks in Advance

[1]
!ENTRY org.eclipse.osgi 4 0 2014-08-08 14:46:47.791
!MESSAGE An error occurred while automatically activating bundle org.eclipse.birt.report.designer.ui (140).
!STACK 0
org.osgi.framework.BundleException: Exception in org.eclipse.birt.report.designer.ui.ReportPlugin.start() of bundle org.eclipse.birt.report.designer.ui.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478)
	at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
	at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:109)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
	at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at org.eclipse.birt.report.viewer.utilities.ViewerClassPathHelper.getWorkspaceClassPath(ViewerClassPathHelper.java:191)
	at org.eclipse.birt.report.viewer.utilities.WebViewer.startWebApp(WebViewer.java:796)
	at org.eclipse.birt.report.viewer.utilities.WebViewer.display(WebViewer.java:1044)
	at org.eclipse.birt.report.viewer.utilities.WebViewer.display(WebViewer.java:1038)
	at at.biooffice.views.birt.ViewerView.loadReport(ViewerView.java:61)
	at at.biooffice.views.birt.ViewerView$1.widgetSelected(ViewerView.java:35)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at at.biooffice.application.Application.start(Application.java:56)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: java.lang.ExceptionInInitializerError
	at org.eclipse.birt.report.designer.ui.ReportPlugin.setDefaultElementNamePreference(ReportPlugin.java:630)
	at org.eclipse.birt.report.designer.ui.ReportPlugin.start(ReportPlugin.java:307)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
	... 48 more
Caused by: java.lang.ClassCastException: org.eclipse.birt.chart.reportitem.ChartReportItemFactoryImpl cannot be cast to org.eclipse.birt.report.model.api.extension.IReportItemFactory
	at org.eclipse.birt.report.model.metadata.PeerExtensionLoader$PeerExtensionElementLoader.loadElement(PeerExtensionLoader.java:219)
	at org.eclipse.birt.report.model.metadata.PeerExtensionLoader.loadExtension(PeerExtensionLoader.java:113)
	at org.eclipse.birt.report.model.metadata.ExtensionLoader.doLoad(ExtensionLoader.java:150)
	at org.eclipse.birt.report.model.metadata.PeerExtensionLoader.doLoad(PeerExtensionLoader.java:65)
	at org.eclipse.birt.report.model.metadata.ExtensionLoader.load(ExtensionLoader.java:71)
	at org.eclipse.birt.report.model.metadata.ExtensionManagerImpl.initialize(ExtensionManagerImpl.java:100)
	at org.eclipse.birt.report.model.metadata.MetaDataDictionary.initialize(MetaDataDictionary.java:573)
	at org.eclipse.birt.report.model.api.impl.DesignEngineImpl.ensureInitialized(DesignEngineImpl.java:96)
	at org.eclipse.birt.report.model.api.impl.DesignEngineImpl.<init>(DesignEngineImpl.java:63)
	at org.eclipse.birt.report.model.api.impl.DesignEngineFactory.createDesignEngine(DesignEngineFactory.java:34)
	at org.eclipse.birt.report.model.api.DesignEngine.<init>(DesignEngine.java:98)
	at org.eclipse.birt.report.designer.util.DEUtil.<clinit>(DEUtil.java:140)
	... 53 more
Root exception:
java.lang.ExceptionInInitializerError
	at org.eclipse.birt.report.designer.ui.ReportPlugin.setDefaultElementNamePreference(ReportPlugin.java:630)
	at org.eclipse.birt.report.designer.ui.ReportPlugin.start(ReportPlugin.java:307)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478)
	at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
	at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:109)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
	at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at org.eclipse.birt.report.viewer.utilities.ViewerClassPathHelper.getWorkspaceClassPath(ViewerClassPathHelper.java:191)
	at org.eclipse.birt.report.viewer.utilities.WebViewer.startWebApp(WebViewer.java:796)
	at org.eclipse.birt.report.viewer.utilities.WebViewer.display(WebViewer.java:1044)
	at org.eclipse.birt.report.viewer.utilities.WebViewer.display(WebViewer.java:1038)
	at at.biooffice.views.birt.ViewerView.loadReport(ViewerView.java:61)
	at at.biooffice.views.birt.ViewerView$1.widgetSelected(ViewerView.java:35)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at at.biooffice.application.Application.start(Application.java:56)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: java.lang.ClassCastException: org.eclipse.birt.chart.reportitem.ChartReportItemFactoryImpl cannot be cast to org.eclipse.birt.report.model.api.extension.IReportItemFactory
	at org.eclipse.birt.report.model.metadata.PeerExtensionLoader$PeerExtensionElementLoader.loadElement(PeerExtensionLoader.java:219)
	at org.eclipse.birt.report.model.metadata.PeerExtensionLoader.loadExtension(PeerExtensionLoader.java:113)
	at org.eclipse.birt.report.model.metadata.ExtensionLoader.doLoad(ExtensionLoader.java:150)
	at org.eclipse.birt.report.model.metadata.PeerExtensionLoader.doLoad(PeerExtensionLoader.java:65)
	at org.eclipse.birt.report.model.metadata.ExtensionLoader.load(ExtensionLoader.java:71)
	at org.eclipse.birt.report.model.metadata.ExtensionManagerImpl.initialize(ExtensionManagerImpl.java:100)
	at org.eclipse.birt.report.model.metadata.MetaDataDictionary.initialize(MetaDataDictionary.java:573)
	at org.eclipse.birt.report.model.api.impl.DesignEngineImpl.ensureInitialized(DesignEngineImpl.java:96)
	at org.eclipse.birt.report.model.api.impl.DesignEngineImpl.<init>(DesignEngineImpl.java:63)
	at org.eclipse.birt.report.model.api.impl.DesignEngineFactory.createDesignEngine(DesignEngineFactory.java:34)
	at org.eclipse.birt.report.model.api.DesignEngine.<init>(DesignEngine.java:98)
	at org.eclipse.birt.report.designer.util.DEUtil.<clinit>(DEUtil.java:140)
	... 53 more

[2]
org.eclipse.birt.report.exception.ViewerException: There is no report design object available.
	at org.eclipse.birt.report.context.ViewerAttributeBean.__init(ViewerAttributeBean.java:226)
	at org.eclipse.birt.report.context.BaseAttributeBean.init(BaseAttributeBean.java:230)
	at org.eclipse.birt.report.context.ViewerAttributeBean.<init>(ViewerAttributeBean.java:118)
	at org.eclipse.birt.report.context.BirtContext.__init(BirtContext.java:44)
	at org.eclipse.birt.report.context.BaseContext.<init>(BaseContext.java:69)
	at org.eclipse.birt.report.context.BirtContext.<init>(BirtContext.java:30)
	at org.eclipse.birt.report.servlet.ViewerServlet.__getContext(ViewerServlet.java:150)
	at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doGet(BirtSoapMessageDispatcherServlet.java:151)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:386)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:366)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Unknown Source)


[3]
<?xml version="1.0" encoding="UTF-8" ?><report xmlns="http://WWW.eclipse.org/birt/2005/design" version="1.0" id="1">
  <property name="createdBy">tlmf\moser</property>
  <property name="units">mm</property>
  <property name="iconFile">\templates\blank_report.gif</property>
  <property name="bidiLayoutOrientation">ltr</property>
  <property name="imageDPI">96</property>
  <data-sources>
    <script-data-source name="BioOffice" id="2"/>
  </data-sources>
  <data-sets>
    <script-data-set name="Contact" id="3">
      <list-property name="resultSetHints"/>
      <list-property name="columnHints"/>
      <structure name="cachedMetaData">
        <list-property name="resultSet"/>
      </structure>
      <property name="dataSource">BioOffice</property>
      <methodName>open</methodName>
      <code>count = 0;
/*
* load and init data reader
* import Platform from org.eclipse.core.runtime
*/
importPackage(Packages.org.eclipse.core.runtime);
/* load bundle with POJOs and data loading class */
myBundle = Platform.getBundle("at.biooffice.views.birt");
/* load data reader class */
readerClass = myBundle.loadClass("at.biooffice.views.birt.ReportDataSetProvider");
/* create new instance of DataReader */
readerInstance = readerClass.newInstance();
/* load data tidy up class */
tidyClass = myBundle.loadClass("at.biooffice.views.birt.xml.Tidy");
/* create new instance of DataReader */
tidy = tidyClass.newInstance();
// get the list
clazzContactList = readerInstance.getDataSet("Contact");</code>
      <method name="fetch"><![CDATA[if (count < clazzContactList.size()){
	var obj = clazzContactList.get(count);
	count++;
	return true;
}
return false;
]]></method>
    </script-data-set>
  </data-sets>
  <page-setup>
    <simple-master-page name="Contact" id="4"/>
  </page-setup>
</report>
Re: Birt Report 3.2.22 fails in 4.3 [message #1405926 is a reply to message #1405921] Fri, 08 August 2014 14:13 Go to previous messageGo to next message
Ludwig Moser is currently offline Ludwig MoserFriend
Messages: 450
Registered: July 2009
Senior Member
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.23" id="1">
<property name="createdBy">tlmf\moser</property>
<property name="units">in</property>
<property name="bidiLayoutOrientation">ltr</property>
<property name="imageDPI">96</property>
<data-sources>
<script-data-source name="BioOffice" id="2"/>
</data-sources>
<data-sets>
<script-data-set name="DataType" id="3">
<structure name="cachedMetaData"/>
<property name="dataSource">BioOffice</property>
<method name="open"><![CDATA[count = 0;
/*
* load and init data reader
* import Platform from org.eclipse.core.runtime
*/
importPackage(Packages.org.eclipse.core.runtime);
/* load bundle with POJOs and data loading class */
myBundle = Platform.getBundle("at.biooffice.views.birt");
/* load data reader class */
readerClass = myBundle.loadClass("at.biooffice.views.birt.ReportDataSetProvider");
/* create new instance of DataReader */
readerInstance = readerClass.newInstance();
/* load data tidy up class */
tidyClass = myBundle.loadClass("at.biooffice.views.birt.xml.Tidy");
/* create new instance of DataReader */
tidy = tidyClass.newInstance();
// get the list
clazzContactList = readerInstance.getDataSet("Contact");]]></method>
<method name="fetch"><![CDATA[if (count < clazzContactList.size()){
var obj = clazzContactList.get(count);
count++;
return true;
}
return false;]]></method>
</script-data-set>
</data-sets>
<page-setup>
<simple-master-page name="Simple MasterPage" id="4"/>
</page-setup>
</report>

[Updated on: Fri, 08 August 2014 15:00]

Report message to a moderator

Re: Birt Report 3.2.22 fails in 4.3 [message #1790467 is a reply to message #1405921] Mon, 11 June 2018 12:33 Go to previous message
shakuntala chaya is currently offline shakuntala chayaFriend
Messages: 1
Registered: June 2018
Junior Member
Hi All,
I am also facing the same issue with Birt 4.7 and Eclipse Oxygen Release 2.
Can anybody have a solution for it.?

I think I am missing some Birt jar files to add in Target Platform.
Previous Topic:Connecting a MS Access database using java 8
Next Topic:Report with accent mark
Goto Forum:
  


Current Time: Thu Sep 20 22:03:36 GMT 2018

Powered by FUDForum. Page generated in 0.02345 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top