2010-06-07 2 views
1

DITA Open Toolkit을 사용하여 XML 내용을 다른 태그 이름으로 변환합니다. 하지만 내 XML 문서 중 하나는 변형되지 않습니다 ...DITA Open Toolkit 오류 : java.lang.StackOverflowError

BUILD FAILED 
C:\DITA-OT\build.xml:55: The following error occurred while executing this line: 

C:\DITA-OT\build.xml:86: The following error occurred while executing this line: 

java.lang.StackOverflowError 

이 오류는 처리가 끝나기 전에 발생합니다. 그래서 처음 3/4 변환 만. 콘텐츠의 1/4을 제거하면 변환을 완료 할 수 있습니다. (나는 어떤 부분이라도 제거 할 수있다. 변형이 생기면 그 문서에서 더 멀리 제거하면할수록 그 무효 한 태그 나 그렇게 생각하지는 않는다).

Java 프로세스에 더 많은 리소스를 허용하도록 구성을 업데이트해야합니까?

아니면 문제를 해결하는 방법에 대한 아이디어가 있습니까?

감사합니다.

+0

좋아, 그럼 내 질문에 약간의 실수를했다. 오류를 일으키는 텍스트가 너무 많은 단락이있는 XML 디지털 자산이 참조되고 있음을 알 수 있습니다. 텍스트를 여러 단락으로 나누면 변형이됩니다. 이유는 모르겠지만 그곳에는 백만 줄의 텍스트가있는 것 같지 않습니다. – joe

답변

2

JVM 매개 변수를 통해 스택 크기를 조정할 수 있습니다. 콘솔/터미널에 java -X을 입력하면 해당 목록이 표시됩니다. 이 경우 스택 크기를 변경하는 것이 가장 좋습니다 (-Xss). 예를 들어, java -Xss2048k을 시도해보십시오. Linux를 사용하는 경우 ulimit을 사용하여 OS 스레드 스택 크기를 변경해야 할 수도 있습니다. 일반적으로/etc/profile에 ulimit -s 2048과 같은 것을 추가하면됩니다.

그래도 해결되지 않으면 http://sourceforge.net/projects/dita-ot/으로 버그 보고서를 보내거나 작성자에게 문의하십시오.

+0

감사! 현재 Java 스택 크기를 얻는 방법을 알고 있습니까? Windows XP 32 비트를 실행 중입니다. – joe

+1

자바 1.6에서 320k - http://java.sun.com/docs/hotspot/HotSpotFAQ.html#threads_oom에서 : "Windows에서 기본 스레드 스택 크기는 바이너리 (java.exe)에서 읽습니다. 자바 SE 6,이 값은 32 비트 VM에서는 320k이고 64 비트 VM에서는 1024k입니다. " –