[YANGTOOLS-1202] Caused by: java.lang.ExceptionInInitializerError: No YangXPathParserFactory found Created: 22/Dec/20  Updated: 07/Jan/21  Resolved: 07/Jan/21

Status: Verified
Project: yangtools
Component/s: xpath
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Medium
Reporter: Ravi Pendurty Assignee: Ravi Pendurty
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

ODL Release - Aluminium SR0/SR1

While trying to instantiate YangParserFactory using the following method -

private static final @NonNull YangParserFactory PARSER_FACTORY;

static {
final Iterator<@NonNull YangParserFactory> it = ServiceLoader.load(YangParserFactory.class).iterator();
if (!it.hasNext())

{ throw new IllegalStateException("No YangParserFactory found"); }

PARSER_FACTORY = it.next();
}

 the below exception is encountered at the line - PARSER_FACTORY = it.next();

The objective is to parse yang files for a DOM related implementation by doing the following -

final YangParser parser = PARSER_FACTORY.createParser();
parser.addSource(YangTextSchemaSource.forResource("/META-INF/yang/config@2020-12-08.yang"));
final EffectiveModelContext schemaContext = parser.buildEffectiveModel();

However, as mentioned above, an error occurs while instantiating the provider.

2020-12-22T10:13:12,134 | ERROR | opendaylight-cluster-data-akka.actor.default-dispatcher-25 | OneForOneStrategy | 47 - com.typesafe.akka.slf4j - 2.5.31 | org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory: Provider org.opendaylight.yangtools.yang.parser.impl.YangParserFactoryImpl could not be instantiated
java.util.ServiceConfigurationError: org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory: Provider org.opendaylight.yangtools.yang.parser.impl.YangParserFactoryImpl could not be instantiated
at java.util.ServiceLoader.fail(Unknown Source) ~[?:?]
at java.util.ServiceLoader$ProviderImpl.newInstance(Unknown Source) ~[?:?]
at java.util.ServiceLoader$ProviderImpl.get(Unknown Source) ~[?:?]
at java.util.ServiceLoader$3.next(Unknown Source) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.dom.ExampleConfig.<clinit>(ExampleConfig.java:63) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.dom.NetconfDomAccessorImpl.<init>(NetconfDomAccessorImpl.java:59) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.NetconfCommunicatorManager.getNetconfDomAccessor(NetconfCommunicatorManager.java:114) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.NetconfAccessorImpl.getNetconfDomAccessor(NetconfAccessorImpl.java:105) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.Onf14NetworkElementFactory.create(Onf14NetworkElementFactory.java:39) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.DeviceManagerNetconfConnectHandler.onEnterConnected(DeviceManagerNetconfConnectHandler.java:94) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.NetconfNodeStateServiceImpl.lambda$enterConnectedState$0(NetconfNodeStateServiceImpl.java:394) ~[?:?]
at java.util.concurrent.CopyOnWriteArrayList.forEach(Unknown Source) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.NetconfNodeStateServiceImpl.enterConnectedState(NetconfNodeStateServiceImpl.java:392) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.NetconfNodeStateServiceImpl.handleDataTreeChange(NetconfNodeStateServiceImpl.java:475) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.NetconfNodeStateServiceImpl.onDataTreeChangedHandler(NetconfNodeStateServiceImpl.java:549) ~[?:?]
at org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.NetconfNodeStateServiceImpl$L1.onDataTreeChanged(NetconfNodeStateServiceImpl.java:571) ~[?:?]
at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:37) ~[bundleFile:?]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataTreeChanged(DataTreeChangeListenerActor.java:83) ~[bundleFile:?]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:44) ~[bundleFile:?]
at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:24) ~[bundleFile:2.5.31]
at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:20) ~[bundleFile:2.5.31]
at scala.PartialFunction.applyOrElse(PartialFunction.scala:187) ~[bundleFile:?]
at scala.PartialFunction.applyOrElse$(PartialFunction.scala:186) ~[bundleFile:?]
at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:20) ~[bundleFile:2.5.31]
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:241) ~[bundleFile:?]
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:242) ~[bundleFile:?]
at akka.actor.Actor.aroundReceive(Actor.scala:539) ~[bundleFile:2.5.31]
at akka.actor.Actor.aroundReceive$(Actor.scala:537) ~[bundleFile:2.5.31]
at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:227) ~[bundleFile:2.5.31]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:614) [bundleFile:2.5.31]
at akka.actor.ActorCell.invoke(ActorCell.scala:583) [bundleFile:2.5.31]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:268) [bundleFile:2.5.31]
at akka.dispatch.Mailbox.run(Mailbox.scala:229) [bundleFile:2.5.31]
at akka.dispatch.Mailbox.exec(Mailbox.scala:241) [bundleFile:2.5.31]
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [bundleFile:2.5.31]
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [bundleFile:2.5.31]
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [bundleFile:2.5.31]
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [bundleFile:2.5.31]
Caused by: java.lang.ExceptionInInitializerError: No YangXPathParserFactory found
at org.opendaylight.yangtools.yang.parser.rfc7950.reactor.ServiceLoaderState$XPath.lambda$static$0(ServiceLoaderState.java:32) ~[bundleFile:?]
at java.util.Optional.orElseThrow(Unknown Source) ~[?:?]
at org.opendaylight.yangtools.yang.parser.rfc7950.reactor.ServiceLoaderState$XPath.<clinit>(ServiceLoaderState.java:32) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors.vanillaReactorBuilder(RFC7950Reactors.java:327) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors.defaultReactorBuilder(RFC7950Reactors.java:290) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.parser.impl.DefaultReactors.defaultReactorBuilder(DefaultReactors.java:70) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.parser.impl.DefaultReactors$DefaultReactor.<clinit>(DefaultReactors.java:39) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.parser.impl.DefaultReactors.defaultReactor(DefaultReactors.java:60) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.parser.impl.YangParserFactoryImpl.<init>(YangParserFactoryImpl.java:43) ~[bundleFile:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?]
... 37 more



 Comments   
Comment by Ravi Pendurty [ 22/Dec/20 ]

highstreetherbert, FYI...

Comment by Herbert Eiselt [ 22/Dec/20 ]

This issue should be closed, because the interface is a pure internal interface, not exposed as API.

Comment by Robert Varga [ 07/Jan/21 ]

This is a problem with your code in your packaging environment.

Comment by Ravi Pendurty [ 07/Jan/21 ]

Thanks Robert. I was supposed to close the issue but got delayed. The environment is updated to overcome the exception.

Generated at Wed Feb 07 20:55:28 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.