SchemaCollection throws StackOverflowError when schema contains circular
reference
----------------------------------------------------------------------------------
Key: CXF-2418
URL: https://issues.apache.org/jira/browse/CXF-2418
Project: CXF
Issue Type: Bug
Components: Aegis Databinding
Affects Versions: 2.2.3
Reporter: Fried Hoeben
When a schema contains a reference to an element inside itself, or there is
another circular reference between schemas, SchemaCollection.addCrossImports()
goes into infinite recursion ending with a StackOverflowError.
Sample stack (before the error):
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addElementCrossImportsElement(XmlSchema,
XmlSchemaObject) line: 353
SchemaCollection.addCrossImportsSequence(XmlSchema, XmlSchemaSequence)
line: 376
SchemaCollection.addCrossImportsType(XmlSchema, XmlSchemaType) line:
366
SchemaCollection.addOneSchemaCrossImports(XmlSchema) line: 342
SchemaCollection.addCrossImports() line: 321
Databinding(AegisDatabinding).createSchemas(Service, Set<Type>) line:
504
Databinding(AegisDatabinding).initialize(Service) line: 285
JaxWsServiceFactoryBean(ReflectionServiceFactoryBean).buildServiceFromWSDL(String)
line: 346
JaxWsServiceFactoryBean(ReflectionServiceFactoryBean).initializeServiceModel()
line: 442
JaxWsServiceFactoryBean(ReflectionServiceFactoryBean).create() line:
195
JaxWsServiceFactoryBean.create() line: 163
JaxWsClientFactoryBean(AbstractWSDLBasedEndpointFactory).createEndpoint() line:
100
JaxWsClientFactoryBean(ClientFactoryBean).create() line: 52
JaxWsProxyFactoryBean(ClientProxyFactoryBean).create() line: 102
JaxWsProxyFactoryBean.create() line: 115
...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.