Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WrongTimberUsageDetector.checkNestedStringFormat NPE #334

Open
deM1d opened this issue Sep 12, 2018 · 4 comments
Open

WrongTimberUsageDetector.checkNestedStringFormat NPE #334

deM1d opened this issue Sep 12, 2018 · 4 comments
Assignees

Comments

@deM1d
Copy link

deM1d commented Sep 12, 2018

Hi! We use latest Timber version(4.7.1). I found some issue in custom Lint rule(WrongTimberUsageDetector). Did not go deeper to find reason, why it is crashing. Just post you simple code, that initiates NPE.

Code:
TextUtils.join(",", Arrays.asList(String.format("Hello %s", "World"), "Hello World"));

Crash log:

NullPointerException:
WrongTimberUsageDetector.checkNestedStringFormat(WrongTimberUsageDetector.java:111)?
WrongTimberUsageDetector.visitMethod(WrongTimberUsageDetector.java:74)?
UElementVisitor$DelegatingPsiVisitor.visitMethodCallExpression(UElementVisitor.kt:1027)?UElementVisitor$DelegatingPsiVisitor.visitCallExpression(UElementVisitor.kt:1007)?
UCallExpression$DefaultImpls.accept(UCallExpression.kt:99)?
JavaUCallExpression.accept(javaUCallExpressions.kt:24)?
UQualifiedReferenceExpression$DefaultImpls.accept(UQualifiedReferenceExpression.kt:48)?
JavaUCompositeQualifiedExpression.accept(JavaUCompositeQualifiedExpression.kt:22)

Hope, this info will be helpful for you to find solve,

@yogurtearl
Copy link

We started getting a similar error with AGP 3.3.0. Didn't happen with AGP 3.2.1

NullPointerException:WrongTimberUsageDetector.checkNestedStringFormat(WrongTimberUsageDetector.java:111)
←WrongTimberUsageDetector.visitMethod(WrongTimberUsageDetector.java:74)
←Detector.visitMethodCall(Detector.kt:518)
←UElementVisitor$DelegatingPsiVisitor.visitMethodCallExpression(UElementVisitor.kt:1059)
←UElementVisitor$DelegatingPsiVisitor.visitCallExpression(UElementVisitor.kt:1039)
←KotlinUFunctionCallExpression.accept(KotlinUFunctionCallExpression.kt:142)
←UQualifiedReferenceExpression$DefaultImpls.accept(UQualifiedReferenceExpression.kt:48)
←KotlinUQualifiedReferenceExpression.accept(KotlinUQualifiedReferenceExpression.kt:29)

@yogurtearl
Copy link

Swapping String.format for Kotlin string template seems to work around this.

@riyaz
Copy link

riyaz commented Jan 15, 2019

This issue is happening in java too after updating to timber 10 even if timber is not used in the class, only workaround to split the String.format to two lines for me

@vanniktech
Copy link
Contributor

Also getting this with AGP 3.5.0-rc03:

java.lang.NullPointerException
at timber.lint.WrongTimberUsageDetector.checkNestedStringFormat(WrongTimberUsageDetector.java:111)
at timber.lint.WrongTimberUsageDetector.visitMethod(WrongTimberUsageDetector.java:74)
at com.android.tools.lint.detector.api.Detector.visitMethodCall(Detector.kt:535)
at com.android.tools.lint.client.api.UElementVisitor$DelegatingPsiVisitor.visitMethodCallExpression(UElementVisitor.kt:1081)
at com.android.tools.lint.client.api.UElementVisitor$DelegatingPsiVisitor.visitCallExpression(UElementVisitor.kt:1061)

Stack: NullPointerException:WrongTimberUsageDetector.checkNestedStringFormat(WrongTimberUsageDetector.java:111)←WrongTimberUsageDetector.visitMethod(WrongTimberUsageDetector.java:74)←Detector.visitMethodCall(Detector.kt:535)←UElementVisitor$DelegatingPsiVisitor.visitMethodCallExpression(UElementVisitor.kt:1081)←UElementVisitor$DelegatingPsiVisitor.visitCallExpression(UElementVisitor.kt:1061)←UCallExpression$DefaultImpls.accept(UCallExpression.kt:99)←UCallExpressionEx$DefaultImpls.accept(UCallExpression.kt:-1)←JavaUCallExpression.accept(javaUCallExpressions.kt:26)

The relevant code looks like this:

storage.put(String.format(KEY_VALUE_PREFIX, providerId), enabled).subscribe(Functions.EMPTY_ACTION, Timber::w);

@jrodbx jrodbx self-assigned this Aug 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants