2012-04-27 15 views
14

कुछ अनुरोधों की सेवा करने के बाद मेरे ग्रहण ने ProWorkerExit() विधि को तोड़ना शुरू कर दिया है।प्रक्रिया पर ग्रहण टूट जाता है WorkerExit

इस link के अनुसार मुझे पता है कि ग्रहण को तोड़ने के लिए कैसे दबाना है, लेकिन इस लाइन पर कोड तोड़ने का कोई कारण है। ऐसे मामले में स्मृति रिसाव हो सकती है?

बिलाव 7.0.27
ग्रहण 3.7.2
JDK 7.0.02

enter image description here

उत्तर

1

कारण डिबगर कि लाइन पर रोक रहा है है क्योंकि वहाँ एक अपवाद कोड द्वारा फेंका जा रहा है try{} ब्लॉक के भीतर, और अपवाद फेंकने के बाद कोड की उस विशेष पंक्ति कोड की अगली निष्पादन योग्य रेखा है। आप कंसोल विंडो में उस अपवाद के स्टैक ट्रेस को लगभग निश्चित रूप से देख सकते हैं, क्योंकि डिफ़ॉल्ट रूप से एक अप्रचलित अपवाद है जो Thread.run() पर बुलबुले stderr पर भेजा जाएगा।

आपके प्रश्न के लिए कि क्या स्मृति मेमोरी हो सकती है (या अधिक संभावना है, यह जावा है, संसाधन संसाधन है): उत्तर हाँ है, हो सकता है। लेकिन उस कोड में कुछ भी नहीं है यह इंगित करने के लिए कि है। यदि ऐसी रिसाव थी, तो यह लगभग निश्चित रूप से होगा क्योंकि task कार्यान्वयन के अंदर गलत अपवाद हैंडलिंग है।

0

मुझे यह वही समस्या थी। यदि आप अपवाद लॉग नहीं करते हैं तो यह आपके प्रयास/पकड़ खंड में टूट जाता है यदि आपके पास कोई है। इस तरह की एक ब्रेकपाइंट या LogCat के उत्पादन डालने का प्रयास करें:

try 
{ 
    //HERE I'VE PUT ALL THE FUNCTIONS THAT WORK FOR ME 
    Log.e("tag", "Sth passed!"); 
} 
catch (Exception e) 
{ 
    //The task failed 
    Log.e("tag", e.getMessage());   
} 

आप आज़माएं/कैच ब्लॉक नहीं है, तो यह कोड ऊपर में चाहते रख। लॉगकैट में आप अपवाद से पहले चलाए गए कोड की आखिरी पंक्ति देख सकते हैं, यह आपको इस तरह की त्रुटि में आपकी पहचान में मदद करने में मदद करेगा:

08-28 05: 49: 52.321: ई/SQLiteDatabase (834): java.lang.Thread.run (Thread.java:841) पर

9

उत्तर यहाँ है: डिफ़ॉल्ट रूप से ग्रहण में OpenJDK breaks on processWorkerExit with no breakpoint

डिबग मोड में, ध्यान में न आया अपवाद पर तोड़ने जाँच की है। चूंकि आपके पास यहां कैच विधि नहीं है, इसलिए संभव है कि बेजोड़ अपवाद फेंक दिया जा रहा है और अपवाद फेंकने से ठीक पहले के लिए डीबगर टूट रहा है। आप जावा-> डीबग के तहत वरीयताओं में इसे बंद कर सकते हैं।