Skip to content

AopUtils.getTargetClass assumes cglib proxies are always proxying classes [SPR-5694] #10364

Closed
@spring-projects-issues

Description

@spring-projects-issues

Iwein Fuld opened SPR-5694 and commented

If you create a cglib proxy for an interface using a third party framework AopUtils will break see INT-654.

Test to demonstrate:

import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;

import org.junit.Test;
import org.springframework.aop.support.AopUtils;

public class AopUtilsMockitoTests {

	@Test
	@SuppressWarnings("unchecked")
	public void getTargetClass() throws Exception {
		AnInterface candidate = mock(AnInterface.class);
		assertTrue(AnInterface.class.isAssignableFrom(candidate.getClass()));
		assertTrue(AnInterface.class.isAssignableFrom(AopUtils.getTargetClass(candidate)));
	}

	private interface AnInterface {	}
}

This was tested with Mockito 1.7


Affects: 2.5.6

Issue Links:

  • INT-645 HandlerMethodUtils doesn't resolve handler methods on cglib proxies ("is depended on by")

Referenced from: commits 8583026

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)type: bugA general bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions