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

Reply via email to