2011-03-29 14 views
5

(EI_EXPOSE_REP):bastırma Java Findbugs hata aşağıdaki gibi görünen bir Java gettor yöntemine sahip

import java.util.Date; 
//... 
public Date getSomeDate() { 
    return someDate; 
} 

ve Findbugs bu kesilebilir bir nesne gösterir raporlar: "değişken nesnesine başvuru iade ederek iç temsil maruz etsin ". Bunun için kod değiştirildi:

import java.util.Date; 
//... 
public Date getSomeDate() { 
    return new Date(someDate.getTime()); 
} 

ama Findbug hala aynı güvenlik açığını bildirir. Bu sorunu bastırmak/düzeltmek için daha ne yapabilirim? IntellJ 10 Findbugs eklentisinde Findbugs 1.3.9 çalıştırıyorum.

cevap

11

Sadece, Findbugs'ın kaynak kodu değil, kodunu (.class dosyaları) analiz ettiğini fark ettim. Findbugs yeniden oluşturduktan ve yeniden çalıştırdıktan sonra, sorun gitti. Paranın üstü hatayı düzeltmek, sonra yeniden olmadığını fark eden niye merak 15 dakika harcayarak -

+0

Ben aynı durumda :) kurbanı oldum. –

+0

@Rob Hruska: Bana aynı miktarda :-) sürdü. – Ralph

-1
No we must to clone that object using below code : 

public Date getSomeDate() { 
    return new Date(someDate.getTime()).clone(); 
} 
+0

'Yeni Tarih '* ve *' klon'unu kullanmak çok fazla xD – SebastianH