From 98310aede8b6a0ca1fa5b8220030de61350d874f Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 6 Apr 2010 11:52:42 +0000 Subject: [PATCH] specific detection of CGLIB subclasses in order to properly handle CGLIB interfaces (SPR-7066) git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3228 50f2f4bb-b051-0410-bef5-90022cba6387 --- .../java/org/springframework/util/ClassUtils.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/org.springframework.core/src/main/java/org/springframework/util/ClassUtils.java b/org.springframework.core/src/main/java/org/springframework/util/ClassUtils.java index cd2f26732af..aa3cee29fb5 100644 --- a/org.springframework.core/src/main/java/org/springframework/util/ClassUtils.java +++ b/org.springframework.core/src/main/java/org/springframework/util/ClassUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * Copyright 2002-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -372,8 +372,13 @@ public abstract class ClassUtils { * @return the user-defined class */ public static Class getUserClass(Class clazz) { - return (clazz != null && clazz.getName().contains(CGLIB_CLASS_SEPARATOR) ? - clazz.getSuperclass() : clazz); + if (clazz != null && clazz.getName().contains(CGLIB_CLASS_SEPARATOR)) { + Class superClass = clazz.getSuperclass(); + if (superClass != null && !Object.class.equals(superClass)) { + return superClass; + } + } + return clazz; } /**