Skip to content

Commit 64f0200

Browse files
committed
polishing
1 parent 64fc4c2 commit 64f0200

File tree

2 files changed

+30
-26
lines changed

2 files changed

+30
-26
lines changed

org.springframework.aop/src/main/java/org/springframework/aop/config/AbstractInterceptorDrivenBeanDefinitionDecorator.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public final BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder defin
6565
String existingBeanName = definitionHolder.getBeanName();
6666
BeanDefinition existingDefinition = definitionHolder.getBeanDefinition();
6767

68-
// delegate to subclass for interceptor def
68+
// delegate to subclass for interceptor definition
6969
BeanDefinition interceptorDefinition = createInterceptorDefinition(node);
7070

7171
// generate name and register the interceptor
@@ -75,9 +75,9 @@ public final BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder defin
7575
BeanDefinitionHolder result = definitionHolder;
7676

7777
if (!isProxyFactoryBeanDefinition(existingDefinition)) {
78-
// create the proxy definitionHolder
78+
// create the proxy definition
7979
RootBeanDefinition proxyDefinition = new RootBeanDefinition();
80-
// create proxy factory bean definitionHolder
80+
// create proxy factory bean definition
8181
proxyDefinition.setBeanClass(ProxyFactoryBean.class);
8282

8383
// set up property values
@@ -88,8 +88,7 @@ public final BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder defin
8888
mpvs.add("target", existingDefinition);
8989

9090
// create the interceptor names list
91-
ManagedList interceptorList = new ManagedList();
92-
mpvs.add("interceptorNames", interceptorList);
91+
mpvs.add("interceptorNames", new ManagedList<String>());
9392

9493
result = new BeanDefinitionHolder(proxyDefinition, existingBeanName);
9594
}

org.springframework.core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2009 the original author or authors.
2+
* Copyright 2002-2010 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@
2727

2828
import org.apache.commons.logging.Log;
2929
import org.apache.commons.logging.LogFactory;
30+
3031
import org.springframework.asm.ClassReader;
3132
import org.springframework.asm.Label;
3233
import org.springframework.asm.MethodVisitor;
@@ -46,27 +47,29 @@
4647
* as far as possible.
4748
*
4849
* @author Adrian Colyer
49-
* @author Juergen Hoeller
5050
* @author Costin Leau
51+
* @author Juergen Hoeller
5152
* @since 2.0
5253
*/
5354
public class LocalVariableTableParameterNameDiscoverer implements ParameterNameDiscoverer {
5455

5556
private static Log logger = LogFactory.getLog(LocalVariableTableParameterNameDiscoverer.class);
5657

57-
// the cache uses a nested index (value is a map) to keep the top level cache relatively small in size
58-
private final Map<Class<?>, Map<Member, String[]>> parameterNamesCache = new ConcurrentHashMap<Class<?>, Map<Member, String[]>>();
59-
6058
// marker object for classes that do not have any debug info
6159
private static final Map<Member, String[]> NO_DEBUG_INFO_MAP = Collections.emptyMap();
6260

61+
// the cache uses a nested index (value is a map) to keep the top level cache relatively small in size
62+
private final Map<Class<?>, Map<Member, String[]>> parameterNamesCache =
63+
new ConcurrentHashMap<Class<?>, Map<Member, String[]>>();
64+
65+
6366
public String[] getParameterNames(Method method) {
6467
Class<?> declaringClass = method.getDeclaringClass();
65-
Map<Member, String[]> map = parameterNamesCache.get(declaringClass);
68+
Map<Member, String[]> map = this.parameterNamesCache.get(declaringClass);
6669
if (map == null) {
6770
// initialize cache
6871
map = inspectClass(declaringClass);
69-
parameterNamesCache.put(declaringClass, map);
72+
this.parameterNamesCache.put(declaringClass, map);
7073
}
7174
if (map != NO_DEBUG_INFO_MAP) {
7275
return map.get(method);
@@ -77,11 +80,11 @@ public String[] getParameterNames(Method method) {
7780
@SuppressWarnings("unchecked")
7881
public String[] getParameterNames(Constructor ctor) {
7982
Class<?> declaringClass = ctor.getDeclaringClass();
80-
Map<Member, String[]> map = parameterNamesCache.get(declaringClass);
83+
Map<Member, String[]> map = this.parameterNamesCache.get(declaringClass);
8184
if (map == null) {
8285
// initialize cache
8386
map = inspectClass(declaringClass);
84-
parameterNamesCache.put(declaringClass, map);
87+
this.parameterNamesCache.put(declaringClass, map);
8588
}
8689
if (map != NO_DEBUG_INFO_MAP) {
8790
return map.get(ctor);
@@ -91,10 +94,8 @@ public String[] getParameterNames(Constructor ctor) {
9194
}
9295

9396
/**
94-
* Inspects the target class. Exceptions will be logged and a maker map returned to indicate the lack of debug information.
95-
*
96-
* @param clazz
97-
* @return
97+
* Inspects the target class. Exceptions will be logged and a maker map returned
98+
* to indicate the lack of debug information.
9899
*/
99100
private Map<Member, String[]> inspectClass(Class<?> clazz) {
100101
InputStream is = clazz.getResourceAsStream(ClassUtils.getClassFileName(clazz));
@@ -105,40 +106,42 @@ private Map<Member, String[]> inspectClass(Class<?> clazz) {
105106
logger.debug("Cannot find '.class' file for class [" + clazz
106107
+ "] - unable to determine constructors/methods parameter names");
107108
}
108-
109109
return NO_DEBUG_INFO_MAP;
110110
}
111-
112111
try {
113112
ClassReader classReader = new ClassReader(is);
114113
Map<Member, String[]> map = new ConcurrentHashMap<Member, String[]>();
115114
classReader.accept(new ParameterNameDiscoveringVisitor(clazz, map), false);
116115
return map;
117-
} catch (IOException ex) {
116+
}
117+
catch (IOException ex) {
118118
if (logger.isDebugEnabled()) {
119119
logger.debug("Exception thrown while reading '.class' file for class [" + clazz
120120
+ "] - unable to determine constructors/methods parameter names", ex);
121121
}
122-
} finally {
122+
}
123+
finally {
123124
try {
124125
is.close();
125-
} catch (IOException ex) {
126+
}
127+
catch (IOException ex) {
126128
// ignore
127129
}
128130
}
129-
130131
return NO_DEBUG_INFO_MAP;
131132
}
132133

134+
133135
/**
134136
* Helper class that inspects all methods (constructor included) and then
135137
* attempts to find the parameter names for that member.
136138
*/
137139
private static class ParameterNameDiscoveringVisitor extends EmptyVisitor {
138140

141+
private static final String STATIC_CLASS_INIT = "<clinit>";
142+
139143
private final Class<?> clazz;
140144
private final Map<Member, String[]> memberMap;
141-
private static final String STATIC_CLASS_INIT = "<clinit>";
142145

143146
public ParameterNameDiscoveringVisitor(Class<?> clazz, Map<Member, String[]> memberMap) {
144147
this.clazz = clazz;
@@ -163,6 +166,7 @@ private static boolean isStatic(int access) {
163166
}
164167
}
165168

169+
166170
private static class LocalVariableTableVisitor extends EmptyVisitor {
167171

168172
private static final String CONSTRUCTOR = "<init>";
@@ -255,4 +259,5 @@ private static boolean isWideType(Type aType) {
255259
return (aType == Type.LONG_TYPE || aType == Type.DOUBLE_TYPE);
256260
}
257261
}
258-
}
262+
263+
}

0 commit comments

Comments
 (0)