[jboss-cvs] JBossCache/src/org/jboss/cache/pojo/impl ...
Jason Thomas Greene
jgreene at jboss.com
Wed Jul 18 11:21:02 EDT 2007
User: jgreene
Date: 07/07/18 11:21:02
Modified: src/org/jboss/cache/pojo/impl AdvisedPojoHandler.java
CachedType.java
Log:
Optomize enum fields by treating them like primitives
Revision Changes Path
1.9 +2 -30 JBossCache/src/org/jboss/cache/pojo/impl/AdvisedPojoHandler.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: AdvisedPojoHandler.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/pojo/impl/AdvisedPojoHandler.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- AdvisedPojoHandler.java 21 Jun 2007 17:43:58 -0000 1.8
+++ AdvisedPojoHandler.java 18 Jul 2007 15:21:02 -0000 1.9
@@ -32,7 +32,7 @@
*
* @author Ben Wang
* Date: Aug 4, 2005
- * @version $Id: AdvisedPojoHandler.java,v 1.8 2007/06/21 17:43:58 jgreene Exp $
+ * @version $Id: AdvisedPojoHandler.java,v 1.9 2007/07/18 15:21:02 jgreene Exp $
*/
class AdvisedPojoHandler
{
@@ -61,17 +61,8 @@
}
catch (Exception e)
{
- // Is this a case of no-default constructor, e.g., Enum? Let's try it.
- try
- {
- obj = loadFromOthers(fqn, clazz);
- if (obj == null) throw e;
- }
- catch (Exception e1)
- {
throw new CacheException("failed creating instance of " + clazz.getName(), e);
}
- }
// Insert interceptor at runtime
InstanceAdvisor advisor = ((Advised) obj)._getInstanceAdvisor();
CacheFieldInterceptor interceptor = new CacheFieldInterceptor(pCache_, fqn, type);
@@ -80,25 +71,6 @@
return obj;
}
- private Object loadFromOthers(Fqn fqn, Class clazz) throws Exception
- {
- // Try Enum first.
- if (clazz.isEnum())
- {
- String name = (String) pCache_.getCache().get(fqn, InternalConstant.ENUM_KEY);
- if (name == null)
- {
- throw new CacheException(
- "AdvisedPojoHandler.loadFromOthers(): can't retrieve java.lang.Enum name field."
- + " fqn: " + fqn);
- }
- Object obj = Enum.valueOf(clazz, name);
- return obj;
- }
-
- return null;
- }
-
void put(Fqn fqn, Fqn referencingFqn, Object obj) throws CacheException
{
CachedType type = pCache_.getCachedType(obj.getClass());
1.3 +2 -1 JBossCache/src/org/jboss/cache/pojo/impl/CachedType.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: CachedType.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/pojo/impl/CachedType.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- CachedType.java 18 Jul 2007 03:01:48 -0000 1.2
+++ CachedType.java 18 Jul 2007 15:21:02 -0000 1.3
@@ -86,7 +86,8 @@
private static boolean isImmediate(Class clazz)
{
- return immediates.contains(clazz);
+ // Treat enums as a simple type since they serialize to a simple string
+ return immediates.contains(clazz) || Enum.class.isAssignableFrom(clazz);
}
public boolean isImmutable()
More information about the jboss-cvs-commits
mailing list