Hello,

2018-01-25 17:41 GMT+01:00 Seán Coffey <sean.cof...@oracle.com>:

>
> Classes nearer to those below were touched via JDK-8186080: Transform XML
> interfaces
> http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/cb84156d54b2
> http://hg.openjdk.java.net/jdk8u/jdk8u/jaxp/rev/08a44c164993
>
> This may be connected with some tools trying to redefine the classes
> perhaps. Needs more investigating. Perhaps the XMLSchemaLoader changes are
> a factor ?
>

I have ben able to extract a minimal reproducer. It is not related to
XMLUnit, only to powermock. If it instruments com.sun but not javax.xml
(and other combinations) then it fails.

For details see the readme in this maven project:

https://github.com/ecki/reproduce-schemaex

I also found a way to make it work with both versions, so its no longer an
issue for me, but there is definitely some changes (which might also be
triggered in AppServers or OSGi containers with partially reconfigured
implementations. Not sure if you want to investigate deeper).

Gruss
Bernd


Here is the stacktrace anyway:
>>
>> com.sun.org.apache.xerces.internal.impl.dv.DVFactoryException: Schema
>> factory class
>> com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl does
>> not
>> extend from SchemaDVFactory.
>>      at
>> com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactory.
>> getInstance(SchemaDVFactory.java:75)
>>      at
>> com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactory.
>> getInstance(SchemaDVFactory.java:57)
>>      at
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.
>> reset(XMLSchemaLoader.java:1024)
>>      at
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.
>> loadGrammar(XMLSchemaLoader.java:556)
>>      at
>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.
>> loadGrammar(XMLSchemaLoader.java:535)
>>      at
>> com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchema
>> Factory.newSchema(XMLSchemaFactory.java:254)
>>      at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.
>> java:638)
>>      at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.
>> java:654)
>>      at
>> com.seeburger.api.test.helpers.BuilderTestHelper.getCRSchema
>> Validator(BuilderTestHelper.java:57)
>>      at
>> com.seeburger.api.test.helpers.BuilderTestHelper.validateAnd
>> Compare(BuilderTestHelper.java:73)
>>      at
>> com.seeburger.api.test.KSMBuilderTest.testDeletePGP(KSMBuild
>> erTest.java:196)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>> ssorImpl.java:62)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>> thodAccessorImpl.java:43)
>>      at java.lang.reflect.Method.invoke(Method.java:498)
>>      at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44R
>> unnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod
>> (PowerMockJUnit44RunnerDelegateImpl.java:310)
>>      at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.
>> java:89)
>>      at
>> org.junit.internal.runners.MethodRoadie.runBeforesThenTestTh
>> enAfters(MethodRoadie.java:97)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44R
>> unnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(P
>> owerMockJUnit44RunnerDelegateImpl.java:294)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit47R
>> unnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestIn
>> Super(PowerMockJUnit47RunnerDelegateImpl.java:127)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit47R
>> unnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(P
>> owerMockJUnit47RunnerDelegateImpl.java:82)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44R
>> unnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThe
>> nTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:282)
>>      at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie
>> .java:87)
>>      at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44R
>> unnerDelegateImpl.invokeTestMethod(PowerMockJUni
>> t44RunnerDelegateImpl.java:207)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44R
>> unnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:146)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44R
>> unnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:120)
>>      at
>> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassR
>> oadie.java:34)
>>      at
>> org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
>>      at
>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44R
>> unnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:122)
>>      at
>> org.powermock.modules.junit4.common.internal.impl.JUnit4Test
>> SuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:106)
>>      at
>> org.powermock.modules.junit4.common.internal.impl.AbstractCo
>> mmonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
>>      at
>> org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59)
>>      at
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.
>> run(JUnit4TestReference.java:86)
>>      at
>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(
>> TestExecution.java:38)
>>      at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
>> sts(RemoteTestRunner.java:539)
>>      at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
>> sts(RemoteTestRunner.java:761)
>>      at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
>> RemoteTestRunner.java:461)
>>      at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
>> RemoteTestRunner.java:207)
>>
>> on the classpath jaxb-impl-2.2.5.jar but the specific packages are only
>> loaded from rt.jar and redefined. I asume the later is done by Powermock.
>>
>>      Line 611: [Loaded
>> com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactory from
>> C:\Program
>> Files\Java\jdk1.8.0_161\jre\lib\rt.jar]
>>      Line 616: [Loaded
>> com.sun.org.apache.xerces.internal.impl.dv.xs.BaseSchemaDVFactory from
>> C:\Program Files\Java\jdk1.8.0_161\jre\lib\rt.jar]
>>      Line 617: [Loaded
>> com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl from
>> C:\Program Files\Java\jdk1.8.0_161\jre\lib\rt.jar]
>>      Line 618: [Loaded
>> com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactory from
>> __JVM_DefineClass__]
>>      Line 619: [Loaded
>> com.sun.org.apache.xerces.internal.impl.dv.xs.BaseSchemaDVFactory from
>> __JVM_DefineClass__]
>>      Line 620: [Loaded
>> com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl from
>> __JVM_DefineClass__]
>>
>> Is that something you are concerned?
>>
>> Gruss
>> Bernd
>>
>

Reply via email to