Skip to content

Commit fbd3f2b

Browse files
dreis2211odrotbohm
authored andcommitted
DATACMNS-925 - Improve memory consumption of Parameter and Parameters.
This commit changes some ArrayList initializations to use an initial capacity and avoids the unnecessary fetch of the return type of a method in Parameter.isDynamicProjectionParameter(). Original pull request: #180.
1 parent 45cc9d6 commit fbd3f2b

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/main/java/org/springframework/data/repository/query/Parameter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -194,13 +194,13 @@ private static boolean isDynamicProjectionParameter(MethodParameter parameter) {
194194

195195
ClassTypeInformation<?> ownerType = ClassTypeInformation.from(parameter.getDeclaringClass());
196196
TypeInformation<?> parameterTypes = ownerType.getParameterTypes(method).get(parameter.getParameterIndex());
197-
TypeInformation<Object> returnType = ClassTypeInformation.fromReturnTypeOf(method);
198197

199198
if (!parameterTypes.getType().equals(Class.class)) {
200199
return false;
201200
}
202201

203202
TypeInformation<?> bound = parameterTypes.getTypeArguments().get(0);
203+
TypeInformation<Object> returnType = ClassTypeInformation.fromReturnTypeOf(method);
204204
return bound.equals(returnType.getActualType());
205205
}
206206

src/main/java/org/springframework/data/repository/query/Parameters.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ public Parameters(Method method) {
6262

6363
Assert.notNull(method);
6464

65-
this.parameters = new ArrayList<T>();
66-
this.dynamicProjectionIndex = -1;
67-
6865
List<Class<?>> types = Arrays.asList(method.getParameterTypes());
6966

67+
this.parameters = new ArrayList<T>(types.size());
68+
this.dynamicProjectionIndex = -1;
69+
7070
for (int i = 0; i < types.size(); i++) {
7171

7272
MethodParameter methodParameter = new MethodParameter(method, i);
@@ -98,12 +98,12 @@ public Parameters(Method method) {
9898
*/
9999
protected Parameters(List<T> originals) {
100100

101-
this.parameters = new ArrayList<T>();
102-
103101
int pageableIndexTemp = -1;
104102
int sortIndexTemp = -1;
105103
int dynamicProjectionTemp = -1;
106104

105+
this.parameters = new ArrayList<T>(originals.size());
106+
107107
for (int i = 0; i < originals.size(); i++) {
108108

109109
T original = originals.get(i);

0 commit comments

Comments
 (0)