NegativeArraySizeException 관련
- Posted at 2008/04/24 17:07
- Filed under Program/JAVA
분산/병렬 프로그램 만들다 보니 전혀 재현 불가능한 에러도 발생합니다. 오늘 발생한 에러는 거의 재현하기 불가능할 것 같습니다.
코드는 다음과 같습니다.
class Test {
TreeSet<String> values = new TreeSet<String>();
//이부분이 Multi client로부터 접속되는 코드
public void exec() {
values.add(...);
...
//다양한 조건을 이용하여 valus add, remove
List<String> temp = new ArrayList<String>();
temp.addAll(values);
}
}
원래는 Test하는 코드의 exec를 호출하는 것은 앞단에서 하나의 클라이언트만 접속하게 되어 있었는데 이 부분에 약간 잘못이 있어 동시에 접속되는 상황이 발생한 것 같습니다.
예외는 다음과 같이 발생했습니다.
java.lang.NegativeArraySizeException
at java.util.AbstractCollection.toArray(AbstractCollection.java:119)
at java.util.ArrayList.addAll(ArrayList.java:472)
AbstractCollection 소스를 보니 TreeSet의 size()에서 반환되는 값이 0 보다 작은 경우에만 이런 예외가 발생하게 되어 있습니다.
Posted by 김형준
- Response
- No Trackback , No Comment
Trackback URL : http://www.jaso.co.kr/trackback/254






