Skip to content

Stack overflow when generating Protobuf schema on class containing cyclic type definition #140

Closed
@acommuni

Description

@acommuni

I'm trying to generate schema from class on the following class :

 class B {
        public boolean isC() {
            return c;
        }

        public void setC(boolean c) {
            this.c = c;
        }

        private boolean c = true;

    }

    class A {
        private OffsetDateTime date;
        private List<B> b = Arrays.asList(new B[] { new B(), new B() });
        private B[] b2 = new B[] { new B(), new B() };

        public List<B> getB() {
            return b;
        }

        public void setB(List<B> b) {
            this.b = b;
        }

        public B[] getB2() {
            return b2;
        }

        public void setB2(B[] b2) {
            this.b2 = b2;
        }

        public OffsetDateTime getDate() {
            return date;
        }

        public void setDate(OffsetDateTime date) {
            this.date = date;
        }
    }

I generate the class with this :

private JsonProvider provider = new JacksonProvider();
    private ProtobufMapper mapper = new ProtobufMapper();

Class<?> cls = A.class;
        ProtobufSchema schemaWrapper = protoBuffCache.get(cls);
        schemaWrapper = mapper.generateSchemaFor(cls);

The stack loops on OffsetDatetime resolution


TypeResolver._resolve(MessageElement) line: 134	
TypeResolver._findAnyResolved(FieldElement, String) line: 182	
TypeResolver._resolve(MessageElement) line: 134	
TypeResolver._findAnyResolved(FieldElement, String) line: 182	
TypeResolver._resolve(MessageElement) line: 134	
TypeResolver._findAnyResolved(FieldElement, String) line: 182	
TypeResolver._resolve(MessageElement) line: 134	
TypeResolver._findAnyResolved(FieldElement, String) line: 182	
TypeResolver._resolve(MessageElement) line: 134	
TypeResolver._findAnyResolved(FieldElement, String) line: 182	
TypeResolver._resolve(MessageElement) line: 134	
TypeResolver.resolve(MessageElement) line: 93	
NativeProtobufSchema.forFirstType() line: 81	
ProtobufSchemaGenerator.getGeneratedSchema(boolean) line: 49	
ProtobufSchemaGenerator.getGeneratedSchema() line: 32	
ProtobufMapper.generateSchemaFor(Class<?>) line: 111	

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions