[
https://jira.jboss.org/jira/browse/DNA-231?page=com.atlassian.jira.plugin...
]
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@title => /d/e/f"
actual: "/a/b/c@title => /d/e/f"
- the output with with jdk 1.6 ( the specific entity ">" is replaced
with the corresponding character ">")
expected: "/a/b/c@title => /d/e/f"
actual: "/a/b/c@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@title => /d/e/f"
got: "/a/b/c@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