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