Really dumb problem, or perhaps bug

Hello, I have just started developing a Clojure custom language plugin (see other thread).

I wanted to test out my code, and ran into a really dumb problem.

I made Plugin Configuration.� It starts a second IntelliiJ, it hangs while creating a test project.� It asks for the path to the JDK, and then hangs while scanning the files.

It happens when I give it an empy classpath for the plugin, so don't think this has anything to do with my code.

I got some messages that it ran out of Memory (PermGen) during dispatch.� So I went into idea.vmoption and increased everything.� The messages went away, but it still hangs.

Does the plugin toolkit work on Linux?� I am using Ubuntu 8.10.

Did I perhaps miss something important in the documentation?

Thanks
Peter Wolf

]]>

4 comments
Comment actions Permalink

Hello Peter,

If you see a hang when running the second instance of IDEA under a debugger,
you can simply press the Pause button and see a thread dump. Note also that
you need to increase the permgen size in the plugin run configuration, not
in the IDEA you're running.

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Thanks Dimitry,

However, I think this should be classified as a bug.  I moved my project to Vista and got similar behavior.  The second instance hanges with this info.

Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2786)
    at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:133)
    at com.intellij.psi.stubs.StubUpdatingIndex$4$1.run(StubUpdatingIndex.java:2)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:339)
    at com.intellij.psi.stubs.StubUpdatingIndex$4.map(StubUpdatingIndex.java:4)
    at com.intellij.psi.stubs.StubUpdatingIndex$4.map(StubUpdatingIndex.java:3)
    at com.intellij.util.indexing.MapReduceIndex.mapNew(MapReduceIndex.java:82)
    at com.intellij.util.indexing.MapReduceIndex.update(MapReduceIndex.java:45)
    at com.intellij.util.indexing.FileBasedIndex.a(FileBasedIndex.java:138)
    at com.intellij.util.indexing.FileBasedIndex.indexFileContent(FileBasedIndex.java:383)
    at com.intellij.util.indexing.UnindexedFilesUpdater.processFile(UnindexedFilesUpdater.java:27)
    at com.intellij.ide.startup.FileSystemSynchronizer.updateFiles(FileSystemSynchronizer.java:191)
    at com.intellij.ide.startup.FileSystemSynchronizer.execute(FileSystemSynchronizer.java:72)
    at com.intellij.ide.startup.impl.StartupManagerImpl$1.run(StartupManagerImpl.java:9)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:339)
    at com.intellij.ide.startup.impl.StartupManagerImpl.runStartupActivities(StartupManagerImpl.java:21)
    at com.intellij.openapi.project.impl.ProjectManagerImpl$3.run(ProjectManagerImpl.java:3)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$3.run(ProgressManagerImpl.java:1)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:3)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$4.run(ProgressManagerImpl.java:1)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:5)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:13)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:101)
    at com.intellij.openapi.application.impl.ApplicationImpl$7$1.run(ApplicationImpl.java:0)
    at com.intellij.openapi.application.impl.ApplicationImpl$5.run(ApplicationImpl.java:2)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:619)
    at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:10)


My Xmx=2024M and XX:MaxPermSize=250M, and I am giving it the path to the standard Sun JDK 6.

This problem would happen with any plugin, including the Hello World sample.
P

0
Comment actions Permalink

...and I can tell you the fix.

When the second instance runs low on memory, it prompts with the dialog for increasing Xmx and MM:MaxPermSize.  However, that seems to have no effect.

If, however, you specify Xmx and MM:MaxPermSize and VM options in the PluginConfig dialog, then it works.  Probably, the dialog alters idea.vmoptions which does not get copied to the sandbox.  You probably just need to up the defaults when starting a PluginConfig.

0
Comment actions Permalink

...and I can tell you the fix.

When the second instance runs low on memory, it prompts with the dialog for increasing Xmx and MM:MaxPermSize.� However, that seems to have no effect.

If, however, you specify Xmx and MM:MaxPermSize and VM options in the PluginConfig dialog, then it works.� Probably, the dialog alters idea.vmoptions which does not get copied to the sandbox.� You probably just need to up the defaults when starting a PluginConfig.

]]>

0

Please sign in to leave a comment.