Closed marunguy closed 9 months ago
우선 답변이 늦어 미안합니다. 결론부터 말씀드리면, 원본 hwp파일이 없이는 원인 파악이 어렵습니다.
extension은 java로 만들었고 java는 오류시 exception을 발생합니다만, 본 이슈는 libreoffice 프로세스에서 발생한거라 java단에서 파악할수 있는 내용이 아닙니다. 물론 java단 호출에서 원인을 찾아야하겠으나, 제 github활동은 후순위라 얼마나 시간과 자원을 투입할수 있을지 약속드릴수가 없습니다. 예상컨대 원본hwp없이는 개선이 불가능할것 같습니다.
답변 확인 많이 늦어서 미안합니다.
공개적으로 원본hwp 파일을 업로드하는 것은 어렵고 이메일 등을 통해 별도로 제공하고자 하는데 괜찮을까요?
괜찮다면 원하는 방법을 알려주면 고맙겠습니다.
이메일로 원본hwp 첨부하여 보내주시면 분석하여 개선하겠습니다. 이메일로 전달하시는 hwp파일은 분석 목적으로만 사용하고, 외부에 공개하지 않겠습니다. 제 이메일은 ebandal@gmail.com 입니다. 감사합니다.
확인해보니 19번 문단스타일에서 margin next값이 음수이고, 이 스타일의 문단을 쓸때 Exception 발생합니다.
<hh:paraPr id="19" tabPrIDRef="0" condense="0" fontLineHeight="0" snapToGrid="0" suppressLineNumbers="0" checked="0">
<hh:align horizontal="LEFT" vertical="BASELINE"/>
<hh:heading type="NONE" idRef="0" level="0"/>
<hh:breakSetting breakLatinWord="KEEP_WORD" breakNonLatinWord="BREAK_WORD" widowOrphan="0" keepWithNext="0" keepLines="0" pageBreakBefore="0" lineWrap="BREAK"/>
<hh:autoSpacing eAsianEng="0" eAsianNum="0"/>
<hp:switch>
<hp:case hp:required-namespace="http://www.hancom.co.kr/hwpml/2016/HwpUnitChar">
<hh:margin>
<hc:intent value="0" unit="HWPUNIT"/>
<hc:left value="0" unit="HWPUNIT"/>
<hc:right value="0" unit="HWPUNIT"/>
<hc:prev value="0" unit="HWPUNIT"/>
<hc:next value="-131072" unit="HWPUNIT"/>
</hh:margin>
<hh:lineSpacing type="PERCENT" value="160" unit="HWPUNIT"/>
</hp:case>
<hp:default>
<hh:margin>
<hc:intent value="0" unit="HWPUNIT"/>
<hc:left value="0" unit="HWPUNIT"/>
<hc:right value="0" unit="HWPUNIT"/>
<hc:prev value="0" unit="HWPUNIT"/>
<hc:next value="-262144" unit="HWPUNIT"/>
</hh:margin>
<hh:lineSpacing type="PERCENT" value="160" unit="HWPUNIT"/>
</hp:default>
</hp:switch>
<hh:border borderFillIDRef="1" offsetLeft="0" offsetRight="0" offsetTop="0" offsetBottom="0" connect="0" ignoreMargin="0"/>
</hh:paraPr>
어떻게 예외처리를 할지 고려해보겠습니다.
버전 v0.6.0 에서 margin값이 음수여도 crash 발생하지 않도록 수정했습니다. 감사합니다.
감사합니다. 정상적으로 잘 열립니다.
특정 HWP 파일 열기시 libreoffice 가 충돌을 일으키면서 종료됩니다. 덤프파일 분석해보니 스택버퍼오버런 예외로 인한 충돌상황입니다.
충돌을 일으키는 HWP 파일은 제공하기 어려운 상황입니다. DEBUG 레벨 로그메시지를 수집, 제공할 경우 이 충돌상황을 해결할 수 있을까요?
아래는 import_0.log 내용과 충돌시 호출스택입니다.
.H2Orestart\import_0.log 파일 내용
충돌시 호출스택