2011-03-29 10 views
5

मैं एक जावा gettor विधि है कि ऐसा दिखाई देता है:दबा जावा FindBugs त्रुटि (EI_EXPOSE_REP)

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

और FindBugs की रिपोर्ट है कि यह एक अस्थायी वस्तु को उजागर करता है: "परिवर्तनशील वस्तु के संदर्भ में वापस लौट कर आंतरिक प्रतिनिधित्व बेनकाब कर सकते हैं "। मैं इस के लिए कोड बदल दिया है:

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

लेकिन Findbug अब भी वही भेद्यता की रिपोर्ट। इस समस्या को दबाने/ठीक करने के लिए मैं और क्या कर सकता हूं? मैं IntellJ 10 Findbugs प्लगइन में Findbugs 1.3.9 चला रहा हूं।

उत्तर

11

मुझे अभी एहसास हुआ कि Findbugs संकलित कोड (.class फ़ाइलें), स्रोत कोड नहीं है। Findbugs के पुनर्निर्माण और फिर से चलाने के बाद, समस्या चली गई।

+0

मैं एक ही स्थिति का शिकार रहा हूं :) - 15 मिनट का समय सोच रहा है कि मेरे परिवर्तन ने त्रुटि को ठीक क्यों नहीं किया, और फिर यह महसूस किया कि मैंने पुनर्निर्माण नहीं किया है। –

+0

@ रोब हर्स्का: मुझे उसी समय के बारे में बताया :-)। – Ralph

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

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

'नई तिथि' * और * क्लोन' का उपयोग करना बहुत अधिक xD है – SebastianH

संबंधित मुद्दे