Skip to content

Commit 871554c

Browse files
adambirtimtebeekgithub-actions[bot]
authored
ReplaceDuplicateStringLiterals throws NPE from 1.19.0+ #384 (#385)
* Add test case for issue #384 #384 * Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Refactor `staticWithObjectArray` test method * Guard against NPE --------- Co-authored-by: Tim te Beek <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Tim te Beek <[email protected]>
1 parent 004f102 commit 871554c

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

src/main/java/org/openrewrite/staticanalysis/ReplaceDuplicateStringLiterals.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,9 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations
230230
boolean privateStaticFinalVariable = isPrivateStaticFinalVariable(variable);
231231
// `private static final String`(s) are handled separately by `FindExistingPrivateStaticFinalFields`.
232232
if (v.getInitializer() instanceof J.Literal &&
233-
(parentScope.getValue() instanceof J.MethodDeclaration || parentScope.getValue() instanceof J.ClassDeclaration) &&
234-
!(privateStaticFinalVariable && ((J.Literal) v.getInitializer()).getValue() instanceof String)) {
233+
(parentScope.getValue() instanceof J.MethodDeclaration || parentScope.getValue() instanceof J.ClassDeclaration) &&
234+
((J.Literal) v.getInitializer()).getValue() instanceof String &&
235+
!privateStaticFinalVariable) {
235236
String value = (((J.Literal) v.getInitializer()).getValue()).toString();
236237
result.existingFieldValueToFieldName.put(v.getSimpleName(), value);
237238
}

src/test/java/org/openrewrite/staticanalysis/ReplaceDuplicateStringLiteralsTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,4 +727,24 @@ interface A {
727727
)
728728
);
729729
}
730+
731+
@Issue("https://github.com/openrewrite/rewrite-static-analysis/issues/384")
732+
@Test
733+
void staticWithObjectArray() {
734+
rewriteRun(
735+
//language=java
736+
java(
737+
"""
738+
class A {
739+
public void method() {
740+
Object[] args = null;
741+
args = new Object[] {"value"};
742+
}
743+
}
744+
"""
745+
)
746+
);
747+
}
748+
749+
730750
}

0 commit comments

Comments
 (0)