You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by Eric Chow <er...@gmail.com> on 2005/05/03 11:35:33 UTC
BUG or ...... [ERROR] java.lang.ArrayIndexOutOfBoundsException: -2
Hello,
I don't know why it will raised the "java.lang.ArrayIndexOutOfBoundsException".
The problem always be raised when the XML record over 1. Please check
the following XSL and XML.
if there is only one <ot> record, no problem at all. I am using
fop-0.20.5 in WinXP with jdk1.4.2.
[code]
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
exclude-result-prefixes="fo">
<xsl:output method="xml" version="1.0" omit-xml-declaration="no"
indent="yes"/>
<!-- ========================= -->
<!-- root element: otrecord -->
<!-- ========================= -->
<xsl:template match="otrecord">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="simpleA4" page-height="29.7cm"
page-width="21cm" margin-top="2cm" margin-bottom="2cm"
margin-left="1.5cm" margin-right="1.5cm">
<fo:region-body/>
<fo:region-after extent="1cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="simpleA4">
<fo:static-content flow-name="xsl-region-after">
<fo:block font-family="kai" font-size="10pt" text-align="start" >
<fo:table table-layout="fixed">
<fo:table-column column-width="2cm"/>
<fo:table-column column-width="3cm"/>
<fo:table-column column-width="6cm"/>
<fo:table-column column-width="5cm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block text-align="right" padding="1mm">
日期 Data:
</fo:block>
</fo:table-cell>
<fo:table-cell paddding="1mm">
<fo:block text-align="center"
border-bottom-style="solid" border-bottom-width="0.5pt">
<xsl:value-of select="properties/date"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align="right" padding="1mm">
簽名 Assinatura:
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align="start" padding="1mm"
border-bottom-style="solid" border-bottom-width="0.5pt">
 
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block font-family="kai" font-size="10pt" >
<fo:block font-size="14pt"
text-align="center">資訊處人員超時工作記錄</fo:block>
<fo:block font-size="14pt" space-after="0.5cm"
text-align="center" font-weight="bold">
Lista das Horas Extraordiárias do Pessoal da DINF
</fo:block>
<xsl:call-template name="showProperties"/>
<fo:table table-layout="fixed">
<fo:table-column column-width="1cm"/>
<fo:table-column column-width="2cm"/>
<fo:table-column column-width="2cm"/>
<fo:table-column column-width="2.2cm"/>
<fo:table-column column-width="2.2cm"/>
<fo:table-column column-width="8.5cm"/>
<fo:table-body>
<xsl:call-template name="showTableHeader"/>
<xsl:call-template name="showTableContents"/>
</fo:table-body>
</fo:table>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<!-- ========================= -->
<!-- showProperties -->
<!-- ========================= -->
<xsl:template name="showProperties">
<fo:block space-after="0.5cm">
<fo:table table-layout="fixed">
<fo:table-column column-width="2cm"/>
<fo:table-column column-width="1.5cm"/>
<fo:table-column column-width="2cm"/>
<fo:table-column column-width="1.3cm"/>
<fo:table-column column-width="2.5cm"/>
<fo:table-column column-width="8cm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block text-align="right">
年Ano:
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align="left" border-bottom-style="solid"
border-bottom-width="0.5pt" border-color="black">
<xsl:call-template name="space">
<xsl:with-param name="num" select="1"/>
</xsl:call-template>
<xsl:value-of select="properties/year"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align="right">
月Mês:
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align="left" border-bottom-style="solid"
border-bottom-width="0.5pt" border-color="black">
<xsl:call-template name="space">
<xsl:with-param name="num" select="1"/>
</xsl:call-template>
<xsl:value-of select="properties/month"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align="right">
姓名Nome:
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align="left" border-bottom-style="solid"
border-bottom-width="0.5pt" border-color="black">
<xsl:call-template name="space">
<xsl:with-param name="num" select="1"/>
</xsl:call-template>
<xsl:value-of select="properties/name"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</xsl:template>
<xsl:template name="showTableHeader">
<fo:table-row>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-rows-spanned="2"
text-align="center"
vertical-align="middle"
padding-top="7mm"
background-color="#E7E7E7">
<fo:block>
日
</fo:block>
<fo:block>
Dia
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-columns-spanned="2"
text-align="center"
vertical-align="middle"
padding="1mm"
background-color="#E7E7E7">
<fo:block text-align="center">
時段
</fo:block>
<fo:block text-align="center">
Período das Horas
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-columns-spanned="2"
text-align="center"
vertical-align="middle"
padding="1mm"
background-color="#E7E7E7">
<fo:block text-align="center">
總時數
</fo:block>
<fo:block text-align="center">
Horas Totais
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-rows-spanned="2"
text-align="center"
vertical-align="bottom"
padding-top="1cm"
background-color="#E7E7E7">
<fo:block text-align="center">
原因 Razão
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
padding="1mm"
text-align="center"
vertical-align="middle"
background-color="#E7E7E7">
<fo:block text-align="center">
由Desde
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
padding="1mm"
text-align="center"
vertical-align="middle"
background-color="#E7E7E7">
<fo:block text-align="center">
至Até
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
padding="1mm"
text-align="center"
vertical-align="middle"
background-color="#E7E7E7">
<fo:block text-align="center">
常日Normal
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
padding="1mm"
text-align="center"
vertical-align="middle"
background-color="#E7E7E7">
<fo:block text-align="center">
假日Feriado
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:template>
<!-- ========================= -->
<!-- child element: ot -->
<!-- ========================= -->
<xsl:template name="showTableContents">
<xsl:for-each select="/otrecord/ot">
<fo:table-row>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-rows-spanned="2"
text-align="center"
vertical-align="middle"
padding="1mm">
<fo:block text-align="center">
<xsl:value-of select="@day"/>
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-rows-spanned="2"
text-align="center"
vertical-align="middle"
padding="1mm">
<fo:block>
<xsl:value-of select="from"/>
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-rows-spanned="2"
text-align="center"
vertical-align="middle"
padding="1mm">
<fo:block>
<xsl:value-of select="to"/>
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-rows-spanned="2"
text-align="center"
vertical-align="middle"
padding="1mm">
<fo:block>
<xsl:variable name="otType" select="type"/>
<xsl:if test="type = 'N'">
<xsl:value-of select='format-number(duration, "##")'/>
</xsl:if>
<xsl:if test="type = 'H'">
 
