With some further investigation I found the offending code and have fixed it under commit 1068021
Tim ---------------------------------------- > From: [email protected] > To: [email protected]; [email protected] > Subject: RE: svn commit: r1066828 - > /aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java > Date: Mon, 7 Feb 2011 16:47:37 +0000 > > > Hi, > > Since accepting this commmit I have seen failures in > org.apache.aries.samples.blog.itests.QuiesceBlogSampleWithEbaTest > > I tried reverting the changes to this file and rebuilding my stream and > things started passing again. I see the following exception generated in the > test log. > > java.lang.NullPointerException > at > org.apache.aries.proxy.impl.AsmProxyManager.getInvocationHandler(AsmProxyManager.java:99) > at > org.apache.aries.proxy.impl.AbstractProxyManager.isProxy(AbstractProxyManager.java:73) > at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:70) > at > org.apache.aries.jpa.blueprint.aries.impl.$NSHandler2115075601.equals(Unknown > Source) > at > org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl.getSchema(NamespaceHandlerRegistryImpl.java:219) > at > org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.getSchema(NamespaceHandlerRegistryImpl.java:329) > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:276) > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:228) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314) > at java.util.concurrent.FutureTask.run(FutureTask.java:149) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:109) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:218) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) > at java.lang.Thread.run(Thread.java:736) > > > Regards, > > Tim > > ---------------------------------------- > > Subject: svn commit: r1066828 - > > /aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java > > Date: Thu, 3 Feb 2011 15:13:59 +0000 > > To: [email protected] > > From: [email protected] > > > > Author: gnodet > > Date: Thu Feb 3 15:13:58 2011 > > New Revision: 1066828 > > > > URL: http://svn.apache.org/viewvc?rev=1066828&view=rev > > Log: > > [ARIES-563] The NamespaceHandlerRegistryImpl does not actually reuse parsed > > schemas > > > > Modified: > > aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java > > > > Modified: > > aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java > > URL: > > http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java?rev=1066828&r1=1066827&r2=1066828&view=diff > > ============================================================================== > > --- > > aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java > > (original) > > +++ > > aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java > > Thu Feb 3 15:13:58 2011 > > @@ -214,7 +214,14 @@ public class NamespaceHandlerRegistryImp > > // If it contains additional namespaces, it should not be a problem since > > // they won't be used at all > > for (Map key : schemas.keySet()) { > > - if (key.equals(handlers)) { > > + boolean found = true; > > + for (URI uri : handlers.keySet()) { > > + if (!handlers.get(uri).equals(key.get(uri))) { > > + found = false; > > + break; > > + } > > + } > > + if (found) { > > schema = schemas.get(key).get(); > > break; > > } > > @@ -234,6 +241,22 @@ public class NamespaceHandlerRegistryImp > > } > > } > > schema = getSchemaFactory().newSchema(schemaSources.toArray(new > > Source[schemaSources.size()])); > > + // Remove schemas that are fully included > > + for (Iterator> iterator = schemas.keySet().iterator(); > > iterator.hasNext();) { > > + Map key = iterator.next(); > > + boolean found = true; > > + for (URI uri : key.keySet()) { > > + if (!key.get(uri).equals(handlers.get(uri))) { > > + found = false; > > + break; > > + } > > + } > > + if (found) { > > + iterator.remove(); > > + break; > > + } > > + } > > + // Add our new schema > > schemas.put(handlers, new SoftReference(schema)); > > } finally { > > for (StreamSource s : schemaSources) { > > > > >
