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

.NET: DataStreamer does not work with complex object graphs

Agile BoardAttach filesAttach ScreenshotVotersStop watchingWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.3
    • platforms

    Description

      Same issue as IGNITE-6081 with PutAll: DataStreamer does not detach objects.

      Reproducer:

      var obj1 = new Container();
      var obj2 = new Container();
      var obj3 = new Container();
      var obj4 = new Container();
      
      obj1.Inner = obj2;
      obj2.Inner = obj1;
      obj3.Inner = obj1;
      obj4.Inner = obj3;
      
      using (var ldr = _grid.GetDataStreamer<int, Container>(CacheName))
      {
          ldr.AllowOverwrite = true;
      
          ldr.AddData(1, obj1);
          ldr.AddData(2, obj2);
          ldr.AddData(3, obj3);
          ldr.AddData(4, obj4);
      }
      
      var cache = _grid.GetCache<int, Container>(CacheName);
      
      var res = cache[1];
      Assert.AreEqual(res, res.Inner.Inner);
      
      Assert.IsNotNull(cache[2].Inner);
      Assert.IsNotNull(cache[2].Inner.Inner);
      Assert.IsNotNull(cache[3].Inner);
      Assert.IsNotNull(cache[3].Inner.Inner);
                  
      Assert.IsNotNull(cache[4].Inner);
      Assert.IsNull(cache[4].Inner.Inner);
      

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ptupitsyn Pavel Tupitsyn
            ptupitsyn Pavel Tupitsyn
            Votes:
            0 Vote for this issue
            Watchers:
            2 Stop watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment