square / square/wire

Nested namespaces having the same title

Open
#1,976 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Kotlin
Stars
4.4k
Forks
627
Avg merge
3d 15m
Merged PRs (30d)
20

Description

Configuration:

wire version: 3.7.0
kotlin version: 1.5.0

Issue

This one won't compile:

syntax = "proto3";
package project.model;

message Text {
     string id = 1;
     Text text = 2;

     message Text {
         string value = 1;
     }
}

Throwing the following error:

Cause: java.lang.NullPointerException
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.awaitWithCheckCanceled(ProgressIndicatorUtils.java:346)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.awaitWithCheckCanceled(ProgressIndicatorUtils.java:339)
	at com.intellij.psi.stubs.StubIndexImpl.getAsyncState(StubIndexImpl.java:98)
	at com.intellij.psi.stubs.StubIndexImpl.getIndex(StubIndexImpl.java:369)
	at com.intellij.psi.stubs.StubIndexImpl.getContainingIds(StubIndexImpl.java:464)
	at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:298)
	at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:105)
	at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:93)
	at com.intellij.lang.properties.psi.PropertyKeyIndex.get(PropertyKeyIndex.java:48)
	at com.intellij.lang.properties.psi.impl.PropertiesFileImpl.propertiesByKey(PropertiesFileImpl.java:204)
	at com.intellij.lang.properties.psi.impl.PropertiesFileImpl.findPropertyByKey(PropertiesFileImpl.java:84)
	at com.android.build.attribution.data.StudioProvidedInfo$Companion$fromProject$1.invoke(StudioProvidedInfo.kt:38)
	at com.android.build.attribution.data.StudioProvidedInfo$Companion$fromProject$1.invoke(StudioProvidedInfo.kt:37)
	at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt$sam$com_intellij_openapi_util_Computable$0.compute(ApplicationUtils.kt)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:881)
	at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt.runReadAction(ApplicationUtils.kt:17)
	at com.android.build.attribution.data.StudioProvidedInfo$Companion.fromProject(StudioProvidedInfo.kt:37)
	at com.android.build.attribution.BuildAttributionManagerImpl$onBuildSuccess$1$1.invoke(BuildAttributionManagerImpl.kt:62)
	at com.android.build.attribution.BuildAttributionManagerImpl$onBuildSuccess$1$1.invoke(BuildAttributionManagerImpl.kt:58)
	at com.android.build.attribution.analytics.BuildAttributionAnalyticsManager.logBuildAttributionPerformanceStats(BuildAttributionAnalyticsManager.kt:65)
	at com.android.build.attribution.BuildAttributionManagerImpl.onBuildSuccess(BuildAttributionManagerImpl.kt:58)
	at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutorImpl.lambda$invokeGradleTasks$2(GradleTasksExecutorImpl.java:332)
	at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.lambda$execute$0(GradleExecutionHelper.java:126)
	at org.jetbrains.plugins.gradle.GradleConnectorService$Companion.withGradleConnection(GradleConnectorService.kt:178)
	at org.jetbrains.plugins.gradle.GradleConnectorService.withGradleConnection(GradleConnectorService.kt)
	at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.execute(GradleExecutionHelper.java:112)
	at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutorImpl.invokeGradleTasks(GradleTasksExecutorImpl.java:420)
	at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutorImpl.run(GradleTasksExecutorImpl.java:170)
	at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:962)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsync$5(CoreProgressManager.java:472)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:235)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:178)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:165)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:235)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:834)

When changing this proto file to the following one, code is generated successfully.

message Text {
     string id = 1;
     TText text = 2;

     message TText {
         string value = 1;
     }
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with the nested Text proto shown in the report, then trace Wire's protobuf parsing or code-generation entry point; no repository file or test is named. Done means the nested same-name messages generate successfully without the reported NullPointerException, with a regression test covering that example.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.