Eugene Tarasov created CAMEL-6790:
-------------------------------------

             Summary: Resuming a bundle that uses blueprint+camel fails if it 
was suspended externally
                 Key: CAMEL-6790
                 URL: https://issues.apache.org/jira/browse/CAMEL-6790
             Project: Camel
          Issue Type: Bug
          Components: camel-blueprint
    Affects Versions: 2.12.1
            Reporter: Eugene Tarasov


There is a problem in this scenario:

# Karaf is running.
# Start some bundle that uses blueprint+camel. For convenience will call it 
<testbundle>.
# Cause this bundle to be suspended by container, by refreshing a bundle that 
provides some namespace used by <testbundle> bundle. For example, by refreshing 
camel-cxf (assuming that <testbundle> uses also blueprint/cxf namespace). In 
logs one can see something like this:
bq. Bundle <testbundle> is waiting for namespace handlers 
[http://camel.apache.org/schema/blueprint/cxf]

In this case after the missing namespace becomes available again the bundle 
will fail to resume with exception like:
bq. Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The 
matching wildcard is strict, but no declaration can be found for element 
'camelContext'.

The problem is in CamelNamespaceHandler class which is a part of 
camel-blueprint. When it parses incoming dom it changes namespace of all 
elements from http://camel.apache.org/schema/blueprint to 
http://camel.apache.org/schema/spring. So when a bundle that uses 
blueprint+camel needs to validate its blueprint context again (like if it was 
waiting for some namespace) the new validation will fail.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to