2014-02-13 1 views
0

다음과 같이 이상한 널 포인터 문제가 있는지 확실하지 않습니다. 누군가가이 아래 코드에서 나를 도울 수 있을까요hadoop 클러스터 데이터 유효성 검사에서 StringUtils.isNotEmpty (str)가 제대로 작동하지 않는 것 같습니다.

if ((COUNTRY_CODE.equalsIgnoreCase(Country.TEST.name())) && (strCellId.matches("[0-9]*"))) 

로그 파일에 (라인 번호 당) nullpointer를 던지고 있습니다. 내가 볼 수있는 유일한 불쾌한 코드는 이 null 인 경우

입니다. 그러나 StringUtils.isNotEmpty(strCellId)은 if 조건에 들어가기 전에 이미 호출됩니다. 조건을 참조하십시오

public static boolean validateCellId(String strCellId) 
{ 
    if (StringUtils.isNotEmpty(strCellId)) { 
    //here the nullpointer is coming 
    if ((COUNTRY_CODE.equalsIgnoreCase(Country.TEST.name())) && (strCellId.matches("[0-9]*"))) { 
     return true; 
    } 
    } 

    return false; 
} 
+0

Null 포인터 예외는 어떤 행에서 발생 했는가? 무슨 전화? – Chiron

+0

코드에서 주석을 업데이트했습니다. 또한 우리는 null로이 validateCellId 메서드를 호출한다고해도 stringutil은주의를 기울여야하며 내부 if 조건에 들어갈 수 없어야한다고 생각합니다. 내가 뭔가를 분명히 알 수없는 경우 알려 주시기 바랍니다 –

+0

스택 트랙을 제공 할 수 있습니까? 'COUNTRY_CODE' 또는'Country.TEST'의 머리 글자를 잊어 버릴 수도 있습니다. – zsxwing

답변

0

그것의 My Bad. @zsxwing 당신 말이 맞습니다. 우리나라는 초기화되지 않았고, 나는 이것을 확인 했어야했다. 나는 그걸 확신을 가지고 간과했다. 고마워.

관련 문제