[dna-issues] [JBoss JIRA] Resolved: (DNA-231) org.jboss.dna.graph.xml.XmlSequencerTest failed with jdk 1.6 (not with jdk 1.5)

Randall Hauch (JIRA) jira-events at lists.jboss.org
Tue Nov 11 23:46:36 EST 2008


     [ https://jira.jboss.org/jira/browse/DNA-231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Randall Hauch resolved DNA-231.
-------------------------------

    Resolution: Done
      Assignee: Randall Hauch  (was: Johnny Verhaeg)
        Labels: java6  (was: )


Apparently the SAX parser in Java 1.6.0_07 (build 1.6.0_07-b06-153) on OS-X 10.5.5 does not call the handler methods in the proper order for entity references.  For example, in 1.5 (and in 1.6 on Fedora), this will result in calls to 'startEntity(...)', 'characters(...)', and 'endEntity(...)'. Java 1.6.0_07 on OS-X results in 'startEntity(...)', 'endEntity(...)', and , 'characters(...)' where the 'characters' method is called with character content representing the replaced entity reference PLUS the next characters that would normally be supplied in the subsequent call to 'characters'.

This was addressed by changing how the flag used by these methods to record which entity reference is being processed, and by recording the replacement value when the entity declaration is processed (so that we can separate the entity replacement value from the 'extra' characters).  

New test cases were added to properly verify this behavior, and to ensure that the changes work correctly.  Tests were run in both Java 1.5 and 1.6 on both OS-X and on Fedora.

> org.jboss.dna.graph.xml.XmlSequencerTest failed with jdk 1.6 (not with jdk 1.5)
> -------------------------------------------------------------------------------
>
>                 Key: DNA-231
>                 URL: https://jira.jboss.org/jira/browse/DNA-231
>             Project: DNA
>          Issue Type: Bug
>          Components: Graph
>    Affects Versions: 0.3
>         Environment: Testing on Mac OS x 10.5 with Java(TM) SE Runtime Environment (build 1.6.0_05-b13-120)
>            Reporter: Serge Emmanuel Pagop
>            Assignee: Randall Hauch
>            Priority: Minor
>             Fix For: 0.3
>
>
> maybe a jdk 1.5 bug, because of the decode of the entity >
> - the output with with jdk 1.5
> expected: "/a/b/c at title => /d/e/f"
> actual: "/a/b/c at title => /d/e/f"
> - the output with with jdk 1.6 ( the specific entity ">" is replaced with the corresponding character ">")
> expected: "/a/b/c at title => /d/e/f"
> actual: "/a/b/c at title = > /d/e/f"
> --- Error trace
> -------------------------------------------------------------------------------
> Test set: org.jboss.dna.graph.xml.XmlSequencerTest
> -------------------------------------------------------------------------------
> Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.147 sec <<< FAILURE!
> shouldSequenceElementContent(org.jboss.dna.graph.xml.XmlSequencerTest)  Time elapsed: 0.506 sec  <<< FAILURE!
> java.lang.AssertionError:
> Expected: is "/a/b/c at title =&gt; /d/e/f"
>     got: "/a/b/c at title = > /d/e/f"
> 	at org.junit.Assert.assertThat(Assert.java:502)
> 	at org.junit.Assert.assertThat(Assert.java:492)
> 	at org.jboss.dna.graph.xml.XmlSequencerTest.verifyString(XmlSequencerTest.java:225)
> 	at org.jboss.dna.graph.xml.XmlSequencerTest.shouldSequenceElementContent(XmlSequencerTest.java:155)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
> 	at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
> 	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
> 	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
> 	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
> 	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
> 	at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
> 	at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
> 	at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
> 	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
> 	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
> 	at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
> 	at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
> 	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
> 	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
> 	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
> 	at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the dna-issues mailing list