다른 언어로 Java를 사용하고 있습니다. 분명한 점은 용서해주세요.하지만 아주 이상한 동작이 발생했습니다.Java Singleton 가끔 NullPointerException이 발생합니다.
저는 간단한 돼지 UDF를 작성하고 있습니다. TupleFactory 싱글 톤을 사용하여 생성하는 Tuple 객체를 반환하고 있습니다. 다음 두 코드 예제에서는 첫 번째 예제가 작동하지만 두 번째 코드 예제에서는 newTuple
을 만들 때 NullPointerException이 발생합니다.
public class MyUDF {
public Tuple func(Tuple input) {
return TupleFactory.getInstance().newTuple(Arrays.asList(o1, o2, o3));
}
}
public class MyUDF {
...
TupleFactory _factory;
public Tuple func(Tuple input) {
_factory.getInstance();
return _factory.newTuple(Arrays.asList(o1, o2, o3));
}
}
_factory.getInstance()에서 작동중인 bcz가 _factory 인스턴스에 다시 할당되지 않은 새 인스턴스를 반환 함 – mhasan