DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=35923>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=35923

           Summary: SetNestedPropertiesRule throws a ClassCastException
           Product: Commons
           Version: unspecified
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: critical
          Priority: P2
         Component: Digester
        AssignedTo: [email protected]
        ReportedBy: [EMAIL PROTECTED]


I'm using Commons Digester 1.7 with JasperReports 1.0, and while parsing my
report, I get this exception:

java.lang.ClassCastException
        at
org.apache.commons.digester.SetNestedPropertiesRule.body(SetNestedPropertiesRule.java:261)
        at org.apache.commons.digester.Digester.endElement(Digester.java:1006)
        at
org.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:585)
        at
org.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBinder.java:647)
        at
org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1937)
        at
org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:851)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1008)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:14
69)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
        at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
        at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
        at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
        at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
        at org.apache.commons.digester.Digester.parse(Digester.java:1514)
        at 
net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:225)
        at 
net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:209)
        at 
net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:163)
        at 
net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:147)
        at
net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:142)
        at com.convergys.wo.jr.CVGJRUtils.compileReport(CVGJRUtils.java:41)
        at com.convergys.wo.jr.CVGJRUtils.printReport(CVGJRUtils.java:77)
        at BackgroundReporting.printReport(BackgroundReporting.java:542)
        at BackgroundReporting.generateReportNamed(BackgroundReporting.java:390)
        at 
BackgroundReporting.generateBatchReports(BackgroundReporting.java:595)
        at BackgroundReporting.run(BackgroundReporting.java:269)
        at java.util.TimerThread.mainLoop(Timer.java:432)
        at java.util.TimerThread.run(Timer.java:382)

The debug logs show this:
...
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:989) 
-endElement(,,textElement)
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:989) 
-endElement(,,textElement)
DEBUG 13:35:41 (org.apache.commons.digester.Digester:992)  - 
match='jasperReport/pageHeader/band/staticText/textElement'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:992)  - 
match='jasperReport/pageHeader/band/staticText/textElement'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:993)  -  bodyText=''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:993)  -  bodyText=''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1004)  -  Fire body() for
FactoryCreateRule[className=net.sf.jasperreports.engine.xml
.JRTextElementFactory, attributeName=null,
[EMAIL PROTECTED]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1004)  -  Fire body() for
FactoryCreateRule[className=net.sf.jasperreports.engine.xml
.JRTextElementFactory, attributeName=null,
[EMAIL PROTECTED]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1024)  -  Popping body 
text ''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1024)  -  Popping body 
text ''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1034)  -  Fire end() for
FactoryCreateRule[className=net.sf.jasperreports.engine.xml.
JRTextElementFactory, attributeName=null,
[EMAIL PROTECTED]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1034)  -  Fire end() for
FactoryCreateRule[className=net.sf.jasperreports.engine.xml.
JRTextElementFactory, attributeName=null,
[EMAIL PROTECTED]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:308) 
-[FactoryCreateRule]{jasperReport/pageHeader/band/staticText/textElement} Pop n
et.sf.jasperreports.engine.design.JRDesignStaticText
DEBUG 13:35:41 (org.apache.commons.digester.Digester:308) 
-[FactoryCreateRule]{jasperReport/pageHeader/band/staticText/textElement} Pop n
et.sf.jasperreports.engine.design.JRDesignStaticText
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:1101) 
-ignorableWhitespace(
                                )
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:1101) 
-ignorableWhitespace(
                                )
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:1201) 
-startElement(,,text)
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:1201) 
-startElement(,,text)
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1208)  -  Pushing body 
text ''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1208)  -  Pushing body 
text ''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1224)  -  New
match='jasperReport/pageHeader/band/staticText/text'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1224)  -  New
match='jasperReport/pageHeader/band/staticText/text'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1248)  -  No rules found
matching 'jasperReport/pageHeader/band/staticText/text'.
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1248)  -  No rules found
matching 'jasperReport/pageHeader/band/staticText/text'.
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:921) 
-characters(Inbound Summary List)
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:921) 
-characters(Inbound Summary List)
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:989)  
-endElement(,,text)
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:989)  
-endElement(,,text)
DEBUG 13:35:41 (org.apache.commons.digester.Digester:992)  - 
match='jasperReport/pageHeader/band/staticText/text'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:992)  - 
match='jasperReport/pageHeader/band/staticText/text'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:993)  -  bodyText='Inbound
Summary List'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:993)  -  bodyText='Inbound
Summary List'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1017)  -  No rules found
matching 'jasperReport/pageHeader/band/staticText/text'.
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1017)  -  No rules found
matching 'jasperReport/pageHeader/band/staticText/text'.
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1024)  -  Popping body 
text ''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1024)  -  Popping body 
text ''
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:1101) 
-ignorableWhitespace(
                                )
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:1101) 
-ignorableWhitespace(
                                )
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:989) 
-endElement(,,staticText)
DEBUG 13:35:41 (org.apache.commons.digester.Digester.sax:989) 
-endElement(,,staticText)
DEBUG 13:35:41 (org.apache.commons.digester.Digester:992)  - 
match='jasperReport/pageHeader/band/staticText'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:992)  - 
match='jasperReport/pageHeader/band/staticText'
DEBUG 13:35:41 (org.apache.commons.digester.Digester:993)  -  bodyText=''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:993)  -  bodyText=''
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1004)  -  Fire body() for
FactoryCreateRule[className=net.sf.jasperreports.engine.xml
.JRStaticTextFactory, attributeName=null,
[EMAIL PROTECTED]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1004)  -  Fire body() for
FactoryCreateRule[className=net.sf.jasperreports.engine.xml
.JRStaticTextFactory, attributeName=null,
[EMAIL PROTECTED]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1004)  -  Fire body() for
SetNextRule[methodName=addElement, paramType=net.sf.jasperr
eports.engine.design.JRDesignElement]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1004)  -  Fire body() for
SetNextRule[methodName=addElement, paramType=net.sf.jasperr
eports.engine.design.JRDesignElement]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1004)  -  Fire body() for
SetNestedPropertiesRule[allowUnknownChildElements=true, tri
mData=false, elementNames={}]
DEBUG 13:35:41 (org.apache.commons.digester.Digester:1004)  -  Fire body() for
SetNestedPropertiesRule[allowUnknownChildElements=true, tri
mData=false, elementNames={}]
ERROR 13:35:41 (org.apache.commons.digester.Digester:1008)  -Body event threw
exception
java.lang.ClassCastException
...<stack trace from above>...

