1
로그 파일을 줄이는 nifi 프로세서 (executeScript 프로세서) 안에 코드 논리가 있습니다 (이 경우 로그 파일에 동일한 텍스트가 있으므로 중복을 제거하고 이름과 파일 크기로 선택하려고합니다). 그러나 때로는 (항상은 아님) 음수 인덱스 오류가 발생했습니다. 코드를 변경해야 어떻게 작동합니까?그루비 코드에서 음의 색인 오류를 제거하는 방법은 무엇입니까?
import org.apache.nifi.processor.FlowFileFilter;
import groovy.json.JsonSlurper
import groovy.json.JsonBuilder
import java.nio.charset.StandardCharsets
import org.apache.commons.io.IOUtils
def flowFile = session.get();
def n=0;
if(!flowFile)return
def size = flowFile.getAttribute('Size');
int value = size as Integer;
if((value/338)>=1){
def ffList = session.get(new FlowFileFilter(){
public FlowFileFilterResult filter(FlowFile ff) {
if(size == ff.getAttribute('Size')){ n++; return FlowFileFilterResult.ACCEPT_AND_CONTINUE;}
else{ return FlowFileFilterResult.REJECT_AND_CONTINUE; }
}
});
session.transfer(ffList[n-1],REL_SUCCESS);
session.remove(ffList[0..-2])
session.remove(flowFile);
}
else{
session.transfer(flowFile,REL_SUCCESS);
}
나는 네가 부정적인 인덱스 오류로 가정하고있어'ArrayIndexOutOfBoundsException'? 귀하의 색인 및 배열 크기에 대해 말하는 것은 무엇입니까? – doelleri