@ -120,14 +119,13 @@ public class CompoundExpression extends SpelNodeImpl {
@@ -120,14 +119,13 @@ public class CompoundExpression extends SpelNodeImpl {
for(inti=0;i<getChildCount();i++){
sb.append(getChild(i).toStringAST());
if(i<getChildCount()-1){
SpelNodenextChild=getChild(i+1);
SpelNodeImplnextChild=this.children[i+1];
if(nextChild.isNullSafe()){
sb.append("?.");
}
// Don't append a '.' if the next child is an Indexer.
// For example, we want 'myVar[0]' instead of 'myVar.[0]'.
@ -76,6 +76,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
@@ -76,6 +76,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
@ -181,7 +182,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
@@ -181,7 +182,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
throwsEvaluationException{
ObjecttargetObject=contextObject.getValue();
if(targetObject==null&&this.nullSafe){
if(targetObject==null&&isNullSafe()){
returnTypedValue.NULL;
}
@ -233,7 +234,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
@@ -233,7 +234,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
@ -353,7 +354,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
@@ -353,7 +354,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
}
LabelskipIfNull=null;
if(this.nullSafe){
if(isNullSafe()){
mv.visitInsn(DUP);
skipIfNull=newLabel();
LabelcontinueLabel=newLabel();
@ -381,7 +382,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
@@ -381,7 +382,7 @@ public class PropertyOrFieldReference extends SpelNodeImpl {
// If this property or field access would return a primitive - and yet
// it is also marked null safe - then the exit type descriptor must be
// promoted to the box type to allow a null value to be passed on