Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Thread.FFatalException (TJSON)
#1
Thread içerisinde kullandığım serviste işim biten TJSON nesnesini boşaltmak isteğimde kendimi burada buluyorum sebebi ne olabilir ?


 
var
  errors :TJSONObject;
  items: TJSONArray;
begin         
if Assigned(Body.Values['errors']) then
         begin
            items    := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(Body.GetValue('errors').ToString),0) as TJSONArray;
            errors   := items.Get(0) as TJSONObject;
            raise Exception.Create(errors.GetValue('faultMessage').Value);
         end;
***
bla bla bla


Destroy ve FreeAndNil yaparken kendimi aşağıdaki kod bloğunda buluyorum.

   
WWW
Cevapla
#2
Merhaba,
" TJSON nesnesini boşaltmak isteğimde... " bunu hangi yöntemle (yıkıcı kod bölümünü yazmamışsınız) yapıyorsunuz?
Mantıken oluşturduğunuz bir sınıf veya tipi yok etmeniz daha doğru olacaktır.
Oluşturmadan yok etmeye çalıştığınız bir tip var ise hata üretme ihtimali oldukça fazladır.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
Destroy ve FreeAndNil  işlemlerim bu şekilde, bu objeler create oluyor içerisindeki bilgileri alıyorum sonrasında yok edyorum

     
*
*
*
finally
if Assigned(items) then
        FreeAndNil(items);
      //  items.Destroy;

     if Assigned(errors) then
       FreeAndNil(errors);
     //  errors.Destroy;
end;
WWW
Cevapla
#4
Kullandığınız tüm JSON objelerinin yok olması için yalnızca items'ı yok etmeniz yeterli olacaktır.
if Assigned(items) then
       FreeAndNil(items);
Diğer nesneniz (errors), items'ı referans aldığı için Items'in yok edilmesi durumunda kendisi de yok olacaktır.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
(04-03-2019, Saat: 09:55)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Kullandığınız tüm JSON objelerinin yok olması için yalnızca items'ı yok etmeniz yeterli olacaktır.
if Assigned(items) then
       FreeAndNil(items);
Diğer nesneniz (errors), items'ı referans aldığı için Items'in yok edilmesi durumunda kendisi de yok olacaktır.

ilk başta öyle idi memoryleak var diye uyardı beni ide
WWW
Cevapla
#6
(04-03-2019, Saat: 10:39)yhackup Adlı Kullanıcıdan Alıntı:
(04-03-2019, Saat: 09:55)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Kullandığınız tüm JSON objelerinin yok olması için yalnızca items'ı yok etmeniz yeterli olacaktır.
if Assigned(items) then
       FreeAndNil(items);
Diğer nesneniz (errors), items'ı referans aldığı için Items'in yok edilmesi durumunda kendisi de yok olacaktır.

ilk başta öyle idi memoryleak var diye uyardı beni ide

Bug olabilir. Sanırım Seattle sürümünde de vardı. Delphi 10.1 sürümü ile birlikte bu sorun düzeltilmişti diye hatırlıyorum.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#7
   

Delphi 10.2 UP3 sürümü
WWW
Cevapla
#8
(04-03-2019, Saat: 11:14)yhackup Adlı Kullanıcıdan Alıntı: Delphi 10.2 UP3 sürümü

Paylaştığınız resmin sol tarafında bulunan Local Variable penceresinde durum net görünüyor. 
Nil olan objeler var. Onlar serbest bırakılmış. Yok etme metodu uygulanamaz. 
Tahminimce bug devam ediyor.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#9
(04-03-2019, Saat: 11:03)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(04-03-2019, Saat: 10:39)yhackup Adlı Kullanıcıdan Alıntı: ilk başta öyle idi memoryleak var diye uyardı beni ide

Bug olabilir. Sanırım Seattle sürümünde de vardı. Delphi 10.1 sürümü ile birlikte bu sorun düzeltilmişti diye hatırlıyorum.

REST request memory leak when no charset is returned in header bu sorundan mı bahsediyorsun @Fesih ARSLAN  hocam. Bu sorun'un 10.2 Release 1 ile düzeldiğini söylüyorlardı ama  Rolleyes
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Thread Socket (Yardım) hkeskin 0 292 27-04-2020, Saat: 00:43
Son Yorum: hkeskin
  BTG Thread Videosu Tuğrul HELVACI 6 1.185 09-03-2020, Saat: 10:52
Son Yorum: Bay_Y
  Anonymous Thread & Exception Tuğrul HELVACI 11 2.222 06-11-2019, Saat: 18:02
Son Yorum: ismailkocacan
  Thread içerisinde Tstrings & TStringList yhackup 2 932 10-09-2019, Saat: 22:45
Son Yorum: yhackup
  Thread içerisinde sleep kullanımı berk06 1 847 26-08-2019, Saat: 11:36
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi