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

.NET: DataStreamer does not work with complex object graphs

    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

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: