2012-11-06 5 views
2

JAXB 프로 구현으로 목시를 사용하여, 다음 클래스는 예외로 연결 :왜 JAXB Moxy가 ArrayIndexOutOfBoundsException을 던집니까?

@XmlRootElement(name="fraPage") 
@XmlAccessorType(XmlAccessType.FIELD) 
case class FraPage(@ScalaXmlTypeAdapter(value=classOf[FraSeqAdapter]) @ScalaXmlElementWrapper(name="fras") data:Seq[Fra],@XmlTransient id: FraPageId, @ScalaXmlElement header:FraPageHeader) extends PageWithId[FraPageId]{ 


    private def this()= this(null,null,null) 
    lazy val isEmpty = data.isEmpty 



} 


Exception in thread "main" javax.xml.bind.JAXBException: 0 
- with linked exception: 
[java.lang.ArrayIndexOutOfBoundsException: 0] 
    at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:908) 
    at org.eclipse.persistence.jaxb.JAXBContext.<init>(JAXBContext.java:157) 
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:170) 
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:157) 
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:117) 
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:107) 
    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 javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202) 
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:363) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522) 
    at com.gottex.gottware.services.Dummy$.main(Dummy.scala:16) 
    at com.gottex.gottware.services.Dummy.main(Dummy.scala) 
    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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateDirectCollectionMapping(MappingsGenerator.java:2004) 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMapping(MappingsGenerator.java:501) 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMappings(MappingsGenerator.java:2265) 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMappings(MappingsGenerator.java:2225) 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateProject(MappingsGenerator.java:201) 
    at org.eclipse.persistence.jaxb.compiler.Generator.generateProject(Generator.java:185) 
    at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:913) 
    at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:905) 
    ... 20 more 

Process finished with exit code 1 

일어나는 이유는 무엇입니까? 나는 목시 버전 2.4.0

+1

당신이 구성 요소의 버전을 적어주십시오 수있는 다음과 같은 버그를 사용하여이 문제에 대한 우리의 진행 상황을 추적 할 수 있습니까? 그것을 파악하는 가장 좋은 방법은 소스를 자세히 조사하는 것입니다. 버전을 모르는 상태에서 2004 년 라인은 많이 말하지 않습니다. –

+0

또한이 버그는 관련이 없습니다 : https://bugs.eclipse.org/bugs /show_bug.cgi?id=331144 확인할 가치가 있습니다. –

답변

0

참고 JDK 1.6.0.25을 사용하고 있습니다 : 내가 EclipseLink JAXB (MOXy) 리드와 JAXB (JSR-222) 전문가 그룹의 구성원입니다.

이것은 MOXy 버그 인 것으로 보입니다. 이라는 org.eclipse.persistence.jaxb.javamodel.reflection.JavaClassImpl 클래스에 거짓 양성을 반환하는 메서드가 있습니다. 사용

관련 문제