Skip to content

StackOverflowError exception when mapping interface #188

@Sander-Schulenburg

Description

@Sander-Schulenburg

After upgrading from 1.4.6 to 1.5.0 I'm getting an StackOverflowError. I have created a simple testcase to reproduce the exception.

Testcase:

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;

import java.util.List;

import org.junit.Test;

import ma.glasnost.orika.metadata.Type;
import ma.glasnost.orika.metadata.TypeFactory;

public class SimpleTestCase {

	@Test
	public void testCase() throws Exception {
		Type<?> type = TypeFactory.valueOf(Interface1.class);
		assertThat(type.toString(), is("Interface1<Interface2<Interface2>>"));
	}

	public interface Interface1<T extends Interface2<T>> {
		public List<T> getList();
	}

	public interface Interface2<T extends Interface2<T>> {
		public Interface1<T> getEntity();
	}
}

Exception

java.lang.StackOverflowError
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:334)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:315)
	at ma.glasnost.orika.metadata.TypeUtil.convertTypeArguments(TypeUtil.java:193)
	at ma.glasnost.orika.metadata.TypeFactory.intern(TypeFactory.java:436)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:394)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:377)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:311)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:337)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:315)
	at ma.glasnost.orika.metadata.TypeUtil.convertTypeArguments(TypeUtil.java:193)
	...
	...
	...
	at ma.glasnost.orika.metadata.TypeFactory.intern(TypeFactory.java:436)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:394)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:377)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:311)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:337)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:315)
	at ma.glasnost.orika.metadata.TypeUtil.convertTypeArguments(TypeUtil.java:193)
	at ma.glasnost.orika.metadata.TypeFactory.intern(TypeFactory.java:436)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:394)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:377)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:311)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:337)
	at ma.glasnost.orika.metadata.TypeFactory.limitedValueOf(TypeFactory.java:315)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions