History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CIB-799
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: jason
Reporter: Paul Redmond
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Pulse

cppunit processor failing on files with empty tags

Created: 02/Dec/06 01:11 AM   Updated: 02/Dec/06 02:09 AM
Component/s: Build core
Affects Version/s: 1.2.6
Fix Version/s: 1.2.7


 Description  « Hide
I'm getting an error parsing my cppunit test results in 1.2.6.

I've narrowed the problem down to files I generate when a test generates an empty xml file. I did this because of the issue Pulse had parsing incomplete xml files. If I don't generate these files and let Pulse warn about unexpected end of file everything works as expected.

I've found a work-around but I think it's still worth investigating what's causing this error.

---

Here's the place-holder xml I generated:

<?xml version="1.0" encoding='ISO-8859-1' standalone='yes' ?>
<TestRun>
  <FailedTests>
    <FailedTest id="1">
      <Name>build/test/cppunit/programs/binding::all</Name>
      <FailureType>Error</FailureType>
      <Location>
        <File></File>
        <Line></Line>
      </Location>
      <Message>Actual cppunit test results not produced!</Message>
    </FailedTest>
  </FailedTests>
  <SuccessfulTests></SuccessfulTests>
  <Statistics>
    <Tests>1</Tests>
    <FailuresTotal>1</FailuresTotal>
    <Errors>1</Errors>
    <Failures>0</Failures>
  </Statistics>
</TestRun>

SEVERE: This node has no children
java.lang.IndexOutOfBoundsException: This node has no children
        at nu.xom.ParentNode.getChild(Unknown Source)
        at com.zutubi.pulse.core.XMLReportPostProcessor.getText(XMLReportPostProcessor.java:64)
        at com.zutubi.pulse.core.CppUnitReportPostProcessor.getMessage(CppUnitReportPostProcessor.java:171)
        at com.zutubi.pulse.core.CppUnitReportPostProcessor.processFailedTests(CppUnitReportPostProcessor.java:72)
        at com.zutubi.pulse.core.CppUnitReportPostProcessor.processDocument(CppUnitReportPostProcessor.java:50)
        at com.zutubi.pulse.core.XMLReportPostProcessor.internalProcess(XMLReportPostProcessor.java:35)
        at com.zutubi.pulse.core.TestReportPostProcessor.process(TestReportPostProcessor.java:37)
        at com.zutubi.pulse.core.Artifact.captureFile(Artifact.java:152)
        at com.zutubi.pulse.core.DirectoryArtifact.capture(DirectoryArtifact.java:119)
        at com.zutubi.pulse.core.CommandGroup.execute(CommandGroup.java:74)
        at com.zutubi.pulse.core.RecipeProcessor.executeCommand(RecipeProcessor.java:209)
        at com.zutubi.pulse.core.RecipeProcessor.build(RecipeProcessor.java:157)
        at com.zutubi.pulse.core.RecipeProcessor.build(RecipeProcessor.java:100)
        at com.zutubi.pulse.slave.SlaveRecipeProcessor.processRecipe(SlaveRecipeProcessor.java:73)
        at com.zutubi.pulse.slave.command.RecipeCommand.run(RecipeCommand.java:30)
        at com.zutubi.pulse.slave.ErrorHandlingRunnable.run(ErrorHandlingRunnable.java:36)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)


 All   Comments   Change History      Sort Order:
jason - 02/Dec/06 02:09 AM
Fixed in change 2672.