{"action":"created","issue":{"url":"https://api.github.com/repos/payara/Payara/issues/966","repository_url":"https://api.github.com/repos/payara/Payara","labels_url":"https://api.github.com/repos/payara/Payara/issues/966/labels{/name}","comments_url":"https://api.github.com/repos/payara/Payara/issues/966/comments","events_url":"https://api.github.com/repos/payara/Payara/issues/966/events","html_url":"https://github.com/payara/Payara/issues/966","id":168323454,"number":966,"title":"The class does not have a descriptor, or a descriptor that does not use inheritance or uses a ClassExtractor for inheritance","user":{"login":"Quix0r","id":470798,"avatar_url":"https://avatars.githubusercontent.com/u/470798?v=3","gravatar_id":"","url":"https://api.github.com/users/Quix0r","html_url":"https://github.com/Quix0r","followers_url":"https://api.github.com/users/Quix0r/followers","following_url":"https://api.github.com/users/Quix0r/following{/other_user}","gists_url":"https://api.github.com/users/Quix0r/gists{/gist_id}","starred_url":"https://api.github.com/users/Quix0r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Quix0r/subscriptions","organizations_url":"https://api.github.com/users/Quix0r/orgs","repos_url":"https://api.github.com/users/Quix0r/repos","events_url":"https://api.github.com/users/Quix0r/events{/privacy}","received_events_url":"https://api.github.com/users/Quix0r/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/payara/Payara/labels/0:Triaged","name":"0:Triaged","color":"0052cc"},{"url":"https://api.github.com/repos/payara/Payara/labels/c:PossibleBug","name":"c:PossibleBug","color":"bfd4f2"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-07-29T13:21:49Z","updated_at":"2016-08-16T14:28:01Z","closed_at":null,"body":"Severity: **Blocker** (see reason below)\r\nReproduceable: **Always**\r\n\r\nThis message comes with following JPQL:\r\n`SELECT c FROM AbstractFoo AS c WHERE TYPE(c) IN :types`\r\nThe class is annotated with:\r\n\r\n```\r\n@Entity\r\n@Inheritance (strategy = InheritanceType.TABLE_PER_CLASS)\r\n@NamedQueries (\r\n{\r\n// Some named queries\r\n}\r\n)\r\n```\r\nSadly I cannot simply switch to any other inheritance type as the table design is given (I write a JavaEE application for an existing database).\r\nThen many other concrete classes expands it:\r\n\r\n```\r\n@Entity (name = \"Some_000123_Foo\")\r\n@Table (name = \"Some_000123_Foo\")\r\n@SuppressWarnings (\"PersistenceUnitPresent\")\r\npublic class SomeFooier extends AbstractFoo {\r\n\r\n\t/**\r\n\t * Serial number\r\n\t */\r\n\t@Transient\r\n\tprivate static final long serialVersionUID = 15_868_174_390L;\r\n\r\n}\r\n```\r\nAnd tons more of these. As you can see, I try to minimize my code base, else I would have been required to duplicate all the entity properties to all concrete classes.\r\n\r\nI already use Payara 162.\r\n\r\nAn excerpt from the backtrace:\r\n```\r\nException Description: Invalid Type Expression on [com.example.project.model.foo.AbstractFoo].  The class does not have a descriptor, or a descriptor that does not use inheritance or uses a ClassExtractor for inheritance\r\n\tat org.eclipse.persistence.exceptions.QueryException.invalidTypeExpression(QueryException.java:763)\r\n\tat org.eclipse.persistence.internal.expressions.ClassTypeExpression.validateNode(ClassTypeExpression.java:100)\r\n\tat org.eclipse.persistence.expressions.Expression.normalize(Expression.java:3291)\r\n\tat org.eclipse.persistence.internal.expressions.DataExpression.normalize(DataExpression.java:369)\r\n\tat org.eclipse.persistence.internal.expressions.CompoundExpression.normalize(CompoundExpression.java:224)\r\n\tat org.eclipse.persistence.internal.expressions.RelationExpression.normalize(RelationExpression.java:574)\r\n\tat org.eclipse.persistence.internal.expressions.SQLSelectStatement.normalize(SQLSelectStatement.java:1474)\r\n\tat org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.buildNormalSelectStatement(ExpressionQueryMechanism.java:550)\r\n\tat org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.prepareSelectAllRows(ExpressionQueryMechanism.java:1722)\r\n\tat org.eclipse.persistence.queries.ReadAllQuery.prepareSelectAllRows(ReadAllQuery.java:885)\r\n\tat org.eclipse.persistence.queries.ReadAllQuery.prepare(ReadAllQuery.java:816)\r\n\tat org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:666)\r\n\tat org.eclipse.persistence.queries.ObjectLevelReadQuery.checkPrepare(ObjectLevelReadQuery.java:911)\r\n\tat org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:615)\r\n\tat org.eclipse.persistence.internal.jpa.QueryImpl.getDatabaseQueryInternal(QueryImpl.java:342)\r\n\tat org.eclipse.persistence.internal.jpa.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:1135)\r\n\tat org.eclipse.persistence.internal.jpa.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:1155)\r\n\tat com.sun.enterprise.container.common.impl.EntityManagerWrapper.createNamedQuery(EntityManagerWrapper.java:537)\r\n\tat com.example.project.model.foo.ReportsCustomerSessionBean.fetchSelectedCustomerStatistics(ReportsCustomerSessionBean.java:179)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:498)\r\n\tat org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)\r\n\tat org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)\r\n\tat com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4789)\r\n\tat com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)\r\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)\r\n\tat com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)\r\n\tat org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)\r\n\tat org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)\r\n\tat sun.reflect.GeneratedMethodAccessor276.invoke(Unknown Source)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:498)\r\n\tat com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)\r\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)\r\n\tat com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)\r\n\tat com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)\r\n\tat com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)\r\n\tat sun.reflect.GeneratedMethodAccessor277.invoke(Unknown Source)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:498)\r\n\tat com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)\r\n\tat com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)\r\n\tat com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)\r\n\tat com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4761)\r\n\tat com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4749)\r\n\tat com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:205)\r\n\tat com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)\r\n\tat com.sun.proxy.$Proxy354.fetchSelectedCustomerStatistics(Unknown Source)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:498)\r\n\tat com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)\r\n\tat com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173)\r\n\tat com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)\r\n\tat com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)\r\n\tat com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549)\r\n\tat com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:119)\r\n\tat com.sun.corba.ee.impl.protocol.ClientDelegateImpl.invoke(ClientDelegateImpl.java:258)\r\n\tat com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:198)\r\n\tat com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:150)\r\n\tat com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:226)\r\n```"},"comment":{"url":"https://api.github.com/repos/payara/Payara/issues/comments/240118913","html_url":"https://github.com/payara/Payara/issues/966#issuecomment-240118913","issue_url":"https://api.github.com/repos/payara/Payara/issues/966","id":240118913,"user":{"login":"Quix0r","id":470798,"avatar_url":"https://avatars.githubusercontent.com/u/470798?v=3","gravatar_id":"","url":"https://api.github.com/users/Quix0r","html_url":"https://github.com/Quix0r","followers_url":"https://api.github.com/users/Quix0r/followers","following_url":"https://api.github.com/users/Quix0r/following{/other_user}","gists_url":"https://api.github.com/users/Quix0r/gists{/gist_id}","starred_url":"https://api.github.com/users/Quix0r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Quix0r/subscriptions","organizations_url":"https://api.github.com/users/Quix0r/orgs","repos_url":"https://api.github.com/users/Quix0r/repos","events_url":"https://api.github.com/users/Quix0r/events{/privacy}","received_events_url":"https://api.github.com/users/Quix0r/received_events","type":"User","site_admin":false},"created_at":"2016-08-16T14:28:01Z","updated_at":"2016-08-16T14:28:01Z","body":"Sorry, running out of hands here."}}
{"actor":{"display_login":"Quix0r"}}