Issue 1:
Viczai Gábor opened SPR-7130 and commented

We are currently working on an enterprise project for one of our biggest clients. We are using Spring 2.0 and Spring Web Flow 1.0 Rc4. While deploying the application to Oracle 9ias 10.1.2.0.2 in our development environment, we encountered the following error. We experienced the same error in Spring 2.0 RC2 and it was fixed in Spring 2.0 RC3 by Rick Evans. The ticket No is SPR - 2290. Kindly fix the bug. I will attach the XMLParser Oracle uses so you guys can test it. This is a critical error and we are unable to move forward.

EXCEPTION FROM THE LOG FILE:

06/10/11 17:58:18 Started

06/10/11 17:58:21 drlm: jsp: init

06/10/11 17:58:21 drlm: context: init

06/10/11 17:58:21 drlm: Loading Spring root WebApplicationContext

06/10/11 17:58:52 drlm: Error initializing servlet

org.springframework.beans.factory.BeanDefinitionStoreException: Line 8 in XML document from ServletContext resource [/WEB-INF/drlm-servlet.xml] is invalid; nested exception is oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType'

Caused by: oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType'

at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:444)

at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:303)

at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:290)

at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:196)

at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:151)

at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:405)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:357)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)

at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)

at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)

at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:123)

at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:91)

at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:94)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:294)

at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)

at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)

at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83)

at javax.servlet.GenericServlet.init(GenericServlet.java:258)

at com.evermind.server.http.HttpApplication.loadServlet(HttpApplication.java:2354)

at com.evermind.server.http.HttpApplication.findServlet(HttpApplication.java:4795)

at com.evermind.server.http.HttpApplication.initPreloadServlets(HttpApplication.java:4889)

at com.evermind.server.http.HttpApplication.initDynamic(HttpApplication.java:1015)

at com.evermind.server.http.HttpApplication.<init>(HttpApplication.java:549)

at com.evermind.server.Application.getHttpApplication(Application.java:890)

at com.evermind.server.http.HttpServer.getHttpApplication(HttpServer.java:707)

at com.evermind.server.http.HttpSite.initApplications(HttpSite.java:625)

at com.evermind.server.http.HttpSite.setConfig(HttpSite.java:278)

at com.evermind.server.http.HttpServer.setSites(HttpServer.java:278)

at com.evermind.server.http.HttpServer.setConfig(HttpServer.java:179)

at com.evermind.server.ApplicationServer.initializeHttp(ApplicationServer.java:2394)

at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:1551)

at com.evermind.server.ApplicationServerLauncher.run(ApplicationServerLauncher.java:92)

at java.lang.Thread.run(Thread.java:534)

06/10/11 17:58:52 drlm: Error preloading servlet

javax.servlet.ServletException: Error initializing servlet

at com.evermind.server.http.HttpApplication.findServlet(HttpApplication.java:4846)

at com.evermind.server.http.HttpApplication.initPreloadServlets(HttpApplication.java:4889)

at com.evermind.server.http.HttpApplication.initDynamic(HttpApplication.java:1015)

at com.evermind.server.http.HttpApplication.<init>(HttpApplication.java:549)

at com.evermind.server.Application.getHttpApplication(Application.java:890)

at com.evermind.server.http.HttpServer.getHttpApplication(HttpServer.java:707)

at com.evermind.server.http.HttpSite.initApplications(HttpSite.java:625)

at com.evermind.server.http.HttpSite.setConfig(HttpSite.java:278)

at com.evermind.server.http.HttpServer.setSites(HttpServer.java:278)

at com.evermind.server.http.HttpServer.setConfig(HttpServer.java:179)

at com.evermind.server.ApplicationServer.initializeHttp(ApplicationServer.java:2394)

at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:1551)

at com.evermind.server.ApplicationServerLauncher.run(ApplicationServerLauncher.java:92)

at java.lang.Thread.run(Thread.java:534)

06/10/11 17:58:52 drlm: drlm: init

06/10/11 17:58:52 drlm: Loading WebApplicationContext for Spring FrameworkServlet 'drlm'

06/10/11 17:58:52 drlm: Error initializing servlet

org.springframework.beans.factory.BeanDefinitionStoreException: Line 8 in XML document from ServletContext resource [/WEB-INF/drlm-servlet.xml] is invalid; nested exception is oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType'

Caused by: oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType'

at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:444)

at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:303)

at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:290)

at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:196)

at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:151)

at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:405)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:357)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)

at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)

at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)

at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:123)

at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:91)

at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:94)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:294)

at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)

at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)

at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83)

at javax.servlet.GenericServlet.init(GenericServlet.java:258)

at com.evermind.server.http.HttpApplication.loadServlet(HttpApplication.java:2354)

