bric3 / excalidraw-jetbrains-plugin

Create or edit Excalidraw files within Jetbrains IDEs (IntelliJ, CLion, Webstorm, Goland, ...)
https://plugins.jetbrains.com/plugin/17096-excalidraw-integration/
MIT License
74 stars 10 forks source link

Improve handling of excalidraw files with a very deep nesting #294

Closed bric3 closed 1 month ago

bric3 commented 3 months ago
2024-06-04 12:53:35,382 [ 276100]   INFO - #com.github.bric3.excalidraw.files.ExcalidrawFiles - Couldn't read file:///.../.idea/httpRequests/2023-10-26T155815.200.json
com.fasterxml.jackson.core.exc.StreamConstraintsException: Document nesting depth (1001) exceeds the maximum allowed (1000, from `StreamReadConstraints.getMaxNestingDepth()`)
    at com.fasterxml.jackson.core.StreamReadConstraints._constructException(StreamReadConstraints.java:549)
    at com.fasterxml.jackson.core.StreamReadConstraints.validateNestingDepth(StreamReadConstraints.java:390)
    at com.fasterxml.jackson.core.base.ParserBase.createChildArrayContext(ParserBase.java:1351)
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:727)
    at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerNR._deserializeNR(UntypedObjectDeserializerNR.java:277)
    at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerNR.deserialize(UntypedObjectDeserializerNR.java:79)
    at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:623)
    at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:449)
    at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)
    at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4905)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3869)
    at com.github.bric3.excalidraw.files.ExcalidrawFiles$Companion.isExcalidrawFile(ExcalidrawFiles.kt:143)
    at com.github.bric3.excalidraw.files.ExcalidrawIconProvider.getIcon(ExcalidrawIconProvider.kt:16)
    at com.intellij.util.PsiIconUtil.getIconFromProviders(PsiIconUtil.kt:18)
    at com.intellij.ide.PsiBasedFileIconProvider.getIcon(PsiBasedFileIconProvider.java:19)
    at com.intellij.util.FileIconUtil.getIconFromProviders(FileIconUtil.kt:20)
    at com.intellij.psi.impl.ElementBase.doComputeIconNow(ElementBase.java:104)
    at com.intellij.psi.impl.ElementBase.lambda$computeIconNow$3(ElementBase.java:93)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:124)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:118)
    at com.intellij.psi.impl.ElementBase.computeIconNow(ElementBase.java:93)
    at com.intellij.psi.impl.ElementBase.computeIcon(ElementBase.java:89)
    at com.intellij.psi.impl.ElementBase.getIcon(ElementBase.java:62)
    at com.intellij.ide.projectView.impl.nodes.PsiFileNode.updateImpl(PsiFileNode.java:67)
    at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$doUpdate$1(AbstractPsiBasedNode.java:214)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction$lambda$2(AnyThreadWriteThreadingSupport.kt:217)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction(AnyThreadWriteThreadingSupport.kt:228)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction(AnyThreadWriteThreadingSupport.kt:217)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:840)
    at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.doUpdate(AbstractPsiBasedNode.java:167)
    at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$update$0(AbstractPsiBasedNode.java:163)
    at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:171)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:129)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:118)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:108)
    at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.update(AbstractPsiBasedNode.java:163)
    at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:88)
    at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:32)
    at com.intellij.ui.tree.StructureTreeModel$Node.update(StructureTreeModel.java:540)
    at com.intellij.ui.tree.StructureTreeModel.getChildren(StructureTreeModel.java:355)
    at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.computeNode(AsyncTreeModel.java:664)
    at com.intellij.ui.tree.AsyncTreeModel$Command.computeNode(AsyncTreeModel.java:537)
    at com.intellij.util.concurrency.Invoker$Task.run(Invoker.java:370)
    at com.intellij.util.concurrency.CoroutineInvokerDelegate.run(CoroutineInvokerDelegate.kt:38)
    at com.intellij.util.concurrency.Invoker.invokeSafely(Invoker.java:194)
    at com.intellij.util.concurrency.Invoker.lambda$offerSafely$0(Invoker.java:177)
    at com.intellij.util.concurrency.Invoker$Background.lambda$offer$0(Invoker.java:480)
    at com.intellij.util.concurrency.CoroutineInvokerDelegate$offer$job$1.invoke(CoroutineInvokerDelegate.kt:27)
    at com.intellij.util.concurrency.CoroutineInvokerDelegate$offer$job$1.invoke(CoroutineInvokerDelegate.kt:25)
    at com.intellij.util.concurrency.SequentialBgtCoroutineInvokerDelegate$doLaunch$1$1$1.invoke(CoroutineInvokerDelegate.kt:97)
    at com.intellij.util.concurrency.SequentialBgtCoroutineInvokerDelegate$doLaunch$1$1$1.invoke(CoroutineInvokerDelegate.kt:96)
    at com.intellij.util.concurrency.BgtCoroutineInvokerDelegate$withProperContext$2.invoke(CoroutineInvokerDelegate.kt:73)
    at com.intellij.util.concurrency.BgtCoroutineInvokerDelegate$withProperContext$2.invoke(CoroutineInvokerDelegate.kt:72)
    at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:104)
    at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:15)
    at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:94)
    at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:93)
    at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda$2$lambda$1$lambda$0(cancellableReadAction.kt:31)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:291)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:958)
    at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda$2$lambda$1(cancellableReadAction.kt:29)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:155)
    at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:27)
    at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:93)
    at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:77)
    at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:64)
    at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:15)
    at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invokeSuspend(InternalReadAction.kt:43)
    at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invoke(InternalReadAction.kt)
    at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invoke(InternalReadAction.kt)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62)
    at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163)
    at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
    at com.intellij.openapi.application.rw.InternalReadAction.runReadAction(InternalReadAction.kt:39)
    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.constrainedReadAction(coroutines.kt:58)
    at com.intellij.openapi.application.CoroutinesKt.readAction(coroutines.kt:25)
    at com.intellij.util.concurrency.BgtCoroutineInvokerDelegate.withProperContext(CoroutineInvokerDelegate.kt:72)
    at com.intellij.util.concurrency.SequentialBgtCoroutineInvokerDelegate$doLaunch$1.invokeSuspend(CoroutineInvokerDelegate.kt:96)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750)