Uploaded image for project: 'controller'
  1. controller
  2. CONTROLLER-72

java.lang.ClassNotFoundException when using enumeration in a leaf directly

    XMLWordPrintable

Details

    • Improvement
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • mdsal
    • None
    • Operating System: Mac OS
      Platform: PC

    Description

      In group-types.yang:

      grouping group-types {
      leaf group-type {
      type enumeration

      { enum group-all; enum group-select; enum group-indirect; enum group-ff; }

      }
      }

      Results in the exception at osgi console:

      2013-11-30 18:18:15.915 IST [Gogo shell] INFO o.o.c.s.b.d.s.i.LazyGeneratedCodecRegistry - Binding Class interface org.opendaylight.yang.gen.v1.urn.o
      pendaylight.group.config.rev131024.Groups encountered.
      2013-11-30 18:18:15.935 IST [Gogo shell] ERROR o.o.c.s.b.d.s.i.TransformerGenerator - Cannot compile DOM Codec for interface org.opendaylight.yang.gen
      .v1.urn.opendaylight.group.config.rev131024.groups.Group
      java.lang.ClassNotFoundException: org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes.GroupType
      at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) ~[na:na]
      at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) ~[na:na]
      at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) ~[na:na]
      at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) ~[na:na]
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.7.0_25]
      at org.opendaylight.controller.sal.binding.impl.util.ClassLoaderUtils.loadClassWithTCCL(ClassLoaderUtils.java:57) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.asCtClass(TransformerGenerator.java:3164) [bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.getResolvedName(TransformerGenerator.java:3152) [bundlefil
      e:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator._serializeProperty(TransformerGenerator.java:2863) [bundle
      file:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.serializeProperty(TransformerGenerator.java:3287) [bundlef
      ile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.transformDataContainerBody(TransformerGenerator.java:2749)
      [bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator._serializeBody(TransformerGenerator.java:2597) [bundlefile
      :na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.serializeBody(TransformerGenerator.java:3266) [bundlefile:
      na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.serializeBodyFacade(TransformerGenerator.java:1369) [bundl
      efile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.access$1700(TransformerGenerator.java:70) [bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator$21$1.process(TransformerGenerator.java:850) ~[bundlefile:n
      a]
      at org.opendaylight.controller.sal.binding.codegen.util.JavassistUtils.method(JavassistUtils.java:64) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator$21.process(TransformerGenerator.java:857) ~[bundlefile:na]

      at org.opendaylight.controller.sal.binding.codegen.util.JavassistUtils.createClass(JavassistUtils.java:105) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator._generateTransformerFor(TransformerGenerator.java:925) [bu
      ndlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.generateTransformerFor(TransformerGenerator.java:3188) [bu
      ndlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.access$100(TransformerGenerator.java:70) [bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator$11.call(TransformerGenerator.java:231) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator$11.call(TransformerGenerator.java:216) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.impl.util.ClassLoaderUtils.withClassLoaderAndLock(ClassLoaderUtils.java:36) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.impl.util.ClassLoaderUtils.withClassLoaderAndLock(ClassLoaderUtils.java:24) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.transformerFor(TransformerGenerator.java:237) [bundlefile:
      na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.serializer(TransformerGenerator.java:432) [bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator._serializeProperty(TransformerGenerator.java:2842) [bundle
      file:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.serializeProperty(TransformerGenerator.java:3284) [bundlef
      ile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.transformDataContainerBody(TransformerGenerator.java:2749)
      [bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator._serializeBody(TransformerGenerator.java:2637) [bundlefile
      :na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.serializeBody(TransformerGenerator.java:3264) [bundlefile:
      na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.serializeBodyFacade(TransformerGenerator.java:1369) [bundl
      efile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.access$1700(TransformerGenerator.java:70) [bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator$21$1.process(TransformerGenerator.java:850) ~[bundlefile:n
      a]
      at org.opendaylight.controller.sal.binding.codegen.util.JavassistUtils.method(JavassistUtils.java:64) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator$21.process(TransformerGenerator.java:857) ~[bundlefile:na]

      at org.opendaylight.controller.sal.binding.codegen.util.JavassistUtils.createClass(JavassistUtils.java:105) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator._generateTransformerFor(TransformerGenerator.java:925) [bu
      ndlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.generateTransformerFor(TransformerGenerator.java:3188) [bu
      ndlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.access$100(TransformerGenerator.java:70) [bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator$11.call(TransformerGenerator.java:231) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator$11.call(TransformerGenerator.java:216) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.impl.util.ClassLoaderUtils.withClassLoaderAndLock(ClassLoaderUtils.java:36) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.impl.util.ClassLoaderUtils.withClassLoaderAndLock(ClassLoaderUtils.java:24) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator.transformerFor(TransformerGenerator.java:237) [bundlefile:
      na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.LazyGeneratedCodecRegistry.getCodecForDataObject(LazyGeneratedCodecRegistry.jav
      a:144) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.LazyGeneratedCodecRegistry.bindingClassEncountered(LazyGeneratedCodecRegistry.j
      ava:164) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.InstanceIdentifierCodecImpl.serialize(InstanceIdentifierCodecImpl.java:132) ~[b
      undlefile:na]
      at org.opendaylight.controller.sal.binding.dom.serializer.impl.RuntimeGeneratedMappingServiceImpl.toDataDom(RuntimeGeneratedMappingServiceImpl
      .java:230) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentDataServiceConnector.readConfigurationData(BindingIndependentDat
      aServiceConnector.java:74) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentDataServiceConnector.readConfigurationData(BindingIndependentDat
      aServiceConnector.java:33) ~[bundlefile:na]
      at org.opendaylight.controller.md.sal.common.impl.routing.AbstractDataReadRouter$1.apply(AbstractDataReadRouter.java:63) ~[bundlefile:na]
      at org.opendaylight.controller.md.sal.common.impl.routing.AbstractDataReadRouter$1.apply(AbstractDataReadRouter.java:60) ~[bundlefile:na]
      at com.google.common.collect.Iterators$8.transform(Iterators.java:860) ~[bundlefile:na]
      at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) ~[bundlefile:na]
      at org.opendaylight.controller.sal.binding.impl.util.BindingAwareDataReaderRouter.merge(BindingAwareDataReaderRouter.java:12) ~[bundlefile:na]

      at org.opendaylight.controller.sal.binding.impl.util.BindingAwareDataReaderRouter.merge(BindingAwareDataReaderRouter.java:8) ~[bundlefile:na]
      at org.opendaylight.controller.md.sal.common.impl.routing.AbstractDataReadRouter.readConfigurationData(AbstractDataReadRouter.java:32) ~[bundl
      efile:na]
      at org.opendaylight.controller.md.sal.common.impl.service.AbstractDataBroker.readConfigurationData(AbstractDataBroker.java:131) ~[bundlefile:n
      a]
      at org.opendaylight.controller.md.sal.common.impl.service.AbstractDataTransaction.readConfigurationData(AbstractDataTransaction.java:35) ~[bun
      dlefile:na]
      at org.opendaylight.controller.md.sal.common.impl.service.AbstractDataTransaction.readConfigurationData(AbstractDataTransaction.java:11) ~[bun
      dlefile:na]
      at org.opendaylight.openflowplugin.test.OpenflowpluginGroupTestCommandProvider.writeGroup(OpenflowpluginGroupTestCommandProvider.java:148) ~[n
      a:na]
      at org.opendaylight.openflowplugin.test.OpenflowpluginGroupTestCommandProvider._addGroup(OpenflowpluginGroupTestCommandProvider.java:141) ~[na
      :na]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
      at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
      at org.eclipse.equinox.console.command.adapter.CommandProviderAdapter.main(CommandProviderAdapter.java:46) ~[na:na]
      at org.eclipse.equinox.console.command.adapter.CommandProviderAdapter._main(CommandProviderAdapter.java:64) ~[na:na]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
      at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
      at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136) ~[na:na]
      at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) ~[na:na]
      at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469) ~[na:na]
      at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395) ~[na:na]
      at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) ~[na:na]
      at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) ~[na:na]
      at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) ~[na:na]
      at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89) ~[na:na]
      at org.apache.felix.gogo.shell.Console.run(Console.java:62) ~[na:na]
      at org.apache.felix.gogo.shell.Shell.console(Shell.java:203) ~[na:na]
      at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128) ~[na:na]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
      at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
      at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136) ~[na:na]
      at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) ~[na:na]
      at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469) ~[na:na]
      at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395) ~[na:na]
      at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) ~[na:na]
      at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) ~[na:na]
      at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) ~[na:na]
      at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89) ~[na:na]
      at org.apache.felix.gogo.shell.Activator.run(Activator.java:75) ~[na:na]
      at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
      2013-11-30 18:18:16.313 IST [Gogo shell] ERROR o.o.c.s.b.d.s.i.TransformerGenerator - Cannot compile DOM Codec for interface org.opendaylight.yang.gen
      .v1.urn.opendaylight.group.config.rev131024.Groups. One of it's prerequisites was not generated.
      gogo: CodeGenerationException: Cannot compile Transformator for interface org.opendaylight.yang.gen.v1.urn.opendaylight.group.config.rev131024.groups.
      Group
      osgi> 2013-11-30 18:18:20.186 IST [nioEventLoopGroup-6-2] INFO o.o.o.protocol.impl.core.IdleHandler - Switch idle
      2013-11-30 18:18:46.309 IST [nioEventLoopGroup-6-3] INFO o.o.o.p.i.c.PublishingChannelInitializer - Incoming connection from (remote address): /192.1
      68.1.3
      2013-11-30 18:18:47.153 IST [nioEventLoopGroup-6-3] INFO o.o.o.p.i.c.PublishingChannelInitializer - Incoming connection accepted - building pipeline
      2013-11-30 18:18:47.148 IST [nioEventLoopGroup-6-2] INFO o.o.o.p.impl.core.OFFrameDecoder - OF Protocol message received, type:2
      2013-11-30 18:18:47.157 IST [nioEventLoopGroup-6-3] INFO o.o.o.p.impl.core.OFFrameDecoder - OF Protocol message received, type:0
      2013-11-30 18:18:47.158 IST [nioEventLoopGroup-6-3] INFO o.o.o.p.i.c.ConnectionAdapterImpl - Hello received / branch
      2013-11-30 18:18:47.159 IST [pool-32-thread-1] INFO o.o.o.o.md.core.HandshakeManagerImpl - handshake STARTED
      2013-11-30 18:18:47.167 IST [nioEventLoopGroup-6-3] INFO o.o.o.p.impl.core.OFFrameDecoder - OF Protocol message received, type:6
      2013-11-30 18:18:47.168 IST [pool-32-thread-1] INFO o.o.o.o.md.core.HandshakeManagerImpl - handshake SETTLED: version=4, datapathId=34, auxiliaryId=0

      2013-11-30 18:18:47.169 IST [pool-32-thread-1] WARN o.o.o.o.m.core.session.OFSessionUtil - duplicate datapathId occured while registering new switch
      session: 22
      2013-11-30 18:18:47.170 IST [pool-32-thread-1] INFO o.o.o.o.m.c.ConnectionConductorImpl - disconnecting: sessionCtx=org.opendaylight.openflowplugin.o
      penflow.md.core.session.SessionContextOFImpl@2360bbe7|auxId=null
      2013-11-30 18:18:47.172 IST [pool-32-thread-1] WARN o.o.o.p.i.c.ConnectionAdapterImpl - rpc response discarded: RpcResultKey [xid=5, outputClazz=org.
      opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutput]
      2013-11-30 18:18:47.175 IST [Thread-39] ERROR o.o.o.o.m.c.ConnectionConductorImpl - while waiting for echoReply in TIMEOUTING state: Task was cancelle
      d.
      2013-11-30 18:18:47.175 IST [nioEventLoopGroup-6-2] WARN o.o.o.p.impl.core.OFFrameDecoder - Unexpected exception from downstream.
      java.io.IOException: An established connection was aborted by the software in your host machine
      at sun.nio.ch.SocketDispatcher.read0(Native Method) ~[na:1.7.0_25]
      at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) ~[na:1.7.0_25]
      at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:225) ~[na:1.7.0_25]
      at sun.nio.ch.IOUtil.read(IOUtil.java:193) ~[na:1.7.0_25]
      at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:375) ~[na:1.7.0_25]
      at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:436) ~[na:na]
      at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:870) ~[na:na]
      at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:208) ~[na:na]
      at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:87) ~[na:na]
      at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) ~[na:na]
      at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) ~[na:na]
      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) ~[na:na]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) ~[na:na]
      at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
      2013-11-30 18:18:47.191 IST [pool-32-thread-1] INFO o.o.o.o.m.c.s.SalRegistrationManager - ModelDrivenSwitch for 34 unregistred from MD-SAL.

      Note: this is from the point on controller:

      hagbard@ubuntu:~/git/controller$ git log -2
      commit 4186023bf290ceaeaccebd627ee8ea68b92dc1ed
      Merge: 1720ef0 28fc1d3
      Author: Ed Warnicke <eaw@cisco.com>
      Date: Fri Nov 29 15:23:13 2013 +0000

      Merge "Fix bug in persister causing to persist last configuration in a loop."

      commit 1720ef0759ca8d7ff96bc82563f7673d68a20377
      Merge: 4f4df99 822d42d
      Author: Ed Warnicke <eaw@cisco.com>
      Date: Fri Nov 29 14:20:34 2013 +0000

      Merge "Finding data nodes in choices and cases."
      hagbard@ubuntu:~/git/controller$

      (A workaround of putting the enumeration in a typedef works and will be pushed shortly).

      This can be reproduced by pulling https://git.opendaylight.org/gerrit/#/c/3244/8
      and at the osgi console once the controller has come up running:

      addGroup

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            hagbard Ed Warnicke
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: