inheritance without extended info

25 views
Skip to first unread message

Helge Waastad

unread,
Aug 11, 2016, 2:26:37 PM8/11/16
to Ebean ORM
Hi,
playing around with ebean and inheritance:

If I extend a class without adding more fields to subclass, querybean enhancement fails:

ex:

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorValue(value = "ParentGroup")
public class Parent extends BaseModel {
 private String name;
}

and
@Entity
@DiscriminatorValue(value = "ChildGroup")
public class Child extends Parent {

}

output:

java.lang.NullPointerException
at org.avaje.ebean.typequery.agent.TypeQueryAddMethods.add(TypeQueryAddMethods.java:20)
at org.avaje.ebean.typequery.agent.TypeQueryClassAdapter.visitEnd(TypeQueryClassAdapter.java:141)
at org.avaje.ebean.typequery.agent.asm.ClassReader.accept(ClassReader.java:697)
at org.avaje.ebean.typequery.agent.asm.ClassReader.accept(ClassReader.java:506)
at org.avaje.ebean.typequery.agent.QueryBeanTransformer.enhancement(QueryBeanTransformer.java:104)
at org.avaje.ebean.typequery.agent.QueryBeanTransformer.transform(QueryBeanTransformer.java:78)
at org.avaje.ebean.typequery.agent.offline.InputStreamTransform.transform(InputStreamTransform.java:57)
at org.avaje.ebean.typequery.agent.offline.InputStreamTransform.transform(InputStreamTransform.java:41)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.transformFile(OfflineFileTransform.java:136)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.processPackage(OfflineFileTransform.java:119)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.processPackage(OfflineFileTransform.java:110)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.processPackage(OfflineFileTransform.java:110)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.processPackage(OfflineFileTransform.java:110)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.processPackage(OfflineFileTransform.java:110)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.processPackage(OfflineFileTransform.java:110)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.processPackage(OfflineFileTransform.java:110)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.processPackage(OfflineFileTransform.java:110)
at org.avaje.ebean.typequery.agent.offline.OfflineFileTransform.process(OfflineFileTransform.java:64)
at org.avaje.ebean.typequery.maven.MavenEnhanceTask.execute(MavenEnhanceTask.java:83)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)


For single empty beans it's OK:

@Entity
public class EmptyBean extends BaseModel {

}



br hw 


Rob Bygrave

unread,
Aug 23, 2016, 5:03:50 AM8/23/16
to ebean@googlegroups
Logged as https://github.com/ebean-orm/querybean-agent/issues/10

Fixed in 8.1.3 of the agent (and associated maven plugin)

--

---
You received this message because you are subscribed to the Google Groups "Ebean ORM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ebean+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Helge Waastad

unread,
Aug 23, 2016, 8:21:49 AM8/23/16
to Ebean ORM
Hi,

thx for a quick fix :-)

/hw
To unsubscribe from this group and stop receiving emails from it, send an email to ebean+un...@googlegroups.com.

Rob Bygrave

unread,
Aug 23, 2016, 5:45:48 PM8/23/16
to ebean@googlegroups
No problem.  Thanks for taking the time to raise the issue.

With these types of issues it is really good to raise them as you have done.  Sometimes as busy developers we tend to just work around the issue and move on without raising / logging the issue. All these small issues can add up so for me I think it is really good to see issues like this raised and fixed.


Cheers, Rob.

To unsubscribe from this group and stop receiving emails from it, send an email to ebean+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages