edgafner / dorkag

Issue Tracker repository for all Dorkag plugins
Other
5 stars 0 forks source link

Illegal character exception at 'Copy Link to AZD Repository' #56

Closed Dmitriusan closed 5 months ago

Dmitriusan commented 5 months ago

AZDCopyLinkActionGroup#Update@ProjectViewPopup (com.gafner.plugin.azd.ui.action.AZDCopyLinkActionGroup), actionId=AZD.Copy.Link, text='Copy Link to AZD Repository'

java.lang.IllegalArgumentException: Illegal character in path at index 44: https://dev.azure.com/XXX-XXX-Platform/xXXXX Web/_git/web-xxx-xxxxxxxxxxxxxxxxxx
    at java.base/java.net.URI.create(URI.java:906)
    at java.base/java.net.URI.resolve(URI.java:1089)
    at com.intellij.collaboration.util.URIUtilKt.resolveRelative(URIUtil.kt:66)
    at com.gafner.plugin.azd.api.AZDProjectCoordinates.getWebURI(AZDProjectCoordinates.kt:15)
    at git4idea.remote.hosting.action.HostedGitRepositoryReferenceUtil.findReferences(HostedGitRepositoryReferenceUtil.kt:119)
    at git4idea.remote.hosting.action.HostedGitRepositoryReferenceUtil.findReferences(HostedGitRepositoryReferenceUtil.kt:96)
    at git4idea.remote.hosting.action.GlobalHostedGitRepositoryReferenceActionGroup.findReferencesInFile(GlobalHostedGitRepositoryReferenceActionGroup.kt:51)
    at git4idea.remote.hosting.action.GlobalHostedGitRepositoryReferenceActionGroup.findReferences(GlobalHostedGitRepositoryReferenceActionGroup.kt:33)
    at git4idea.remote.hosting.action.HostedGitRepositoryReferenceActionGroup.update(HostedGitRepositoryReferenceActionGroup.kt:29)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performDumbAwareUpdate$0(ActionUtil.java:164)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:187)
    at com.intellij.openapi.actionSystem.impl.ActionUpdaterKt.doUpdate(ActionUpdater.kt:696)
    at com.intellij.openapi.actionSystem.impl.ActionUpdaterKt.access$doUpdate(ActionUpdater.kt:1)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$updateActionReal$success$1.invoke(ActionUpdater.kt:110)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$updateActionReal$success$1.invoke(ActionUpdater.kt:109)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$callAction$3$adjustedCall$1.invoke(ActionUpdater.kt:157)
    at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:108)
    at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:16)
    at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:95)
    at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:94)
    at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1$lambda$0(cancellableReadAction.kt:38)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1075)
    at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1(cancellableReadAction.kt:36)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:73)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)
    at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke(cancellableReadAction.kt:34)
    at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:321)
    at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:310)
    at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:31)
    at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:94)
    at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:78)
    at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:65)
    at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:16)
    at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invokeSuspend(InternalReadAction.kt:36)
    at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invoke(InternalReadAction.kt)
    at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invoke(InternalReadAction.kt)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
    at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
    at com.intellij.openapi.application.rw.InternalReadAction.runReadAction(InternalReadAction.kt:35)
    at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport.executeReadAction(PlatformReadWriteActionSupport.kt:38)
    at com.intellij.openapi.application.ReadWriteActionSupport.executeReadAction$default(ReadWriteActionSupport.kt:15)
    at com.intellij.openapi.application.CoroutinesKt.constrainedReadActionUndispatched(coroutines.kt:82)
    at com.intellij.openapi.application.CoroutinesKt.readActionUndispatched(coroutines.kt:69)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.kt:740)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.kt:134)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.updateActionReal(ActionUpdater.kt:109)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.kt:531)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.access$update(ActionUpdater.kt:71)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$iterateGroupChildren$tree$1.invokeSuspend(ActionUpdater.kt:491)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$iterateGroupChildren$tree$1.invoke(ActionUpdater.kt)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$iterateGroupChildren$tree$1.invoke(ActionUpdater.kt)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$iterateGroupChildren$2.invokeSuspend(ActionUpdater.kt:512)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$iterateGroupChildren$2.invoke(ActionUpdater.kt)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$iterateGroupChildren$2.invoke(ActionUpdater.kt)
    at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:61)
    at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:230)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$iterateGroupChildren$$inlined$filter$1.collect(SafeCollector.common.kt:114)
    at kotlinx.coroutines.flow.FlowKt__CollectionKt.toCollection(Collection.kt:26)
    at kotlinx.coroutines.flow.FlowKt.toCollection(Unknown Source)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$UpdateSessionImpl$expandedChildren$1.invokeSuspend(ActionUpdater.kt:606)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$UpdateSessionImpl$expandedChildren$1.invoke(ActionUpdater.kt)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$UpdateSessionImpl$expandedChildren$1.invoke(ActionUpdater.kt)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater$getSessionDataDeferred$2$1.invokeSuspend(ActionUpdater.kt:553)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Caused by: java.net.URISyntaxException: Illegal character in path at index 44: https://dev.azure.com/XXX-XXX-Platform/xXXXX Web/_git/web-xxx-xxxxxxxxxxxxxxxxxx
    at java.base/java.net.URI$Parser.fail(URI.java:2976)
    at java.base/java.net.URI$Parser.checkChars(URI.java:3147)
    at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3229)
    at java.base/java.net.URI$Parser.parse(URI.java:3177)
    at java.base/java.net.URI.<init>(URI.java:623)
    at java.base/java.net.URI.create(URI.java:904)
    ... 70 more

Note: I've masked the beginning of url, but character count is the same. I guess that the problem is that the space character at url (Azure DevOps project name is like "XXXX YYYY") is not escaped properly

Jonatha1983 commented 5 months ago

@Dmitriusan Thanks for reporting.

Which version are you using?

Dmitriusan commented 5 months ago

image

Jonatha1983 commented 5 months ago

duplicate with #53