|  | @@ -15,9 +15,8 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  package org.acegisecurity.acl.basic;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import org.apache.commons.lang.ClassUtils;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  import org.springframework.util.Assert;
 | 
	
		
			
				|  |  | +import org.springframework.util.ClassUtils;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.lang.reflect.InvocationTargetException;
 | 
	
		
			
				|  |  |  import java.lang.reflect.Method;
 | 
	
	
		
			
				|  | @@ -66,10 +65,10 @@ public class NamedEntityObjectIdentity implements AclObjectIdentity {
 | 
	
		
			
				|  |  |          throws IllegalAccessException, InvocationTargetException {
 | 
	
		
			
				|  |  |          Assert.notNull(object, "object cannot be null");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        this.classname = (object.getClass().getPackage() == null)
 | 
	
		
			
				|  |  | -            ? ClassUtils.getShortClassName(object.getClass())
 | 
	
		
			
				|  |  | -            : (object.getClass().getPackage().getName() + "."
 | 
	
		
			
				|  |  | -            + ClassUtils.getShortClassName(object.getClass()));
 | 
	
		
			
				|  |  | +        this.classname = (getPackageName(object.getClass().getName()) == null)
 | 
	
		
			
				|  |  | +            ? ClassUtils.getShortName(object.getClass())
 | 
	
		
			
				|  |  | +            : getPackageName(object.getClass().getName() + "."
 | 
	
		
			
				|  |  | +                + ClassUtils.getShortName(object.getClass()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Class clazz = object.getClass();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -134,6 +133,18 @@ public class NamedEntityObjectIdentity implements AclObjectIdentity {
 | 
	
		
			
				|  |  |          return id;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private String getPackageName(String className) {
 | 
	
		
			
				|  |  | +        Assert.hasLength(className, "class name must not be empty");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        int lastDotIndex = className.lastIndexOf(".");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (lastDotIndex == -1) {
 | 
	
		
			
				|  |  | +            return null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return className.substring(0, lastDotIndex);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * Important so caching operates properly.
 | 
	
		
			
				|  |  |       *
 |