#vulnerable code 
                             private void read(String jobId, int pos, RespResult respResult) {
		RandomAccessFile rf;
		StringBuilder sb = new StringBuilder();
		int newPos = pos;
		try {
			rf = new RandomAccessFile(getExecuteFilePath(jobId), "r");
			rf.seek(pos);
			byte[] buffer = new byte[10000]; 
	        int len=0; 
			while ((len=rf.read(buffer))!=-1) { 
				newPos += len;
				sb.append(new String(buffer,0,len)); 
	        } 
			rf.close();
		} catch (IOException e) {
			logger.warn("jobFile read error!");
			return ;
		}  
		respResult.setPos(newPos);
		respResult.setMessage(sb.toString());
	} 
                            #location 15 
                            #vulnerability type RESOURCE_LEAK
#fixed code
                             private void read(String jobId, int pos, RespResult respResult) {
		int newPos = pos;
		final StringBuilder sb = new StringBuilder();
		RandomAccessFile rf = null;
		try {
			rf = new RandomAccessFile(getExecuteFilePath(jobId), "r");
			rf.seek(pos);
			byte[] buffer = new byte[10000]; 
	        int len=0; 
			while ((len=rf.read(buffer))!=-1) { 
				newPos += len;
				sb.append(new String(buffer,0,len)); 
	        }
			respResult.setPos(newPos);
			respResult.setMessage(sb.toString());
		} catch (IOException e) {
			logger.warn("jobFile read error!");
			return ;
		} finally {
			if( null != rf ) {
				try {
					rf.close();
				}catch(Exception e) {
					//
				}
			}
		}
		
	}