Exception thrown if @Mapkey refers to a field which belongs superclass
----------------------------------------------------------------------

                 Key: OPENJPA-1799
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1799
             Project: OpenJPA
          Issue Type: Bug
    Affects Versions: 2.0.1
            Reporter: Kai Feng Zhang


FriendDb entity has such a field:

  @OneToMany(targetEntity = FriendPropertyDb.class, mappedBy = "friend")
  @MapKey(name="type")
  protected Map<String ListFieldDb> properties;

ListFieldDb is superclass of FriendPropertyDb, and type is a field of 
ListFieldDb.

But then I get an exception saying:

<openjpa-2.0.1-r422266:989424 fatal user error> 
org.apache.openjpa.persistence.ArgumentException: 
"org.apache.shindig.social.opensocial.jpa.FriendDb.properties<key:class 
java.lang.String>" declared that it is mapped by "type", but that is a not a 
field of the related type.
        at 
org.apache.openjpa.meta.ValueMetaDataImpl.getValueMappedByMetaData(ValueMetaDataImpl.java:329)
        at 
org.apache.openjpa.jdbc.meta.ValueMappingImpl.getValueMappedByMapping(ValueMappingImpl.java:121)
        at 
org.apache.openjpa.jdbc.meta.ValueMappingImpl.getColumns(ValueMappingImpl.java:130)
        at 
org.apache.openjpa.jdbc.meta.ValueMappingImpl.resolveMapping(ValueMappingImpl.java:518)
        at 
org.apache.openjpa.jdbc.meta.ValueMappingImpl.resolve(ValueMappingImpl.java:500)
        at 
org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.java:522)
        at 
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:461)
        at 
org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping(ClassMapping.java:853)
        at 
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1791)
        at 
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:790)
        at 
org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataRepository.java:751)
        at 
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:631)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:385)
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:358)
        at 
org.apache.openjpa.meta.MetaDataRepository.resolveAll(MetaDataRepository.java:1923)
        at 
org.apache.openjpa.meta.MetaDataRepository.getQueryMetaDataInternal(MetaDataRepository.java:1901)
        at 
org.apache.openjpa.meta.MetaDataRepository.getQueryMetaData(MetaDataRepository.java:1888)
        at 
org.apache.openjpa.persistence.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:1013)
        at 
org.apache.openjpa.persistence.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:100)
        at 
org.apache.shindig.social.opensocial.jpa.spi.PersonServiceDb.getPerson(PersonServiceDb.java:162)
        at 
org.apache.shindig.social.opensocial.service.PersonHandler.get(PersonHandler.java:83)
        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.shindig.protocol.DefaultHandlerRegistry$MethodCaller.call(DefaultHandlerRegistry.java:483)
        at 
org.apache.shindig.protocol.DefaultHandlerRegistry$RestInvocationHandler.execute(DefaultHandlerRegistry.java:369)
        at 
org.apache.shindig.protocol.DefaultHandlerRegistry$RestInvocationWrapper.execute(DefaultHandlerRegistry.java:394)
        at 
org.apache.shindig.protocol.DataServiceServlet.handleSingleRequest(DataServiceServlet.java:162)
        at 
org.apache.shindig.protocol.DataServiceServlet.executeRequest(DataServiceServlet.java:111)
        at 
org.apache.shindig.protocol.DataServiceServlet.doGet(DataServiceServlet.java:54)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.shindig.auth.AuthenticationServletFilter.callChain(AuthenticationServletFilter.java:125)
        at 
org.apache.shindig.auth.AuthenticationServletFilter.doFilter(AuthenticationServletFilter.java:88)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to