Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
Java-SDO-beta1
-
None
-
Rational 7.0.0.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223ifx-20070323 (JIT enabled)
Description
I am attempting to have a number of root objects creatable from a single factory, ie. my main xsd contains a number of imports:
<xsd:include schemaLocation="SyncItemClass.xsd"/>
<xsd:include schemaLocation="SyncCatalog.xsd"/>
<xsd:include schemaLocation="AddRFQ.xsd"/>
<xsd:include schemaLocation="CancelRFQ.xsd"/>
<xsd:include schemaLocation="ProcessPO.xsd"/>
... etc.
This works well for me with the SDO Generator in RAD, but tuscany is generating a very large createXSDMetaData() method that will not compile:
java.lang.Error: Unresolved compilation problem:
The code of method createXSDMetaData(ModelFactoryImpl) is exceeding the 65535 bytes limit
at com.ibm.ocs.sdo.impl.SdoFactoryImpl.createXSDMetaData(SdoFactoryImpl.java:10695)
at com.ibm.ocs.sdo.impl.SdoFactoryImpl.initializeMetaData(SdoFactoryImpl.java:10692)
at com.ibm.ocs.sdo.impl.SdoFactoryImpl.init(SdoFactoryImpl.java:3455)
at com.ibm.ocs.sdo.SdoFactory.<clinit>(SdoFactory.java:28)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:187)
at com.ibm.ocs.sdo.test.ProcessPOTestCase.testSerializePO(ProcessPOTestCase.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
The createXSDMetaData method looks like this fragment:
protected void createXSDMetaData(ModelFactoryImpl theModelPackageImpl)
{
super.initXSD();
Property property = null;
addXSDMapping
(acknowledgeCompanyType,
new String[]
);
addXSDMapping
(getProperty(acknowledgeCompanyType, AcknowledgeCompanyImpl.INTERNAL_HEADER),
new String[]
);
addXSDMapping
(controlVerbType,
new String[]
);
addXSDMapping
(countryCodeType,
new String[]
);
addXSDMapping
(currencyCodeType,
new String[]
);
addXSDMapping
(idType,
new String[]
);
... etc. addXSDMapping fragment is repeated for every object.