The XML file in question contains this up to this point:
<?xml version="1.0" encoding="UTF-8"  ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd";>
<jasperReport
                 name="InboundHolding"
                 columnCount="1"
                 printOrder="Vertical"
                 orientation="Portrait"
                 pageWidth="612"
                 pageHeight="792"
                 columnWidth="540"
                 columnSpacing="15"
                 leftMargin="20"
                 rightMargin="20"
                 topMargin="30"
                 bottomMargin="30"
                 whenNoDataType="AllSectionsNoDetail"
                 scriptletClass="com.convergys.wo.jr.CGTReportsScriptlet"
                 isTitleNewPage="false"
                 isSummaryNewPage="false">
        <property name="ireport.scriptlethandling" value="2" />
        <reportFont name="DefaultFont" isDefault="false" fontName="Courier New"
size="12" isBold="false" isItalic="false" isUnderline="false"
isStrikeThrough="false" pdfFontName="Courier" pdfEncoding="Cp1252"
isPdfEmbedded="true"/>
        <field name="removedForBugReport" class="java.lang.String"/>
        <field name="removedForBugReport" class="java.math.BigDecimal"/>
        <field name="removedForBugReport" class="java.lang.String"/>
        <field name="removedForBugReport" class="java.lang.String"/>
        <field name="removedForBugReport" class="java.lang.String"/>
        <field name="removedForBugReport" class="java.lang.String"/>
        <field name="removedForBugReport" class="java.math.BigDecimal"/>
        <field name="removedForBugReport" class="java.sql.Timestamp"/>
                <background>
                        <band height="0"  isSplitAllowed="true" >
                        </band>
                </background>
                <title>
                        <band height="0"  isSplitAllowed="true" >
                        </band>
                </title>
                <pageHeader>
                        <band height="50"  isSplitAllowed="true" >
                                <staticText>
                                        <reportElement
                                                mode="Opaque"
                                                x="176"
                                                y="1"
                                                width="212"
                                                height="14"
                                                forecolor="#000000"
                                                backcolor="#FFFFFF"
                                                key="staticText"
                                                stretchType="NoStretch"
                                                positionType="Float"
                                                isPrintRepeatedValues="true"
                                                isRemoveLineWhenBlank="false"
                                                isPrintInFirstWholeBand="false"
                                                
isPrintWhenDetailOverflows="false"/>
                                        <textElement textAlignment="Center" 
verticalAlignment="Middle"
rotation="None" lineSpacing="Single">
                                                <font reportFont="DefaultFont"/>
                                        </textElement>
                                <text><![CDATA[Inbound Summary List]]></text>
                                </staticText>
...

The XML report file validates successfully. From perusing the source, it appears
the problem is here:
260     public void body(String bodyText) throws Exception {
261         AnyChildRules newRules = (AnyChildRules) digester.getRules();
262         digester.setRules(newRules.getOldRules());
263     }
Apparently digester.getRules() is not returning an AnyChildRules. I have no
familiarity with digester, so I don't have any idea what that means or why it
might be the case.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to