[
http://jira.codehaus.org/browse/XFIRE-919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_91152
]
Chris Moesel commented on XFIRE-919:
------------------------------------
Oooh! A new discovery!
If you change the WSDL so that the xsd:base64Binary element is the first
element in the response wrapper, then the bug disappears!
The main difference is that when it is the first element, it becomes the return
type of the generated Java interface. When it is not the first element, it is
contained in a Holder object in the interface-- and this is when it fails.
Hope this extra information helps!
> xsd:base64Binary in response type cause NPE on deployment
> ---------------------------------------------------------
>
> Key: XFIRE-919
> URL: http://jira.codehaus.org/browse/XFIRE-919
> Project: XFire
> Issue Type: Bug
> Components: JAX-WS, JAXB 2.0
> Affects Versions: 1.2.5
> Reporter: Chris Moesel
> Assigned To: Dan Diephouse
> Priority: Critical
> Attachments: pizza_service_npe_bug.zip
>
>
> A WSDL-first service using the JAX-WS profile in XFire 1.2.5 fails if one of
> the response types includes an element of type xsd:base64Binary. This bug is
> not present in XFire 1.2.4.
> The attached project demonstrates the bug. An example stack trace can be
> found at the end of this description.
> This bug can be demonstrated by running "mvn install" or "mvn test". If you
> comment out the "NewMenu" element in the "OrderPizzaResponseType", you'll see
> that the test then runs successfully. The test also runs successfully if you
> change the dependencies in the POM.xml to use XFire 1.2.4.
> Maven test result with stack trace:
> -------------------------------------------------------------------------------
> Test set: com.mypizzaco.service.PizzaServiceTestCase
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.172 sec <<<
> FAILURE!
> warning(junit.framework.TestSuite$1) Time elapsed: 0 sec <<< FAILURE!
> junit.framework.AssertionFailedError: Exception in constructor:
> testPizzaServiceWithClient
> (org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'pizzaService' defined in class path resource [spring-config.xml]:
> Invocation of init method failed; nested exception is
> org.codehaus.xfire.XFireRuntimeException: Couldn't load provider.. Nested
> exception is java.lang.NullPointerException: null
> Caused by: org.codehaus.xfire.XFireRuntimeException: Couldn't load provider..
> Nested exception is java.lang.NullPointerException: null
> java.lang.NullPointerException
> at
> org.codehaus.xfire.jaxb2.JaxbTypeCreator.isJaxbType(JaxbTypeCreator.java:92)
> at
> org.codehaus.xfire.jaxws.type.JAXWSTypeCreator.createTypeForClass(JAXWSTypeCreator.java:31)
> at
> org.codehaus.xfire.jaxws.type.JAXWSTypeCreator.createHolderType(JAXWSTypeCreator.java:51)
> at
> org.codehaus.xfire.aegis.type.AbstractTypeCreator.createTypeForClass(AbstractTypeCreator.java:101)
> at
> org.codehaus.xfire.jaxws.type.JAXWSTypeCreator.createTypeForClass(JAXWSTypeCreator.java:38)
> at
> org.codehaus.xfire.aegis.type.AbstractTypeCreator.createType(AbstractTypeCreator.java:356)
> at
> org.codehaus.xfire.aegis.AegisBindingProvider.getParameterType(AegisBindingProvider.java:283)
> at
> org.codehaus.xfire.aegis.AegisBindingProvider.initializeMessage(AegisBindingProvider.java:138)
> at
> org.codehaus.xfire.service.binding.AbstractBindingProvider.initialize(AbstractBindingProvider.java:41)
> at
> org.codehaus.xfire.aegis.AegisBindingProvider.initialize(AegisBindingProvider.java:126)
> at
> org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:460)
> at
> org.codehaus.xfire.annotations.AnnotationServiceFactory.create(AnnotationServiceFactory.java:256)
> at
> org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:224)
> at
> org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:184)
> at
> org.codehaus.xfire.annotations.AnnotationServiceFactory.create(AnnotationServiceFactory.java:410)
> at
> org.codehaus.xfire.spring.ServiceBean.afterPropertiesSet(ServiceBean.java:172)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1057)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1024)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:140)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:68)
> at
> com.mypizzaco.service.PizzaServiceTestCase.<init>(PizzaServiceTestCase.java:17)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
> at junit.framework.TestSuite.createTest(TestSuite.java:131)
> at junit.framework.TestSuite.addTestMethod(TestSuite.java:114)
> at junit.framework.TestSuite.<init>(TestSuite.java:75)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
> at
> org.apache.maven.surefire.junit.JUnitTestSet.constructTestObject(JUnitTestSet.java:148)
> at
> org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:194)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:135)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:122)
> at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
> 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:585)
> at
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:225)
> at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:747)
> )
> at junit.framework.Assert.fail(Assert.java:47)
> at junit.framework.TestSuite$1.runTest(TestSuite.java:263)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> 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:585)
> at
> org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:210)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:135)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:122)
> at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
> 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:585)
> at
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:225)
> at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:747)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email