ClassCastException with SAXParserFactoryImpl and SAXParserFactory

954 views
Skip to first unread message

sjel

unread,
Feb 25, 2009, 8:57:17 AM2/25/09
to PowerMock
Hi everybody.

i have written some tests using easymock + classextension together
with jmockit and dbunit.

now i have installed powermock but it takes a long time until the test
starts and i get following error:

java.lang.ClassCastException:
org.apache.xerces.jaxp.SAXParserFactoryImpl cannot be cast to
javax.xml.parsers.SAXParserFactory
at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
at org.dbunit.dataset.xml.FlatXmlProducer.produce
(FlatXmlProducer.java:344)
at org.dbunit.dataset.CachedDataSet.<init>(CachedDataSet.java:97)
at org.dbunit.dataset.CachedDataSet.<init>(CachedDataSet.java:81)
at org.dbunit.dataset.xml.FlatXmlDataSet.<init>(FlatXmlDataSet.java:
303)
at org.dbunit.dataset.xml.FlatXmlDataSet.<init>(FlatXmlDataSet.java:
290)
at Crayons.App.Entry.SaveRawPageTestZusatz_powermock.getDataSet
(SaveRawPageTestZusatz_powermock.java:206)
at
Crayons.App.Entry.SaveRawPageTestZusatz_powermock.setUpDbUnitDatabase
(SaveRawPageTestZusatz_powermock.java:222)
at Crayons.App.Entry.SaveRawPageTestZusatz_powermock.setUp
(SaveRawPageTestZusatz_powermock.java:278)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.internal.runners.MethodRoadie.runBefores
(MethodRoadie.java:129)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters
(MethodRoadie.java:93)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl
$2.runBeforesThenTestThenAfters
(PowerMockJUnit44RunnerDelegateImpl.java:207)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:
84)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod
(PowerMockJUnit44RunnerDelegateImpl.java:202)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods
(PowerMockJUnit44RunnerDelegateImpl.java:156)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl
$1.run(PowerMockJUnit44RunnerDelegateImpl.java:130)
at org.junit.internal.runners.ClassRoadie.runUnprotected
(ClassRoadie.java:34)
at org.junit.internal.runners.ClassRoadie.runProtected
(ClassRoadie.java:44)
at
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run
(PowerMockJUnit44RunnerDelegateImpl.java:128)
at
org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run
(JUnit4TestSuiteChunkerImpl.java:112)
at
org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run
(AbstractCommonPowerMockRunner.java:44)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run
(JUnit4TestReference.java:45)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run
(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run
(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main
(RemoteTestRunner.java:196)


the failure seems to happens in dbunit when i try to load a xml file
to a IDataSet

like in http://groups.google.com/group/powermock/browse_thread/thread/88079512f2dfcbd1
i tried using
@PowerMockIgnore("org.apache") but nothing changed
and @PowerMockIgnore("javax.xml") just gives me a different failure
exception:

java.lang.LinkageError: loader constraint violation: loader (instance
of org/powermock/core/classloader/MockClassLoader) previously
initiated loading for a different type with name "org/xml/sax/
XMLReader"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass
(MockClassLoader.java:180)
at org.powermock.core.classloader.MockClassLoader.loadModifiedClass
(MockClassLoader.java:144)
at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass
(DeferSupportingClassLoader.java:57)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at org.dbunit.dataset.xml.FlatDtdProducer.setLexicalHandler
(FlatDtdProducer.java:132)
at org.dbunit.dataset.xml.FlatXmlProducer.produce
(FlatXmlProducer.java:350)
at org.dbunit.dataset.CachedDataSet.<init>(CachedDataSet.java:97)
at org.dbunit.dataset.CachedDataSet.<init>(CachedDataSet.java:81)
at org.dbunit.dataset.xml.FlatXmlDataSet.<init>(FlatXmlDataSet.java:
303)
at org.dbunit.dataset.xml.FlatXmlDataSet.<init>(FlatXmlDataSet.java:
290)
at Crayons.App.Entry.SaveRawPageTestZusatz_powermock.getDataSet
(SaveRawPageTestZusatz_powermock.java:195)


has anyone experienced this before?


p.s. i am using junit-4.5, dbunit-2.4.3., the test runs with
jdk1.6.0_05 on Eclipse Platform Version: 3.4.0

Johan Haleby

unread,
Feb 26, 2009, 1:04:53 AM2/26/09
to powe...@googlegroups.com
Hi,

I don't think I've seen this particular problem before. Could you
please attach some code that demonstrates the issue so that I can have
a look at it? Since you're using 3rd party dependencies it would be
awesome if you could attach a small maven project (but it's not
necessary if it's too much of a problem).

/Johan

sj...@gmx.de

unread,
Feb 26, 2009, 5:39:49 AM2/26/09
to powe...@googlegroups.com
Sorry if this email got in the wrong thread, I'm new to google groups.


Hi Johan.

I'm sorry, we don't use maven in our Project
and i don't know how to use it.

i have attached a little programm that calls the
method from dbunit that gives the error message.
(the package name and db driverclass and connection needs to be changed)

dbunit can be downloaded at http://www.dbunit.org
and then some dependencies are needed http://www.dbunit.org/dependencies.html.
--
Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger01

powermock_dbunit.java

Johan Haleby

unread,
Feb 26, 2009, 11:21:19 AM2/26/09
to powe...@googlegroups.com

Thanks! Unfortunatley DBUnit seem to have a lot of dependencies and I don't have time to download all of them manually right now (I'm on an internet cafe). I'll try to attach my own computer tomorrow, so hang in there :)

/Johan

Johan Haleby

unread,
Mar 1, 2009, 4:44:50 AM3/1/09
to powe...@googlegroups.com
I've tried to look into this a little bit but I think you need to attach the "SaveRawPage" as well right?

/Johan

sjel

unread,
Mar 2, 2009, 3:37:16 AM3/2/09
to PowerMock
Hi.

oh sorry, i forgot to attach it.
but you don't need it. you can just try it with an empty
SaveRawPage.class,
it gives me the same error message.



On 1 Mrz., 10:44, Johan Haleby <johan.hal...@gmail.com> wrote:
> I've tried to look into this a little bit but I think you need to attach the
> "SaveRawPage" as well right?
>
> /Johan
>
> On Thu, Feb 26, 2009 at 5:21 PM, Johan Haleby <johan.hal...@gmail.com>wrote:
>
> > Thanks! Unfortunatley DBUnit seem to have a lot of dependencies and I don't
> > have time to download all of them manually right now (I'm on an internet
> > cafe). I'll try to attach my own computer tomorrow, so hang in there :)
>
> > /Johan
>
> > On Thu, Feb 26, 2009 at 4:09 PM, <s...@gmx.de> wrote:
>
> >> Sorry if this email got in the wrong thread, I'm new to google groups.
>
> >> Hi Johan.
>
> >> I'm sorry, we don't use maven in our Project
> >> and i don't know how to use it.
>
> >> i have attached a little programm that calls the
> >> method from dbunit that gives the error message.
> >> (the package name and db driverclass and connection needs to be changed)
>
> >> dbunit can be downloaded athttp://www.dbunit.org

Jan Kronquist

unread,
Mar 9, 2009, 3:40:13 PM3/9/09
to powe...@googlegroups.com
Simply add @PowerMockIgnore("org.dbunit")

/Jan

sjel

unread,
Mar 12, 2009, 5:26:37 AM3/12/09
to PowerMock
wow it works!
thanks for your help :)

i noticed jmockit needs to be ignored too:
the failure is "java.lang.ClassCastException:
sun.tools.attach.WindowsAttachProvider cannot be cast to
com.sun.tools.attach.spi.AttachProvider"



On 9 Mrz., 20:40, Jan Kronquist <jan.kronqu...@gmail.com> wrote:
> Simply add @PowerMockIgnore("org.dbunit")
>
> /Jan
>
> > like inhttp://groups.google.com/group/powermock/browse_thread/thread/8807951...
Reply all
Reply to author
Forward
0 new messages