at com.evermind.server.http.HttpApplication.findServlet(HttpApplication.java:4795)

at com.evermind.server.http.HttpApplication.initPreloadServlets(HttpApplication.java:4889)

at com.evermind.server.http.HttpApplication.initDynamic(HttpApplication.java:1015)

at com.evermind.server.http.HttpApplication.<init>(HttpApplication.java:549)

at com.evermind.server.Application.getHttpApplication(Application.java:890)

at com.evermind.server.http.HttpServer.getHttpApplication(HttpServer.java:707)

at com.evermind.server.http.HttpSite.initApplications(HttpSite.java:625)

at com.evermind.server.http.HttpSite.setConfig(HttpSite.java:278)

at com.evermind.server.http.HttpServer.setSites(HttpServer.java:278)

at com.evermind.server.http.HttpServer.setConfig(HttpServer.java:179)

at com.evermind.server.ApplicationServer.initializeHttp(ApplicationServer.java:2394)

at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:1551)

at com.evermind.server.ApplicationServerLauncher.run(ApplicationServerLauncher.java:92)

at java.lang.Thread.run(Thread.java:534)

06/10/11 17:58:52 drlm: Error preloading servlet

javax.servlet.ServletException: Error initializing servlet

at com.evermind.server.http.HttpApplication.findServlet(HttpApplication.java:4846)

at com.evermind.server.http.HttpApplication.initPreloadServlets(HttpApplication.java:4889)

at com.evermind.server.http.HttpApplication.initDynamic(HttpApplication.java:1015)

at com.evermind.server.http.HttpApplication.<init>(HttpApplication.java:549)

at com.evermind.server.Application.getHttpApplication(Application.java:890)

at com.evermind.server.http.HttpServer.getHttpApplication(HttpServer.java:707)

at com.evermind.server.http.HttpSite.initApplications(HttpSite.java:625)

at com.evermind.server.http.HttpSite.setConfig(HttpSite.java:278)

at com.evermind.server.http.HttpServer.setSites(HttpServer.java:278)

at com.evermind.server.http.HttpServer.setConfig(HttpServer.java:179)

at com.evermind.server.ApplicationServer.initializeHttp(ApplicationServer.java:2394)

at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:1551)

at com.evermind.server.ApplicationServerLauncher.run(ApplicationServerLauncher.java:92)

at java.lang.Thread.run(Thread.java:534)

06/10/11 17:58:52 drlm: dwr-invoker: init

06/10/11 17:58:53 drlm: Started

drlm-servlet.xml file:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:flow="http://www.springframework.org/schema/webflow-config"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/webflow-config

http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd">

<!--

DispatcherServlet application context for Device Registration and Listing Application web tier.

-->

- Message source for this context, loaded from localized "messages_xx" files.

Could also reside in the root application context, as it is generic,

but is currently just used within DRLM's web tier.

-->

uk.ltd.getahead.dwr.DWRServlet
dwr-invoker
true

flowController
drlmMainMenuController

<flow:executor id="flowExecutor" registry-ref="flowRegistry" repository-type="continuation"/>

<flow:registry id="flowRegistry">

<flow:location path="file:html/WEB-INF/flows/**/*-flow.xml"/>

</flow:registry>

</beans>

Affects: 2.0 final

Issue Links:

#6979 oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType' in spring-util.xsd. We are unable to start OC4j Server.

9 votes, 10 watchers

Issue 2:
Jasper Rosenberg opened SPR-2887 and commented

This is in regards to forum thread: http://forum.springframework.org/showthread.php?t=31932

Basically, I was looking for a way to factor out some common values of two lists. I was able to solve it ultimately by declaring the common list as a org.springframework.beans.factory.config.ListFactoryBean, and then having the shared lists declare the common list as a parent with the "sourceList" property of the child set to merge. This works but isn't very friendly for an operation that doesn't seem like it should be infrequent. One proposed solution in the forum thread was to add support for "abstract" and "parent" attributes to util:list. That would allow my current solution to at least be a bit terser.

Unfortunately, I don't think this really covers the general case very well, since what if someone wanted to merge in more than just one list? The bean inheritence model doesn't support multiple parents, so you would be back to square one...

org.springframework.beans.factory.config.PropertiesFactoryBean handles this pretty nicely with its support for the "propertiesArray" property.

I suppose whatever the solution ultimately is should also be applied to Maps and Sets if applicable.

Affects: 2.0.1

Attachments:

AListAggregationFactoryBean.java (1.02 kB)

ClassListAggregationFactoryBean.java (584 bytes)

patch.txt (5.93 kB)

Issue Links:

#11189 Introduce 'merge' attribute for util namespace collection elements ("duplicates")

16 votes, 18 watchers