From e2a9bc9c6658226c283a50c807e2de5053a21cee 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) --- .../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 cd2f26732a..aa3cee29fb 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; } /**