मुझे एक मजेदार समस्या है - यदि मेरा एप्लिकेशन लंबे समय तक चलता है (> 20h), तो कभी-कभी मुझे NoClassDefFound त्रुटि मिलती है - ऐसा लगता है कि जेवीएम ने फैसला किया है कि कक्षा नहीं होगी वैसे भी इस्तेमाल किया और जीसीडी इसे इस्तेमाल किया।यदि कक्षा लंबे समय तक चलती है तो कक्षाएं
में थोड़ा और अधिक विशिष्ट होना करने के लिए, यहां एक उदाहरण मामला है:
object ErrorHandler extends PartialFunction[Throwable,Unit] {
def isDefinedAt(t: Throwable) = true
def apply(e: Throwable) =e match {
// ... handle errors
}
}
// somewhere else in the code...
try {
// ... long running code, can take more than 20 hours to complete
} catch (ErrorHandler)
और मैं निम्न अपवाद प्राप्त करें:
Exception in thread "main" java.lang.NoClassDefFoundError: org/rogach/avalanche/ErrorHandler$
अगर वह कोशिश/समय की कम मात्रा के लिए कैच ब्लॉक रन, सब कुछ अपेक्षित के रूप में काम करता है। Avalanche
मैं ध्यान दें कि मैं केवल Cent OS 5
मशीनों पर इस और इसी तरह की समस्याओं को देखा, JRE 6u26 और स्काला 2.9.1/2.9.2 का उपयोग कर की जरूरत है:
अगर कोई रुचि है, यहाँ सवाल में codebase है।
इस समस्या का कारण क्या हो सकता है?
इसे '-XX: -TraceClassUnloading' के साथ चलाने का प्रयास करें। परिणाम क्या हैं? http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html – ron
@ron - मैं अभी कोशिश कर रहा हूं, लेकिन इसमें कुछ समय लगेगा :) और लॉग फ़ाइल काफी लंबी है और वर्बोज़, किस शब्द के लिए मुझे ट्रेसिंग आउटपुट प्राप्त करने के लिए इसे grep करना चाहिए? – Rogach
blindfolded अनुमान नहीं लगा सकता है, लेकिन संदिग्ध के तहत वर्ग का नाम एक निश्चित उम्मीदवार है :) – ron