[英]Expected null pointer causing an unexpected InvocationTargetException
XML文件被用作臨時緩存,以通過SOAP請求存儲臨時值(多個配置值)。 多個線程將使用此文件,因此如果文件已經更新,我不想寫入該文件。 在第一遍代碼中,我希望緩存返回null,然后文件將被更新。 但是,退出finally塊時出現InvocationTargetException
,並且程序失敗。 我不明白為什么空CacheValues
對象會CacheValues
異常。
public class TempCache{
private final ReadWriteLock myLock = new ReentrantReadWriteLock();
private final MyCache cache = XmlCache.getInstance(); //creates singleton
//instance, but doesn't
//set values upon
//initialization...
public CacheValues getCache(){
Lock lock = myLock.readLock();
CacheValues cv = null;
try{
lock.lock();
cv = cache.getCacheValues(); //returns null on the first pass...
}finally{
lock.unlock();
} // exception thrown here
if(cv == null){
refreshCache(); //submits SOAP request to set the xml cache values
}
...
}
使用反射時會發生InvocationTargetException,並使用java.lang.reflect.Method
進行調用。 這可能在代理類或其他偵聽,檢測類中發生。
在調用時,發生一個異常,該異常包裝在InvocationTargetException中,並且可以使用getCause()
或查看堆棧跟蹤來獲取原始異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.