Hi

I did reproduce your NPE with exactly the same Stacktrace.

I assume you make use of xs:import inside BroadcastMonitor.xsd, so make sure
you do *correctly* specify the filesystem path to the imported xsd using the
schemaLocation attribute. As an example take a look at [1] and see how
"health.xsd" has been referenced:

  <xs:import schemaLocation="health.xsd"
namespace="org.health.check.person"/>

As "health.xsd" resides under the same directory. Take a look at [2] as well
and let us know how it's going.

Nevertheless we should properly put a NotNull-Check for this before trying
to resolve the URI

[1]
https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/resources/org/apache/camel/component/validator/person.xsd
[2] https://issues.apache.org/jira/browse/CAMEL-4877

And following is the stacktrace I did get while reproducing your use case
using one of the Camel unit-tests:

org.apache.camel.FailedToCreateRouteException: Failed to create route route1
at: >>> DoTry[[To[validator:person.xsd], To[mock:valid], DoCatch[ [class
org.apache.camel.ValidationException] -> [To[mock:invalid]]],
DoFinally[[To[mock:finally]]]]] <<< in route: Route[[From[direct:start]] ->
[DoTry[[To[validator:person.xs... because of Failed to resolve endpoint:
validator://person.xsd due to: null
        at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:873)
        at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:171)
        at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:720)
        at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1743)
        at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1536)
        at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1431)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60)
        at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1399)
        at
org.apache.camel.ContextTestSupport.startCamelContext(ContextTestSupport.java:170)
        at 
org.apache.camel.ContextTestSupport.setUp(ContextTestSupport.java:114)
        at
org.apache.camel.component.validator.ValidatorIncludeRouteTest.setUp(ValidatorIncludeRouteTest.java:130)
        at junit.framework.TestCase.runBare(TestCase.java:132)
        at org.apache.camel.TestSupport.runBare(TestSupport.java:59)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
        at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
        at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to
resolve endpoint: validator://person.xsd due to: null
        at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:466)
        at
org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:48)
        at
org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:186)
        at
org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:106)
        at
org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:112)
        at
org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:61)
        at
org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:55)
        at
org.apache.camel.model.ProcessorDefinition.createOutputsProcessor(ProcessorDefinition.java:382)
        at
org.apache.camel.model.TryDefinition.createProcessor(TryDefinition.java:75)
        at
org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:441)
        at
org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:179)
        at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:870)
        ... 25 more
Caused by: java.lang.NullPointerException
        at
org.apache.camel.util.ResourceHelper.resolveMandatoryResourceAsInputStream(ResourceHelper.java:65)
        at
org.apache.camel.component.validator.DefaultLSResourceResolver$DefaultLSInput.getByteStream(DefaultLSResourceResolver.java:82)
        at
com.sun.org.apache.xerces.internal.util.DOMEntityResolverWrapper.resolveEntity(DOMEntityResolverWrapper.java:124)
        at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.resolveEntity(XMLEntityManager.java:1100)
        at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.resolveDocument(XMLSchemaLoader.java:595)
        at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.resolveSchema(XSDHandler.java:1671)
        at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.constructTrees(XSDHandler.java:909)
        at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:569)
        at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:552)
        at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:519)
        at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:485)
        at
com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:211)
        at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:594)
        at
org.apache.camel.processor.validation.ValidatingProcessor.createSchema(ValidatingProcessor.java:233)
        at
org.apache.camel.processor.validation.ValidatingProcessor.loadSchema(ValidatingProcessor.java:105)
        at
org.apache.camel.component.validator.ValidatorComponent.createEndpoint(ValidatorComponent.java:54)
        at
org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:91)
        at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:448)
        ... 36 more

Babak

--
View this message in context: 
http://camel.465427.n5.nabble.com/npe-in-camel-2-9-1-validator-tp5540894p5541482.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to