Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-5066

.NET: Continuous query fails with exception on Java side

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.9
    • 2.0
    • platforms

    Description

      Reported by the user, simple program being run twice:

      using (IIgnite ignite = Ignition.Start(config))
                  {
                      var cache = ignite.GetOrCreateCache<Guid, Data>(nameof(Data));
                      cache.QueryContinuous(new ContinuousQuery<Guid, Data>(new Listener()));
              
                      // Pressing any key in the console will add a value to the cache
                      while (true)
                      {
                          Console.ReadKey();
      
                          var entry = new Data() { Id = Guid.NewGuid(), Value = "a value" };
                          cache.Put(entry.Id, entry);
                      }
                  }
      

      Causes exceptions on Java side:

      Exception in thread "sys-#44%null%" javax.cache.event.CacheEntryListenerException: Failed resolve class for ID: 3076010
              at org.apache.ignite.internal.processors.platform.utils.PlatformUtils.toCacheEntryListenerException(PlatformUtils.java:593)
              at org.apache.ignite.internal.processors.platform.utils.PlatformUtils.applyContinuousQueryEvents(PlatformUtils.java:551)
              at org.apache.ignite.internal.processors.platform.cache.query.PlatformContinuousQueryImpl.onUpdated(PlatformContinuousQueryImpl.java:200)
              at org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.notifyCallback0(CacheContinuousQueryHandler.java:705)
              at org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.notifyCallback(CacheContinuousQueryHandler.java:650)
              at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processNotification(GridContinuousProcessor.java:1089)
              at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.access$2000(GridContinuousProcessor.java:97)
              at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$8.onMessage(GridContinuousProcessor.java:741)
              at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1222)
              at org.apache.ignite.internal.managers.communication.GridIoManager.access$2000(GridIoManager.java:108)
              at org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2443)
              at org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:1182)
              at org.apache.ignite.internal.managers.communication.GridIoManager.access$2300(GridIoManager.java:108)
              at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1151)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
              at java.lang.Thread.run(Unknown Source)
      Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed resolve class for ID: 3076010
              at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:699)
              at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1491)
              at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1450)
              at org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:637)
              at org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:142)
              at org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinary(CacheObjectContext.java:272)
              at org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:160)
              at org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryEvent.getValue(CacheContinuousQueryEvent.java:73)
              at org.apache.ignite.internal.processors.platform.utils.PlatformUtils.writeCacheEntryEvent(PlatformUtils.java:606)
              at org.apache.ignite.internal.processors.platform.utils.PlatformUtils.applyContinuousQueryEvents(PlatformUtils.java:539)
              ... 15 more
      Caused by: class org.apache.ignite.IgniteCheckedException: Class definition was not found at marshaller cache and local file. [id=3076010, file=C:\Users\USER\AppData\Local\Temp\ignite\work\marshaller\3076010.classname]
              at org.apache.ignite.internal.MarshallerContextImpl.className(MarshallerContextImpl.java:218)
              at org.apache.ignite.internal.MarshallerContextAdapter.getClass(MarshallerContextAdapter.java:174)
              at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:683)
      

      For some reason Java tries to deserialize .NET value.
      There is no exception on .NET side, but events are not delivered.

      Attachments

        Activity

          People

            ptupitsyn Pavel Tupitsyn
            ptupitsyn Pavel Tupitsyn
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: