Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPE on nested @Embedded #336

Open
sros-yort opened this issue Dec 26, 2022 · 4 comments · May be fixed by #367
Open

NPE on nested @Embedded #336

sros-yort opened this issue Dec 26, 2022 · 4 comments · May be fixed by #367

Comments

@sros-yort
Copy link

@Entity
@Table(name = "A")
public class A implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "id")
    private String id;

    @Embedded
    private B b;

}

@Embeddable
public class B implements Serializable {

    @Column(name = "b", nullable = false)
    private String b;

    @Embedded
    private C c;

}

@Embeddable
public class C implements Serializable {

    @Column(name = "c", nullable = false)
    private String c;

}
Caused by: java.lang.NullPointerException: Cannot invoke "javax.persistence.metamodel.EntityType.getName()" because "baseEntity" is null
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getObjectField(GraphQLJpaSchemaBuilder.java:946) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getObjectField(GraphQLJpaSchemaBuilder.java:909) ~[classes/:na]
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na]
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na]
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getEmbeddableType(GraphQLJpaSchemaBuilder.java:852) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getAttributeType(GraphQLJpaSchemaBuilder.java:1080) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getAttributeOutputType(GraphQLJpaSchemaBuilder.java:1066) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getObjectField(GraphQLJpaSchemaBuilder.java:914) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.lambda$getEntityAttributesFields$5(GraphQLJpaSchemaBuilder.java:880) ~[classes/:na]
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na]
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na]
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getEntityAttributesFields(GraphQLJpaSchemaBuilder.java:881) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.computeObjectType(GraphQLJpaSchemaBuilder.java:870) ~[classes/:na]
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[na:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getObjectType(GraphQLJpaSchemaBuilder.java:862) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getQueryFieldByIdDefinition(GraphQLJpaSchemaBuilder.java:221) ~[classes/:na]
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na]
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na]
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.getQueryType(GraphQLJpaSchemaBuilder.java:189) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder.build(GraphQLJpaSchemaBuilder.java:159) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.autoconfigure.GraphQLSchemaBuilderAutoConfiguration.lambda$defaultGraphQLJpaSchemaBuilderConfigurer$1(GraphQLSchemaBuilderAutoConfiguration.java:56) ~[classes/:na]
	at com.introproventures.graphql.jpa.query.autoconfigure.GraphQLSchemaAutoConfiguration.graphQLSchemaFactoryBean(GraphQLSchemaAutoConfiguration.java:31) ~[classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.24.jar:5.3.24]
	... 20 common frames omitted
@renzo-schembri
Copy link

Hi @sros-yort , I am encountering the same issue in my project. Did you receive any feedback by any chance?

@isaac-mercieca isaac-mercieca linked a pull request May 26, 2023 that will close this issue
@DBunthai
Copy link

Hi @igdianov ,
we are facing this issue.
Can you help to check on it?

I suggest you look at this PR: #367

@DBunthai
Copy link

Hi @chanhengseang3 , @sros-yort
we can upgrade this library from 0.3.37 to 0.4.0 and 0.4.1

but we can't go upper 0.4.4 due to this bug that causes a null-pointer in compile time

@igdianov
Copy link
Collaborator

igdianov commented Jul 2, 2023

This PR #367 should fix it. I can backport it to maintenance branch, but I need the integration test included with the fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants