You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

父映射与子映射引用相同ditaval导致DITA-OT空指针异常

DITA-OT 3.6.1生成XHTML时抛出NullPointerException问题

使用DITA-OT 3.6.1从指定父ditamap生成XHTML时构建失败,抛出NullPointerException。移除所有ditaval引用后,构建可正常完成。

错误栈信息

BUILD FAILED
C:\Users\Rq1qws\DITA-OT\plugins\org.dita.base\build_preprocess.xml:148: java.lang.NullPointerException
    at org.dita.dost.module.BranchFilterModule.getFilterUtils(BranchFilterModule.java:466)
    at org.dita.dost.module.BranchFilterModule.combineFilterUtils(BranchFilterModule.java:342)
    at org.dita.dost.module.BranchFilterModule.filterTopics(BranchFilterModule.java:418)
    at org.dita.dost.module.BranchFilterModule.filterTopics(BranchFilterModule.java:452)
    at org.dita.dost.module.BranchFilterModule.filterTopics(BranchFilterModule.java:452)
    at org.dita.dost.module.BranchFilterModule.processMap(BranchFilterModule.java:143)
    at org.dita.dost.module.BranchFilterModule.execute(BranchFilterModule.java:102)
    at org.dita.dost.ant.ExtensibleAntInvoker.execute(ExtensibleAntInvoker.java:189)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at jdk.internal.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
    at org.apache.tools.ant.Task.perform(Task.java:350)
    at org.apache.tools.ant.Target.execute(Target.java:449)
    at org.apache.tools.ant.Target.performTasks(Target.java:470)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1374)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1264)
    at org.apache.tools.ant.Main.runBuild(Main.java:827)
    at org.apache.tools.ant.Main.startAnt(Main.java:223)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)

相关文件内容

parent.ditamap

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "technicalContent/dtd/map.dtd">
<map id="GUID-a3370950-acd0-4982-94f6-ceb1bbfc0fb9">
    <title>parent</title>
    <topichead navtitle="parent">
        <topicgroup>
            <mapref format="ditamap" href="childmap1.ditamap" product="12 13" type="map"/>
            <ditavalref href="dval2.ditaval" format="ditaval" processing-role="resource-only">
                <ditavalmeta>
                    <dvrResourceSuffix name="dvrResourceSuffix">_val2</dvrResourceSuffix>
                </ditavalmeta>
            </ditavalref>
            <ditavalref href="dval1.ditaval" format="ditaval" processing-role="resource-only">
                <ditavalmeta>
                    <dvrResourceSuffix name="dvrResourceSuffix">_CG1</dvrResourceSuffix>
                </ditavalmeta>
            </ditavalref>
        </topicgroup>
    </topichead>
</map>

childmap1.ditamap

<map id="GUID-4d8ba036-fa1d-4783-a54b-510678dcef10">
  <title>childmap1</title>
  <topichead navtitle="childmap1">
    <topicgroup>
  <topicref href="topic1.dita" product="11 12" type="topic">
  </topicref>
   <ditavalref href="dval2.ditaval">
    <ditavalmeta><dvrResourceSuffix>_val2</dvrResourceSuffix></ditavalmeta>
  </ditavalref>
  <ditavalref href="dval1.ditaval">
     <ditavalmeta><dvrResourceSuffix>_val1</dvrResourceSuffix></ditavalmeta>
  </ditavalref>
    </topicgroup>
  </topichead>
</map>

topic1.dita

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "technicalContent/dtd/topic.dtd">
<topic id="GUID-313a30dd-3573-45e5-b5b6-b9b42944ed19">
    <title>topic1</title>
    <shortdesc/>
    <body>
        <p>Topic 1</p>
    </body>
</topic>

dval1.ditaval

<?xml version="1.0" encoding="UTF-8"?>
<val>
  <prop action="exclude">
  </prop>
   <prop action="include" att="product" val="10">
  </prop>
  <prop action="include" att="product" val="11">
  </prop>
</val>

dval2.ditaval

<?xml version="1.0" encoding="UTF-8"?>
<val>
  <prop action="exclude">
  </prop>
   <prop action="include" att="product" val="12">
  </prop>
  <prop action="include" att="product" val="13">
  </prop>
</val>

执行命令

dita --input=C:\Users\R1qwesa\parent.ditamap --format=xhtml

内容的提问来源于stack exchange,提问作者ravi ranjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 15:27:44