You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2003/01/22 00:07:27 UTC
DO NOT REPLY [Bug 16312] New: -
javax.xml.transform.TransformerException: java.util.EmptyStackException
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16312>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16312
javax.xml.transform.TransformerException: java.util.EmptyStackException
Summary: javax.xml.transform.TransformerException:
java.util.EmptyStackException
Product: XalanJ2
Version: 2.4
Platform: HP
OS/Version: HP-UX
Status: NEW
Severity: Blocker
Priority: Other
Component: javax.xml
AssignedTo: xalan-dev@xml.apache.org
ReportedBy: esherman2@aol.com
javax.xml.transform.TransformerException: java.util.EmptyStackException is
thrown during an xml transformation using Xalan. The transformation works fine
on our development configuration which is Windows NT and throws the exception
on HP-UX. However, we cannot isolate it as a JVM issue because our JDKs and
surrounding software are identical in both environments (JDK 1.3.1).
Here is the class:
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerConfigurationException;
import com.is.util.*;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
import org.apache.log4j.*;
import org.apache.log4j.Logger.*;
public class XmlToHtml
{
protected static Logger log = null;
static{
try{
//configure logging
PropertyConfigurator.configure(new AppProperties
("imd.properties").getProperty("log4j"));
log = Logger.getLogger("XmlToHtml");
}
catch(Exception e)
{
System.out.println("Static init error in XmlToHtml.\n" + e);
}
} // end log static
public String convertToXml(String szXmlIn, String szXslPath) throws
TransformerException, TransformerConfigurationException, FileNotFoundException,
IOException{
String szHtml="";
try{
TransformerFactory tFactory = new
org.apache.xalan.processor.TransformerFactoryImpl();
Transformer transformer = tFactory.newTransformer(new
javax.xml.transform.stream.StreamSource(szXslPath));
log.debug("XSLPath: " + szXslPath);
//Code to transform from string to string
Writer wr = new StringWriter();
StreamResult result = new StreamResult(wr);
transformer.transform(new StreamSource(new StringReader(szXmlIn)),result);
szHtml=wr.toString();
}
catch(TransformerConfigurationException tce){
log.fatal("***Configuration error in XML transformer, detail: " + tce);
}
catch(TransformerException te){
log.info("Error transforming XML, detail: " + te);
}
log.debug("Prior to xml version strip: \n" + szHtml);
try {
szHtml = StringFormat.replaceInString(szHtml, "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>", " ");
} catch (Exception e) {}
log.debug("Post xml version strip: \n" + szHtml);
log.info("Transformation from XML to HTML complete.");
return szHtml;
}
}
Here is our XML:
<SESSIONS><SESSION TYPE='SYNCIN' APPLICATION="INSIGHT" DBID="BREDENBE"
STARTTIME="01-9-2003 8:55:39PM" DURATION="86" SUCCESS="0"><REFRESH ID="10"
TYPE="PARTIAL"><ERROR ID="-1073731548" SEVERITY="32" TEXT="Last statement
integrity constraints occurred: INSERT INTO CALL
(ACTV_IND,ACTVT_TYPE_CD,CALL_CNT,CALL_DT,CALL_NMBR,CALL_TYPE_CD,CCRF_NMBR,CUST_K
EY_CNTC_NMBR,CUST_LOC_NMBR,END_TM,FLD_ACTV_ACCT_NMBR,HOSP_DEPT_CD,ORGNTD_CALL_IN
D,PDA_LAST_UPDT_DT_TM,PLAND_IND,STRT_TM,RMT_LAST_UPDT_USER_ID) VALUES
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?). [23000 [Microsoft][ODBC SQL Server Driver]
[SQL Server]Violation of PRIMARY KEY constraint 'CALL_PK'. Cannot insert
duplicate key in object 'CALL'. 2627][01000 [Microsoft][ODBC SQL Server Driver]
[SQL Server]The statement has been terminated. 3621][SQL = SELECT ACTV_IND,
ACTVT_TYPE_CD, CALL_CNT, CALL_DT, CALL_NMBR, CALL_TYPE_CD, CCRF_NMBR,
CUST_KEY_CNTC_NMBR, CUST_LOC_NMBR, END_TM, FLD_ACTV_ACCT_NMBR, HOSP_DEPT_CD,
ORGNTD_CALL_IND, PDA_LAST_UPDT_DT_TM, PLAND_IND, STRT_TM, RMT_LAST_UPDT_USER_ID
FROM dbo.CALL] [Parameters: 1:1:Y, 12:1:NULL, 5:-15:4, 11:11:{ts '2002-10-08
00:00:00.0'}, 5:-15:598, 12:1:LS, 12:1:NULL, 4:-16:NULL, 4:-16:1509807, 11:11:
{ts '1980-01-01 08:00:00.0'}, 4:-16:9928325, 12:1:FZ, 1:1: , 11:11:NULL, 1:1:N,
11:11:{ts '1980-01-01 07:30:00.0'}, 12:1:NULL]." TIMESTAMP="01-9-2003
8:56:37PM"/><ERROR ID="10185" SEVERITY="32" TEXT="4131 integrity constraints
occurred while processing the REFRESH data on table CALL." TIMESTAMP="01-9-2003
8:56:37PM"/></REFRESH><DELTA ID="11" TOTALOPS="3" TRANSACTIONS="3"/><DELTA
ID="12" TOTALOPS="3" TRANSACTIONS="3"/><DELTA ID="13" TOTALOPS="3"
TRANSACTIONS="3"/><DELTA ID="14" TOTALOPS="3"
TRANSACTIONS="3"/></SESSION><SESSION TYPE='SYNCIN' APPLICATION="INSIGHT"
DBID="BREDENBE" STARTTIME="01-9-2003 8:38:36PM" DURATION="95"
SUCCESS="0"><REFRESH ID="10" TYPE="PARTIAL"><ERROR ID="-1073731548"
SEVERITY="32" TEXT="Last statement integrity constraints occurred: INSERT INTO
CALL
(ACTV_IND,ACTVT_TYPE_CD,CALL_CNT,CALL_DT,CALL_NMBR,CALL_TYPE_CD,CCRF_NMBR,CUST_K
EY_CNTC_NMBR,CUST_LOC_NMBR,END_TM,FLD_ACTV_ACCT_NMBR,HOSP_DEPT_CD,ORGNTD_CALL_IN
D,PDA_LAST_UPDT_DT_TM,PLAND_IND,STRT_TM,RMT_LAST_UPDT_USER_ID) VALUES
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?). [23000 [Microsoft][ODBC SQL Server Driver]
[SQL Server]Violation of PRIMARY KEY constraint 'CALL_PK'. Cannot insert
duplicate key in object 'CALL'. 2627][01000 [Microsoft][ODBC SQL Server Driver]
[SQL Server]The statement has been terminated. 3621][SQL = SELECT ACTV_IND,
ACTVT_TYPE_CD, CALL_CNT, CALL_DT, CALL_NMBR, CALL_TYPE_CD, CCRF_NMBR,
CUST_KEY_CNTC_NMBR, CUST_LOC_NMBR, END_TM, FLD_ACTV_ACCT_NMBR, HOSP_DEPT_CD,
ORGNTD_CALL_IND, PDA_LAST_UPDT_DT_TM, PLAND_IND, STRT_TM, RMT_LAST_UPDT_USER_ID
FROM dbo.CALL] [Parameters: 1:1:Y, 12:1:NULL, 5:-15:4, 11:11:{ts '2002-10-08
00:00:00.0'}, 5:-15:598, 12:1:LS, 12:1:NULL, 4:-16:NULL, 4:-16:1509807, 11:11:
{ts '1980-01-01 08:00:00.0'}, 4:-16:9928325, 12:1:FZ, 1:1: , 11:11:NULL, 1:1:N,
11:11:{ts '1980-01-01 07:30:00.0'}, 12:1:NULL]." TIMESTAMP="01-9-2003
8:39:34PM"/><ERROR ID="10185" SEVERITY="32" TEXT="4131 integrity constraints
occurred while processing the REFRESH data on table CALL." TIMESTAMP="01-9-2003
8:39:34PM"/></REFRESH><DELTA ID="11" TOTALOPS="3" TRANSACTIONS="3"/><DELTA
ID="12" TOTALOPS="3" TRANSACTIONS="3"/><DELTA ID="13" TOTALOPS="3"
TRANSACTIONS="3"/><DELTA ID="14" TOTALOPS="3"
TRANSACTIONS="3"/></SESSION><SESSION TYPE='SYNCIN' APPLICATION="INSIGHT"
DBID="BREDENBE" STARTTIME="01-13-2003 7:25:44PM" DURATION="2"
SUCCESS="1"><ERROR ID="-1073731533" SEVERITY="32" TEXT="SERVER DELTA 13
received out of order. Will process after receiving DELTAs 10 - 12."
TIMESTAMP="01-13-2003 7:25:44PM"/><ERROR ID="-1073731533" SEVERITY="32"
TEXT="SERVER DELTA 14 received out of order. Will process after receiving
DELTAs 10 - 13." TIMESTAMP="01-13-2003 7:25:45PM"/></SESSION><SESSION
TYPE='SYNCIN' APPLICATION="INSIGHT" DBID="BREDENBE" STARTTIME="01-9-2003
10:15:21PM" DURATION="95" SUCCESS="0"><REFRESH ID="10" TYPE="PARTIAL"><ERROR
ID="-1073731548" SEVERITY="32" TEXT="Last statement integrity constraints
occurred: INSERT INTO CALL
(ACTV_IND,ACTVT_TYPE_CD,CALL_CNT,CALL_DT,CALL_NMBR,CALL_TYPE_CD,CCRF_NMBR,CUST_K
EY_CNTC_NMBR,CUST_LOC_NMBR,END_TM,FLD_ACTV_ACCT_NMBR,HOSP_DEPT_CD,ORGNTD_CALL_IN
D,PDA_LAST_UPDT_DT_TM,PLAND_IND,STRT_TM,RMT_LAST_UPDT_USER_ID) VALUES
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?). [23000 [Microsoft][ODBC SQL Server Driver]
[SQL Server]Violation of PRIMARY KEY constraint 'CALL_PK'. Cannot insert
duplicate key in object 'CALL'. 2627][01000 [Microsoft][ODBC SQL Server Driver]
[SQL Server]The statement has been terminated. 3621][SQL = SELECT ACTV_IND,
ACTVT_TYPE_CD, CALL_CNT, CALL_DT, CALL_NMBR, CALL_TYPE_CD, CCRF_NMBR,
CUST_KEY_CNTC_NMBR, CUST_LOC_NMBR, END_TM, FLD_ACTV_ACCT_NMBR, HOSP_DEPT_CD,
ORGNTD_CALL_IND, PDA_LAST_UPDT_DT_TM, PLAND_IND, STRT_TM, RMT_LAST_UPDT_USER_ID
FROM dbo.CALL] [Parameters: 1:1:Y, 12:1:NULL, 5:-15:4, 11:11:{ts '2002-10-08
00:00:00.0'}, 5:-15:598, 12:1:LS, 12:1:NULL, 4:-16:NULL, 4:-16:1509807, 11:11:
{ts '1980-01-01 08:00:00.0'}, 4:-16:9928325, 12:1:FZ, 1:1: , 11:11:NULL, 1:1:N,
11:11:{ts '1980-01-01 07:30:00.0'}, 12:1:NULL]." TIMESTAMP="01-9-2003
10:16:20PM"/><ERROR ID="10185" SEVERITY="32" TEXT="4131 integrity constraints
occurred while processing the REFRESH data on table CALL." TIMESTAMP="01-9-2003
10:16:20PM"/></REFRESH><DELTA ID="11" TOTALOPS="3" TRANSACTIONS="3"/><DELTA
ID="12" TOTALOPS="3" TRANSACTIONS="3"/><DELTA ID="13" TOTALOPS="3"
TRANSACTIONS="3"/><DELTA ID="14" TOTALOPS="3"
TRANSACTIONS="3"/></SESSION><SESSION TYPE='SYNCOUT' APPLICATION="INSIGHT"
DBID="BREDENBE" STARTTIME="01-9-2003 8:52:34PM" DURATION="12"
SUCCESS="1"><DELTA ID="2" TOTALOPS="0" TRANSACTIONS="4"/></SESSION><SESSION
TYPE='SYNCOUT' APPLICATION="INSIGHT" DBID="BREDENBE" STARTTIME="01-9-2003
8:35:33PM" DURATION="12" SUCCESS="1"><DELTA ID="1" TOTALOPS="0"
TRANSACTIONS="4"/></SESSION><SESSION TYPE='SYNCOUT' APPLICATION="INSIGHT"
DBID="BREDENBE" STARTTIME="01-13-2003 7:25:05PM" DURATION="12"
SUCCESS="1"><DELTA ID="1" TOTALOPS="0" TRANSACTIONS="4"/></SESSION><SESSION
TYPE='SYNCOUT' APPLICATION="INSIGHT" DBID="BREDENBE" STARTTIME="01-9-2003
10:12:30PM" DURATION="10" SUCCESS="1"><DELTA ID="2" TOTALOPS="0"
TRANSACTIONS="4"/></SESSION></SESSIONS>
Here is the XSL:
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:java="http://xml.apache.org/xalan/java"
exclude-result-prefixes="java">
<xsl:template match="/">
<TABLE border="1" cellspacing="0" cellpadding="0" width="800">
<TR class="header">
<TD align="center">User</TD>
<TD align="center">Process Type</TD>
<TD align="center">Session Date</TD>
<TD align="center">Duration</TD>
<TD align="center">Total Ops</TD>
<TD align="center">Transactions</TD>
<TD align="center">Status</TD>
</TR>
<xsl:for-each select="SESSIONS/SESSION">
<xsl:sort select='java:com.is.util.StringFormat.formatDate(@STARTTIME, "MM-d-
yyyy H:mm:ssa", "MM-dd-yyyy HH:mm:ssa")' order="descending"/>
<tr class="on">
<td>
<p align="center"><xsl:value-of select="@DBID"/></p>
</td>
<td>
<p align="center"><xsl:value-of select="@TYPE"/></p>
</td>
<td>
<p align="center"><xsl:value-of
select='java:com.is.util.StringFormat.formatDate(@STARTTIME, "MM-d-yyyy
H:mm:ssa", "MM-dd-yyyy HH:mm:ssa")'/></p>
</td>
<td>
<p align="center"><xsl:value-of select='format-number((@DURATION div
60),"###.00")'/></p>
</td>
<td>
<p align="center"><xsl:value-of select="sum(DELTA/@TOTALOPS)"/></p>
</td>
<td>
<p align="center"><xsl:value-of select="sum(DELTA/@TRANSACTIONS)"/></p>
</td>
<td>
<xsl:choose>
<xsl:when test="@SUCCESS='1'">
<b><p align="center">Success</p></b>
</xsl:when>
<xsl:when test="@SUCCESS='0'">
<b><p align="center"><font color="#FF0000">Failed</font></p></b>
</xsl:when>
<xsl:otherwise>
<b><p align="center">Unknown</p></b>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
Exception occurs on line:
transformer.transform(new StreamSource(new StringReader(szXmlIn)),result);
Thanks for any information you can provide on whether or not this is a valid
bug.
esherman2@aol.com