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) { > >
