|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2015 the original author or authors. |
|
|
|
* Copyright 2002-2016 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -371,10 +371,12 @@ public class PropertyOrFieldReference extends SpelNodeImpl { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public TypedValue getValue() { |
|
|
|
public TypedValue getValue() { |
|
|
|
TypedValue value = this.ref.getValueInternal(this.contextObject, this.evalContext, this.autoGrowNullReferences); |
|
|
|
TypedValue value = |
|
|
|
if (this.ref.cachedReadAccessor instanceof CompilablePropertyAccessor) { |
|
|
|
this.ref.getValueInternal(this.contextObject, this.evalContext, this.autoGrowNullReferences); |
|
|
|
CompilablePropertyAccessor accessor = (CompilablePropertyAccessor) this.ref.cachedReadAccessor; |
|
|
|
PropertyAccessor accessorToUse = this.ref.cachedReadAccessor; |
|
|
|
this.ref.exitTypeDescriptor = CodeFlow.toDescriptor(accessor.getPropertyType()); |
|
|
|
if (accessorToUse instanceof CompilablePropertyAccessor) { |
|
|
|
|
|
|
|
this.ref.exitTypeDescriptor = |
|
|
|
|
|
|
|
CodeFlow.toDescriptor(((CompilablePropertyAccessor) accessorToUse).getPropertyType()); |
|
|
|
} |
|
|
|
} |
|
|
|
return value; |
|
|
|
return value; |
|
|
|
} |
|
|
|
} |
|
|
|
|