</xsl:if>
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-rows-spanned="2"
text-align="center"
vertical-align="middle"
padding="1mm">
<fo:block>
<xsl:variable name="otType" select="type"/>
<xsl:if test="type = 'N'">
 
</xsl:if>
<xsl:if test="type = 'H'">
<xsl:value-of select='format-number(duration, "##")'/>
</xsl:if>
</fo:block>
</fo:table-cell>
<fo:table-cell
border-style="solid"
border-width="0.1pt"
number-rows-spanned="2"
text-align="start"
vertical-align="middle"
padding="1mm">
<fo:block text-align="start" >
<xsl:value-of select="reason"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</xsl:template>
<xsl:template name="space">
<xsl:param name="num" select="0"/>
<xsl:if test="$num > 0">
 
<xsl:call-template name="space">
<xsl:with-param name="num" select="number($num)-1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
[/code]
[code]
<?xml version="1.0" encoding="UTF-8"?>
<otrecord>
<properties>
<year>2005</year>
<month>04</month>
<name>CHAO HOI KA, Eric</name>
<date>03/05/2005</date>
</properties>
<ot day="15">
<from>17:30</from>
<to>19:12</to>
<!--
N: normal day
H: holiday
-->
<type>N</type>
<duration>1.4</duration>
<reason>Portal Meeting</reason>
</ot>
<ot day="20">
<from>17:45</from>
<to>19:32</to>
<type>N</type>
<duration>1.8</duration>
<reason>Upgrade System</reason>
</ot>
</otrecord>
[/code]
[code]
[DEBUG] Input mode:
[DEBUG] xslt transformation
[DEBUG] xml input file: ot.xml
[DEBUG] xslt stylesheet: ot.xsl
[DEBUG] Output mode:
[DEBUG] awt on screen
[DEBUG] OPTIONS
[DEBUG] user configuration file: conf\userconfig.xml
[DEBUG] debug mode on
[DEBUG] dump configuration
[DEBUG] quiet mode on
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] base directory: D:/fop-0.20.5
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] building formatting object tree
[INFO] setting up fonts
[ERROR] property 'paddding' ignored
[INFO] [1]
[INFO] Create embedded AWT font from stream file:/D:/fop-0.20.5/kaiu.TTF
[ERROR] unknown font kai,normal,bold so defaulted font to any
[ERROR] unknown font kai,normal,bold so defaulted font to any
[INFO] [1]
[ERROR] java.lang.ArrayIndexOutOfBoundsException: -2
org.apache.fop.apps.FOPException: java.lang.ArrayIndexOutOfBoundsException: -2
at org.apache.fop.apps.AWTStarter.run(AWTStarter.java:156)
at org.apache.fop.apps.Fop.main(Fop.java:62)
---------
java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: -2
at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java
:3407)
at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(Trans
formerHandlerImpl.java:433)
at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown Sourc
e)
at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Sourc
e)
at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager$EntityScanner.load(Unknown So
urce)
at org.apache.xerces.impl.XMLEntityManager$EntityScanner.skipSpaces(Unkn
own Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.
dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xalan.transformer.TrAXFilter.parse(TrAXFilter.java:134)
at org.apache.fop.apps.Driver.render(Driver.java:498)
at org.apache.fop.apps.AWTStarter.run(AWTStarter.java:146)
at org.apache.fop.apps.Fop.main(Fop.java:62)
---------
java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: -2
at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java
:3407)
at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(Trans
formerHandlerImpl.java:433)
at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown Sourc
e)
at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Sourc
e)
at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager$EntityScanner.load(Unknown So
urce)
at org.apache.xerces.impl.XMLEntityManager$EntityScanner.skipSpaces(Unkn
own Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.
dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xalan.transformer.TrAXFilter.parse(TrAXFilter.java:134)
at org.apache.fop.apps.Driver.render(Driver.java:498)
at org.apache.fop.apps.AWTStarter.run(AWTStarter.java:146)
at org.apache.fop.apps.Fop.main(Fop.java:62)
D:\fop-0.20.5>
[/code]
Re: BUG or ...... [ERROR] java.lang.ArrayIndexOutOfBoundsException:
-2
Posted by "J.Pietschmann" <j3...@yahoo.de>.
Eric Chow wrote:
> I don't know why it will raised the "java.lang.ArrayIndexOutOfBoundsException".
...
> java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: -2
> at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java
The exception is caused by an old, somewhat buggy Xalan instance
in your class path. The Xalan distributed with FOP doesn't have
this problem, which probably means you use a rather outdated
Java 1.4. Upgrade your Java kit.
Other than than, your code looks suspicious (number-row-spanned="2"
on all table cells in a row) and might cause problems even if you've
fixed the condition above.
J.Pietschmann
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org