|
Hi,
Please I need some help regarding this issue. I am in the process of migration from servicemix 3.3 to 4.4.2. I was using the cxf-bc provider without any issue. However trying to use the same wsdl/xsd in servicemix 4.4 is leading to this exception: 09:58:14,754 | ERROR | ExtenderThread-6 | tServiceReferenceRecipe$Listener | 10 - org.apache.aries.blueprint - 0.3.1 | Error calling listener method public void org.apache.servicemix.common.osgi.EndpointTracker.register(org.apache.servicemix.common.osgi.EndpointWrapper,java.util.Map) throws java.lang.Exception java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_18] at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_18] at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:226)[10:org.apache.aries.blueprint:0.3.1] at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$Listener.invokeMethods(AbstractServiceReferenceRecipe.java:465)[10:org.apache.aries.blueprint:0.3.1] at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$Listener.bind(AbstractServiceReferenceRecipe.java:430)[10:org.apache.aries.blueprint:0.3.1] at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.bind(AbstractServiceReferenceRecipe.java:327)[10:org.apache.aries.blueprint:0.3.1] at org.apache.aries.blueprint.container.ReferenceListRecipe.track(ReferenceListRecipe.java:130)[10:org.apache.aries.blueprint:0.3.1] at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.serviceAdded(AbstractServiceReferenceRecipe.java:261)[10:org.apache.aries.blueprint:0.3.1] at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.serviceChanged(AbstractServiceReferenceRecipe.java:245)[10:org.apache.aries.blueprint:0.3.1] at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3772)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.Felix.access$000(Felix.java:80)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:729)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:107)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.Felix.registerService(Felix.java:2861)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:251)[org.apache.felix.framework-3.0.9.jar:] at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:229)[org.apache.felix.framework-3.0.9.jar:] at org.apache.servicemix.common.osgi.EndpointExporter.deploy(EndpointExporter.java:120)[169:servicemix-common:2011.02.0] at org.apache.servicemix.common.osgi.EndpointExporter.afterPropertiesSet(EndpointExporter.java:184)[169:servicemix-common:2011.02.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)[66:org.springframework.beans:3.0.6.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)[65:org.springframework.context:3.0.6.RELEASE] at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)[73:org.springframework.osgi.core:1.2.1] at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)[73:org.springframework.osgi.core:1.2.1] at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)[73:org.springframework.osgi.core:1.2.1] at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)[73:org.springframework.osgi.core:1.2.1] at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)[76:org.springframework.osgi.extender:1.2.1] at java.lang.Thread.run(Thread.java:619)[:1.6.0_18] Caused by: java.lang.OutOfMemoryError: Java heap space at java.lang.String.substring(String.java:1939)[:1.6.0_18] at java.lang.String.substring(String.java:1904)[:1.6.0_18] at org.apache.xerces.dom.ElementNSImpl.setName(Unknown Source)[:] at org.apache.xerces.dom.ElementNSImpl.<init>(Unknown Source)[:] at org.apache.xerces.dom.CoreDocumentImpl.createElementNS(Unknown Source)[:] at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)[:] at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)[:] at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)[:] at org.apache.servicemix.cxfbc.SchemaUtil.inlineTransformer(SchemaUtil.java:286)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:222)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.getSchemaList(SchemaUtil.java:176)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.getSchemas(SchemaUtil.java:76)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.getSchemas(SchemaUtil.java:66)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.SchemaUtil.getSchemas(SchemaUtil.java:61)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.cxfbc.CxfBcProvider.validate(CxfBcProvider.java:445)[181:servicemix-cxf-bc:2011.02.0] at org.apache.servicemix.common.osgi.EndpointTracker$OsgiServiceUnit.<init>(EndpointTracker.java:78)[169:servicemix-common:2011.02.0] at org.apache.servicemix.common.osgi.EndpointTracker.register(EndpointTracker.java:56)[169:servicemix-common:2011.02.0] at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_18] at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_18] at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:226) at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$Listener.invokeMethods(AbstractServiceReferenceRecipe.java:465) at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$Listener.bind(AbstractServiceReferenceRecipe.java:430) Your help is very appreciated. Thanks. Abdo. |
|
Hi,
The default JAVA_MAX_MEM is 512M, it may not enough in some cases, you can specify more to see if it helps. Edit $SMX_HOME/bin/servicemix change JAVA_MAX_MEM=512M to JAVA_MAX_MEM=1024M //or more if you want Freeman On 2012-7-5, at 下午10:29, abdo wrote: > Hi, > Please I need some help regarding this issue. I am in the process of > migration from servicemix 3.3 to 4.4.2. I was using the cxf-bc > provider > without any issue. However trying to use the same wsdl/xsd in > servicemix 4.4 > is leading to this exception: > > 09:58:14,754 | ERROR | ExtenderThread-6 | tServiceReferenceRecipe > $Listener | > 10 - org.apache.aries.blueprint - 0.3.1 | Error calling listener > method > public void > org > .apache > .servicemix > .common > .osgi > .EndpointTracker > .register > (org.apache.servicemix.common.osgi.EndpointWrapper,java.util.Map) > throws java.lang.Exception > java.lang.reflect.InvocationTargetException > at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) > at > sun > .reflect > .DelegatingMethodAccessorImpl > .invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_18] > at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_18] > at > org > .apache > .aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java: > 226)[10:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe > $Listener.invokeMethods(AbstractServiceReferenceRecipe.java:465) > [10:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe > $Listener.bind(AbstractServiceReferenceRecipe.java:430) > [10:org.apache.aries.blueprint:0.3.1] > at > org > .apache > .aries > .blueprint > .container > .AbstractServiceReferenceRecipe > .bind(AbstractServiceReferenceRecipe.java:327) > [10:org.apache.aries.blueprint:0.3.1] > at > org > .apache > .aries > .blueprint > .container.ReferenceListRecipe.track(ReferenceListRecipe.java:130) > [10:org.apache.aries.blueprint:0.3.1] > at > org > .apache > .aries > .blueprint > .container > .AbstractServiceReferenceRecipe > .serviceAdded(AbstractServiceReferenceRecipe.java:261) > [10:org.apache.aries.blueprint:0.3.1] > at > org > .apache > .aries > .blueprint > .container > .AbstractServiceReferenceRecipe > .serviceChanged(AbstractServiceReferenceRecipe.java:245) > [10:org.apache.aries.blueprint:0.3.1] > at > org > .apache > .felix > .framework > .util > .EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java: > 871)[org.apache.felix.framework-3.0.9.jar:] > at > org > .apache > .felix > .framework > .util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733) > [org.apache.felix.framework-3.0.9.jar:] > at > org > .apache > .felix > .framework > .util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662) > [org.apache.felix.framework-3.0.9.jar:] > at > org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3772) > [org.apache.felix.framework-3.0.9.jar:] > at > org.apache.felix.framework.Felix.access$000(Felix.java:80) > [org.apache.felix.framework-3.0.9.jar:] > at > org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:729) > [org.apache.felix.framework-3.0.9.jar:] > at > org > .apache > .felix > .framework.ServiceRegistry.registerService(ServiceRegistry.java:107) > [org.apache.felix.framework-3.0.9.jar:] > at > org.apache.felix.framework.Felix.registerService(Felix.java:2861) > [org.apache.felix.framework-3.0.9.jar:] > at > org > .apache > .felix > .framework.BundleContextImpl.registerService(BundleContextImpl.java: > 251)[org.apache.felix.framework-3.0.9.jar:] > at > org > .apache > .felix > .framework.BundleContextImpl.registerService(BundleContextImpl.java: > 229)[org.apache.felix.framework-3.0.9.jar:] > at > org > .apache > .servicemix > .common.osgi.EndpointExporter.deploy(EndpointExporter.java:120) > [169:servicemix-common:2011.02.0] > at > org > .apache > .servicemix > .common > .osgi.EndpointExporter.afterPropertiesSet(EndpointExporter.java:184) > [169:servicemix-common:2011.02.0] > at > org > .springframework > .beans > .factory > .support > .AbstractAutowireCapableBeanFactory > .invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org > .springframework > .beans > .factory > .support > .AbstractAutowireCapableBeanFactory > .initializeBean(AbstractAutowireCapableBeanFactory.java:1417) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org > .springframework > .beans > .factory > .support > .AbstractAutowireCapableBeanFactory > .doCreateBean(AbstractAutowireCapableBeanFactory.java:519) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org > .springframework > .beans > .factory > .support > .AbstractAutowireCapableBeanFactory > .createBean(AbstractAutowireCapableBeanFactory.java:456) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org.springframework.beans.factory.support.AbstractBeanFactory > $1.getObject(AbstractBeanFactory.java:293) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org > .springframework > .beans > .factory > .support > .DefaultSingletonBeanRegistry > .getSingleton(DefaultSingletonBeanRegistry.java:222) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org > .springframework > .beans > .factory > .support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org > .springframework > .beans > .factory > .support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org > .springframework > .beans > .factory > .support > .DefaultListableBeanFactory > .preInstantiateSingletons(DefaultListableBeanFactory.java:585) > [66:org.springframework.beans:3.0.6.RELEASE] > at > org > .springframework > .context > .support > .AbstractApplicationContext > .finishBeanFactoryInitialization(AbstractApplicationContext.java:895) > [65:org.springframework.context:3.0.6.RELEASE] > at > org > .springframework > .osgi > .context.support.AbstractDelegatedExecutionApplicationContext.access > $1600(AbstractDelegatedExecutionApplicationContext.java:69) > [73:org.springframework.osgi.core:1.2.1] > at > org > .springframework > .osgi.context.support.AbstractDelegatedExecutionApplicationContext > $4.run(AbstractDelegatedExecutionApplicationContext.java:355) > [73:org.springframework.osgi.core:1.2.1] > at > org > .springframework > .osgi > .util > .internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java: > 85)[73:org.springframework.osgi.core:1.2.1] > at > org > .springframework > .osgi > .context > .support > .AbstractDelegatedExecutionApplicationContext > .completeRefresh(AbstractDelegatedExecutionApplicationContext.java: > 320)[73:org.springframework.osgi.core:1.2.1] > at > org > .springframework > .osgi > .extender > .internal > .dependencies.startup.DependencyWaiterApplicationContextExecutor > $ > CompleteRefreshTask > .run(DependencyWaiterApplicationContextExecutor.java:132) > [76:org.springframework.osgi.extender:1.2.1] > at java.lang.Thread.run(Thread.java:619)[:1.6.0_18] > Caused by: java.lang.OutOfMemoryError: Java heap space > at java.lang.String.substring(String.java:1939)[:1.6.0_18] > at java.lang.String.substring(String.java:1904)[:1.6.0_18] > at org.apache.xerces.dom.ElementNSImpl.setName(Unknown Source)[:] > at org.apache.xerces.dom.ElementNSImpl.<init>(Unknown Source)[:] > at org.apache.xerces.dom.CoreDocumentImpl.createElementNS(Unknown > Source)[:] > at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source) > [:] > at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source) > [:] > at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source) > [:] > at > org > .apache > .servicemix.cxfbc.SchemaUtil.inlineTransformer(SchemaUtil.java:286) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:222) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.addSchema(SchemaUtil.java:218) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.getSchemaList(SchemaUtil.java: > 176)[181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.getSchemas(SchemaUtil.java:76) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.getSchemas(SchemaUtil.java:66) > [181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.cxfbc.SchemaUtil.getSchemas(SchemaUtil.java:61) > [181:servicemix-cxf-bc:2011.02.0] > at > org > .apache.servicemix.cxfbc.CxfBcProvider.validate(CxfBcProvider.java: > 445)[181:servicemix-cxf-bc:2011.02.0] > at > org.apache.servicemix.common.osgi.EndpointTracker > $OsgiServiceUnit.<init>(EndpointTracker.java:78)[169:servicemix- > common:2011.02.0] > at > org > .apache > .servicemix > .common.osgi.EndpointTracker.register(EndpointTracker.java:56) > [169:servicemix-common:2011.02.0] > at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) > at > sun > .reflect > .DelegatingMethodAccessorImpl > .invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_18] > at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_18] > at > org > .apache > .aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java: > 226) > at > org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe > $Listener.invokeMethods(AbstractServiceReferenceRecipe.java:465) > at > org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe > $Listener.bind(AbstractServiceReferenceRecipe.java:430) > > Your help is very appreciated. > > Thanks. > Abdo. > > > -- > View this message in context: http://servicemix.396122.n5.nabble.com/cxfbc-java-lang-OutOfMemoryError-Java-heap-space-tp5713838.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. --------------------------------------------- Freeman Fang FuseSource Email:[hidden email] Web: fusesource.com Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: http://weibo.com/u/1473905042 |
|
Thanks Freeman for the quick response. Actually, that was the first action that I did: to increase the allocated memory. However this did not fix my issue. So I did take a look at the source code in servicemix-cxf-bc-2011.02-sources: org.apache.servicemix.cxfbc.SchemaUtil
The code was going in an infinite loop in this function: private void inlineTransformer(String key, Element inlineSchema, Element outerSchema, boolean isInclude) { NodeList nl = null; if (isInclude) { nl = outerSchema.getElementsByTagNameNS( "http://www.w3.org/2001/XMLSchema", "include"); } else { nl = outerSchema.getElementsByTagNameNS( "http://www.w3.org/2001/XMLSchema", "import"); } //Comment by Abdo: this loop can go infinite!!!! for (int j = 0; j < nl.getLength(); j++) { String schemaLocation = ((Element)nl.item(j)).getAttribute("schemaLocation"); //Added by abdo----start if(inlineList.contains(schemaLocation))continue; else inlineList.add( schemaLocation ); //Added by abdo----end if (schemaLocation != null && getXsdFileName(schemaLocation, "/"). equals(getXsdFileName(key, "/"))) { outerSchema.removeChild(nl.item(j)); for (int i = 0; i < inlineSchema.getChildNodes().getLength(); i++) { outerSchema.appendChild( outerSchema.getOwnerDocument().importNode( inlineSchema.getChildNodes().item(i), true)); } outerSchema.setPrefix("xs"); outerSchema.setAttribute("xmlns:xs", "http://www.w3.org/2001/XMLSchema"); } } } Even this patch fixed my issue for now, I don't think its the best solution. let me know what you think. Thanks. Abdo. |
|
Hi,
I believe the infinite loop indicates that your schema have circular import/include, you need figure it out and remove the circular. Also I can't understand how your patch works here. //Added by abdo----start if(inlineList.contains(schemaLocation))continue; else inlineList.add( schemaLocation ); //Added by abdo----end Is the inlineList used somewhere else but you forget to mention? If you wanna append a patch, create a jira ticket and append a diff patch is easy for review and apply. Freeman On 2012-7-7, at 上午3:18, abdo wrote: > Thanks Freeman for the quick response. Actually, that was the first > action > that I did: to increase the allocated memory. However this did not > fix my > issue. So I did take a look at the source code in > servicemix-cxf-bc-2011.02-sources: > org.apache.servicemix.cxfbc.SchemaUtil > The code was going in an infinite loop in this function: > > private void inlineTransformer(String key, Element inlineSchema, > Element > outerSchema, boolean isInclude) { > NodeList nl = null; > if (isInclude) { > nl = outerSchema.getElementsByTagNameNS( > "http://www.w3.org/2001/XMLSchema", "include"); > } else { > nl = outerSchema.getElementsByTagNameNS( > "http://www.w3.org/2001/XMLSchema", "import"); > } > > //Comment by Abdo: this loop can go infinite!!!! > for (int j = 0; j < nl.getLength(); j++) { > > String schemaLocation = > ((Element)nl.item(j)).getAttribute("schemaLocation"); > > //Added by abdo----start > if(inlineList.contains(schemaLocation))continue; > else > inlineList.add( schemaLocation ); > //Added by abdo----end > > > if (schemaLocation != null && > getXsdFileName(schemaLocation, > "/"). > equals(getXsdFileName(key, "/"))) { > > outerSchema.removeChild(nl.item(j)); > > > for (int i = 0; i < > inlineSchema.getChildNodes().getLength(); i++) { > outerSchema.appendChild( > outerSchema.getOwnerDocument().importNode( > inlineSchema.getChildNodes().item(i), > true)); > } > outerSchema.setPrefix("xs"); > outerSchema.setAttribute("xmlns:xs", > "http://www.w3.org/2001/XMLSchema"); > } > } > } > > Even this patch fixed my issue for now, I don't think its the best > solution. > let me know what you think. > > Thanks. > Abdo. > > > > -- > View this message in context: http://servicemix.396122.n5.nabble.com/cxfbc-java-lang-OutOfMemoryError-Java-heap-space-tp5713838p5713856.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. --------------------------------------------- Freeman Fang FuseSource Email:[hidden email] Web: fusesource.com Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: http://weibo.com/u/1473905042 |
| Powered by Nabble | Edit this page |
