[ANN] TMate plugin version 0.0.32. Early Access

Announcing version 0.0.32 of the TMate plugin, available via the PluginManager or at

http://www.tmate.org/eap/

Changes from build 0.0.31 to 0.0.32:

  • Local change sets: 'Default' change set support

  • Transactions window: autoscroll to source (ctrl-alt-arrows supported as well)

  • Transactions window: cvs history menu item

  • Transactions window: option to hide module nodes inside transactions


  • Bugfixes

- Local change sets: number of exceptions fixed
- Server: Spaces in components name processed correctly now
- Other bugfixes

TMate plugin adds transactions support to the CVS version control integration. It consists of the server that continuously monitors CVS repository and IDEA plugin that displays found CVS transactions in the IDEA tool window. TMate Server is implemented as a web application and requires JDK 1.4 and supports CVS repositories accessible through the pserver protocol. TMate Server could be installed locally or on the dedicated computer.

TMate Client is an IDEA plugin that allows to configure remote TMate Server and displays up to date CVS transactions collected by the TMate Server.

TMate IDEA plugin available via the PluginManager includes both TMate Client and TMate Server.

More information about TMate, including screenshots, is available at http://tmate.org/eap/

Your feedback about how the plugin works in your environment, whether do you find it useful, and what features do you want to see in the next versions is very welcome!

Alexander Kitaev.

19 comments

I'm still having problems with the goto source. That explicit action
does not work, nor does the autoscroll. Since goto source has never
worked for me, I'm wondering whether there is something wrong in my
environment. Any idea how I can investigate this?

Also, with new release I cannot get the cvs history to work for any file
-- the action is always disabled.

0

Hello,

The reason of behaviour you've described is that TMate fails to locate file in the project that corresponds to the file mentioned in the transaction (all the actions you've mentioned requires reference to the project file to work correctly). I've improved the lookup algorithm but seems that it still can fail.

The algorithm is the following:

1. TMate locates folder in the project that corresponds to the cvs module root file belongs to. TMate iterates through the content roots, builds "Revisions" (part of IDEA openapi) objects for each content root. Every "Revisions" object corresponds to the cvs module root in the project. Then TMate reads "CVS" directory contents inside found folder to get cvsroot and module values.

TMate could fail at this point if it couldn't locate cvs module root mathcing to the transaction module information, i.e. cvsroot (read from folder/CVS/Root file) and module name (read from folder/CVS/Repository file). Could you please check that this files contains lines that could be matched with the information in TMate configuration (you may see it in the TMate window "Filters" tab)? Could you please also check whether root specification in the "Root" file contains port number? If not, this may be the reason of the problem.

2. When folder is located (there could be more then one), file is looked up as "folderPath/filePathInTransaction". If the file exists and could be opened in editor TMate opens it.

I suppose that you may have some kind of non-standard project configuration when you check out files to the project from the different location then defined in TMate server configuration. Missing port number in the root specification also could cause a problem in the current version, and will be fixed anyway.

So, the information that could help to fix the problem is TMate server configuration (located in SERVER/webapps/tmate/.config/config.xml) and project modules layout (what CVS modules are checked out and how they are located relatively to the project content roots).

I appreciate your help a lot and hope that this problem will be finally fixed.

Thanks a lot!
Alexander Kitaev.

0

Looks good. When can we expect SSL to be supported. Is it planned yet
or is it deferred until all other features have been implemented?

Thanks

On Wed, 4 Feb 2004 19:01:44 +0000 (UTC), Alexander Kitaev
<no_mail@jetbrains.com> wrote:

Announcing version 0.0.32 of the TMate plugin, available via the
PluginManager or at

>

http://www.tmate.org/eap/

>

Changes from build 0.0.31 to 0.0.32:

>

  • * Local change sets: 'Default' change set support

  • Transactions window: autoscroll to source (ctrl-alt-arrows

supported as well)

  • Transactions window: cvs history menu item

  • Transactions window: option to hide module nodes inside

transactions

>

  • * Bugfixes

- Local change sets: number of exceptions fixed
- Server: Spaces in components name processed correctly now
- Other bugfixes

>

TMate plugin adds transactions support to the CVS version control
integration. It consists of the server that continuously monitors CVS
repository and IDEA plugin that displays found CVS transactions in the
IDEA tool window. TMate Server is implemented as a web application and
requires JDK 1.4 and supports CVS repositories accessible through the
pserver protocol. TMate Server could be installed locally or on the
dedicated computer.

>

TMate Client is an IDEA plugin that allows to configure remote TMate
Server and displays up to date CVS transactions collected by the TMate
Server.

>

TMate IDEA plugin available via the PluginManager includes both TMate
Client and TMate Server.

>

More information about TMate, including screenshots, is available at
http://tmate.org/eap/

>

Your feedback about how the plugin works in your environment, whether do
you find it useful, and what features do you want to see in the next
versions is very welcome!

>

Alexander Kitaev.


0

Alexander Kitaev wrote:

Missing port number in the root specification also could cause a problem in the current version, and will be fixed anyway.


Looks like this may be my problem. I have the port specified to idea and
tmate. But when I checked out the repository (with smartcvs) I did not
specifiy a port as the default is used. Thus the CVS/Root files indeed
to /not/ contain a port number.

After I deliver I'll check out a fresh project (with the port number)
and see how that goes.

-bk

0

Well, it turns out that getting the port number into the CVS/Root files
did not make any difference. I'm not really following all of your
process description. I think a concrete example would help me to
understand the terms you are using, eg 'folderPath/filePathInTransaction'.

You say 'Every "Revisions" object corresponds to the cvs module root in
the project.' My project does not correspond to cvs module roots. My CVS
modules look like:

repository/clients
repository/clients/webapp-1/src,test,...
repository/clients/webapp-2/src,test,...
repository/infra
repository/infra/component-1/src,test,...
repository/infra/component-2/src,test,...
repository/infra/component-3/src,test,...
repository/server/src,test,...

In idea I have three modules:

1. 'code' - this contains all code, tests, etc for all cvs modules
2. 'webapp-1' - this contains only the WEB-INF and some resource files
3. 'webapp-1' - this contains only the WEB-INF and some resource files

The content roots (source/test) under 'code' look like:

- clients/webapp-1/src
- clients/webapp-1/test
...
- infra/component-1/src
- infra/component-1/test
...
- server/src
- server/test


One thing to note is that the idea 'Goto class' always finds the file
displayed in TMate. So it appears that my problem has something to do
the above idea-module vs cvs-module layout.

You may be wondering why our idea modules do not mirror our cvs modules.
I do have an idea project that mirrors the cvs modules, but its
painfully slow (about thirty modules with six levels of dependencies). I
would test tmate with that project but right how its a bit out of date.
But even if it worked with tmate, I still can't use that project (I
would never be able to get the rest of the team off of idea3 with that
kind of performance).


Here is my SERVER/webapps/tmate/.config/config.xml:

]]>




Alexander Kitaev wrote:

Hello,

The reason of behaviour you've described is that TMate fails to locate file in the project that corresponds to the file mentioned in the transaction (all the actions you've mentioned requires reference to the project file to work correctly). I've improved the lookup algorithm but seems that it still can fail.

The algorithm is the following:

1. TMate locates folder in the project that corresponds to the cvs module root file belongs to. TMate iterates through the content roots, builds "Revisions" (part of IDEA openapi) objects for each content root. Every "Revisions" object corresponds to the cvs module root in the project. Then TMate reads "CVS" directory contents inside found folder to get cvsroot and module values.

TMate could fail at this point if it couldn't locate cvs module root mathcing to the transaction module information, i.e. cvsroot (read from folder/CVS/Root file) and module name (read from folder/CVS/Repository file). Could you please check that this files contains lines that could be matched with the information in TMate configuration (you may see it in the TMate window "Filters" tab)? Could you please also check whether root specification in the "Root" file contains port number? If not, this may be the reason of the problem.

2. When folder is located (there could be more then one), file is looked up as "folderPath/filePathInTransaction". If the file exists and could be opened in editor TMate opens it.

I suppose that you may have some kind of non-standard project configuration when you check out files to the project from the different location then defined in TMate server configuration. Missing port number in the root specification also could cause a problem in the current version, and will be fixed anyway.

So, the information that could help to fix the problem is TMate server configuration (located in SERVER/webapps/tmate/.config/config.xml) and project modules layout (what CVS modules are checked out and how they are located relatively to the project content roots).

I appreciate your help a lot and hope that this problem will be finally fixed.

Thanks a lot!
Alexander Kitaev.


0

Thank you for providing the complete description. I will reproduce the structure of your repository and IDEA project and will fix the problem in the next TMate build.

Also, as far as I know, SmartCVS has a feature that allows one to checkout files to one location and keep CVS admin files in the other. If you're using this feature TMate still will not be able to understand whether certain folder matches certain CVS repository folder.

I think for such cases may be it makes sense to add an option to set local paths for the cvs modules manually...

Thanks once more for the help!
Alexander Kitaev.

0

Hello,

If you're interested in SSL support, I think it could be added next week. It doesn't affect other features, because parts responsible for configuring and establishing connections is almost done.

And if you've mistyped and actually mean support for accessing CVS repository via SSH - it is also planned.

TMate Server is powered by an excellent library provided by Thomas Singer, author of SmartCVS - http://www.smartcvs.com/. The latest version of the library includes built in support for SSH1 and SSH2.

Alexander Kitaev.

0

Also, as far as I know, SmartCVS has a feature that allows one to checkout files to one location and keep CVS admin files in the other.


Sorry, to correct you. SmartCVS does not has such a feature (yet), but
the CVS-library of SmartCVS allows it technically.

Tom

0

Good news! You're right, I meant SSH.

Thank you, looking forward.
Frank Bruch

0


Alexander Kitaev wrote:

Thank you for providing the complete description. I will reproduce the structure of your repository and IDEA project and will fix the problem in the next TMate build.


Thanks much.

Also, as far as I know, SmartCVS has a feature that allows one to checkout files to one location and keep CVS admin files in the other. If you're using this feature TMate still will not be able to understand whether certain folder matches certain CVS repository folder.


I never seen that in smartcvs, but I would never use as it would break
way too many tools.

I think for such cases may be it makes sense to add an option to set local paths for the cvs modules manually...


Do you mean relative to the idea project root? That would not be too
bad. If you mean relative to the idea content roots, that would be a
real pain.

0

Hello,

To be correct, TMate now uses not the latest version of SmartCVS library that doesn't include built-in SSH2 support, but allows to use SSH access via external tool. So the exact way of how the support will be implemented in TMate server depends on whether it will be possible to use latest library version. In any case I'm planning to include SSH access support in the first release.

Alexander Kitaev.

0

I'm thinking about adding a possibility just to specify an absolute path of the module in the TMate "Filters" (not very good name actually) tab. The right part of the tab now displays CVS properties of the module and (in my local version, not in the latest build yet) the module location (path) on the client's computer if one was located. I may add a button that will allow to specify an absolute path of the module on the client's computer if nothing was found automatically. This path will be used only on the client where it was defined, i.e. it will not be shared as part of TMate Server configuration.

But, frankly speaking, now I do not think that it is absolutely not possible to locate cvs module location correctly in 100% of cases. So, I bet that there will be no need in adding such feature :)

Alexander Kitaev.

0

I'm thinking about adding a possibility just to specify an absolute path of the module in the TMate "Filters" (not very good name actually) tab. The right part of the tab now displays CVS properties of the module and (in my local version, not in the latest build yet) the module location (path) on the client's computer if one was located. I may add a button that will allow to specify an absolute path of the module on the client's computer if nothing was found automatically. This path will be used only on the client where it was defined, i.e. it will not be shared as part of TMate Server configuration.


Absolute path won't be too usefull, as we all checkout to different
directories and even each developer will check many instances (eg, for
trunk, for eap branch, for production branch, for doing a quick spike).


But, frankly speaking, now I do not think that it is absolutely not possible to locate cvs module location correctly in 100% of cases. So, I bet that there will be no need in adding such feature :)


This is good. But if you must do something like the above, at least make
the paths relative to the project somehow.

0

Alexander,

I try to configure TMate in a single user mode (no server) and have it monitor a sourceforge project through pserver.
When I try to add a Module and select a cvsroot, the loading that follows never returns. Testing the connection works and I can access CVS without any problem from IDEA. What am I doing wrong?

Thanks

Doing a stackdump I get

Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):

"Keep-Alive-Timer" daemon prio=9 tid=0x04020148 nid=0xd9c waiting on condition
at java.lang.Thread.sleep(Native Method)
at sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:149)
at java.lang.Thread.run(Thread.java:534)

"Thread-49" prio=7 tid=0x04020aa8 nid=0xe5c in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a com.intellij.util.e.f) at java.lang.Object.wait(Object.java:429) at com.intellij.util.e.f.d(f.java:15) - locked <0x10820238>]]> (a com.intellij.util.e.f)
at com.intellij.openapi.application.LaterInvocator.invokeAndWait(LaterInvocator.java:60)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:6)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:8)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.access$400(CvsOperationExecutor.java:89)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor$2.run(CvsOperationExecutor.java:15)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:75)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java:29)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.b(AbstractVcsDataProvider.java:14)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java:23)
at com.intellij.cvsSupport2.cvsBrowser.CvsElement$1.run(CvsElement.java:2)
at java.lang.Thread.run(Thread.java:534)

"Thread-48" prio=7 tid=0x04097810 nid=0x220 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a com.intellij.util.e.f) at java.lang.Object.wait(Object.java:429) at com.intellij.util.e.f.d(f.java:15) - locked <0x153761a8>]]> (a com.intellij.util.e.f)
at com.intellij.openapi.application.LaterInvocator.invokeAndWait(LaterInvocator.java:60)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:6)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:8)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.access$400(CvsOperationExecutor.java:89)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor$2.run(CvsOperationExecutor.java:15)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:75)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java:29)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.b(AbstractVcsDataProvider.java:14)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java:23)
at com.intellij.cvsSupport2.cvsBrowser.CvsElement$1.run(CvsElement.java:2)
at java.lang.Thread.run(Thread.java:534)

"Thread-47" prio=7 tid=0x03ea30c0 nid=0xf6c in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a com.intellij.util.e.f) at java.lang.Object.wait(Object.java:429) at com.intellij.util.e.f.d(f.java:15) - locked <0x152a6958>]]> (a com.intellij.util.e.f)
at com.intellij.openapi.application.LaterInvocator.invokeAndWait(LaterInvocator.java:60)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:6)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:8)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.access$400(CvsOperationExecutor.java:89)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor$2.run(CvsOperationExecutor.java:15)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:75)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java:29)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.b(AbstractVcsDataProvider.java:14)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java:23)
at com.intellij.cvsSupport2.cvsBrowser.CvsElement$1.run(CvsElement.java:2)
at java.lang.Thread.run(Thread.java:534)

"Thread-46" prio=7 tid=0x03e62d00 nid=0xf84 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a com.intellij.util.e.f) at java.lang.Object.wait(Object.java:429) at com.intellij.util.e.f.d(f.java:15) - locked <0x152a6b08>]]> (a com.intellij.util.e.f)
at com.intellij.openapi.application.LaterInvocator.invokeAndWait(LaterInvocator.java:60)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:6)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:8)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.access$400(CvsOperationExecutor.java:89)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor$2.run(CvsOperationExecutor.java:15)
at com.intellij.cvsSupport2.actions.CvsOperationExecutor.a(CvsOperationExecutor.java:75)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java:29)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.b(AbstractVcsDataProvider.java:14)
at com.intellij.cvsSupport2.cvsBrowser.AbstractVcsDataProvider.a(AbstractVcsDataProvider.java:23)
at com.intellij.cvsSupport2.cvsBrowser.CvsElement$1.run(CvsElement.java:2)
at java.lang.Thread.run(Thread.java:534)

"EditorCaretThread" prio=7 tid=0x03c18e38 nid=0xc2c waiting on condition
at java.lang.Thread.sleep(Native Method)
at com.intellij.openapi.editor.b.m$bh_.run(m$bh_.java:25)

"Thread-13" prio=7 tid=0x009ea5f0 nid=0xb78 in Object.wait()
at java.lang.Object.wait(Native Method)
at org.tmatesoft.tmate.A.D.run(Unknown Source)
- locked ]]> (a java.lang.Object)

"Thread-9" daemon prio=7 tid=0x031d7b18 nid=0x854 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:429) at java.util.TimerThread.mainLoop(Timer.java:403) - locked <0x144948a8>]]> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"Thread-8" daemon prio=7 tid=0x0352b828 nid=0xf50 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:429) at java.util.TimerThread.mainLoop(Timer.java:403) - locked <0x14494908>]]> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"Thread-6" daemon prio=7 tid=0x03058488 nid=0xc58 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:429) - locked <0x1336d9f8>]]> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"AWT-EventQueue-1" prio=7 tid=0x0343a678 nid=0xd48 in Object.wait()
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at java.awt.EventQueue.getNextEvent(EventQueue.java:339)
- locked ]]> (a com.intellij.ide.q)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:162)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:141)
at java.awt.Dialog$1.run(Dialog.java:540)
at java.awt.Dialog.show(Dialog.java:561)
at com.intellij.openapi.ui.DialogWrapper$MyDialog.show(DialogWrapper.java:23)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:288)
at com.intellij.cvsSupport2.impl.CvsServicesImpl.chooseModules(CvsServicesImpl.java:1)
at org.tmatesoft.tmate.ui.C.B.A.B(Unknown Source)
at org.tmatesoft.tmate.ui.C.B.B.A(Unknown Source)
at org.tmatesoft.tmate.ui.D.A(Unknown Source)
at org.tmatesoft.tmate.ui.D.T$10.actionPerformed(Unknown Source)
at com.intellij.openapi.actionSystem.b.n$b_.actionPerformed(n$b_.java:15)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at com.intellij.openapi.actionSystem.b.n.fireActionPerformed(n.java:29)
at com.intellij.ui.b.a.h.doClick(h.java:2)
at com.intellij.ui.b.a.h.access$300(h.java:20)
at com.intellij.ui.b.a.h$a_.mouseReleased(h$a_.java:7)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at com.intellij.ide.q.b(q.java:118)
at com.intellij.ide.q.a(q.java:117)
at com.intellij.ide.q.dispatchEvent(q.java:131)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:141)
at java.awt.Dialog$1.run(Dialog.java:540)
at java.awt.Dialog.show(Dialog.java:561)
at com.intellij.openapi.ui.DialogWrapper$MyDialog.show(DialogWrapper.java:23)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:288)
at org.tmatesoft.tmate.ui.actions.RemoteConfigurationAction.actionPerformed(Unknown Source)
at com.intellij.openapi.actionSystem.b.k.a(k.java:27)
at com.intellij.openapi.actionSystem.b.k.processMouseEvent(k.java:24)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at com.intellij.ide.q.b(q.java:118)
at com.intellij.ide.q.a(q.java:117)
at com.intellij.ide.q.dispatchEvent(q.java:131)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

"YMPRequestServer" prio=7 tid=0x0317fd28 nid=0xfb4 runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked ]]> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.yourkit.ideaPlugin.a.a(a:107)
at com.yourkit.ideaPlugin.a.run(a:47)

"Thread-5" prio=7 tid=0x0347d288 nid=0xbe0 waiting on condition
at java.lang.Thread.sleep(Native Method)
at com.intellij.progress.ProgressManager$2.run(ProgressManager.java)

"com.jniwrapper.NativeResourceCollector" daemon prio=7 tid=0x03448008 nid=0x640 in Object.wait()
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked ]]> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at com.jniwrapper.e.run(SourceFile:58)

"Thread-2" daemon prio=7 tid=0x031afcd8 nid=0xc18 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:429) - locked <0x12ba9b88>]]> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"TimerQueue" daemon prio=5 tid=0x03c125f8 nid=0xa28 runnable
at java.lang.Object.wait(Native Method)
at javax.swing.TimerQueue.postExpiredTimers(TimerQueue.java:213)
- locked (a javax.swing.TimerQueue) at javax.swing.TimerQueue.run(TimerQueue.java:229) - locked <0x12ba9c10>]]> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:534)

"StoreRefreshStatusThread" prio=2 tid=0x03c0d618 nid=0x974 waiting on condition
at java.lang.Thread.sleep(Native Method)
at com.intellij.openapi.vfs.a.a.g$b_.run(g$b_.java:3)

"WatchForChangesThread" prio=7 tid=0x03204010 nid=0x890 runnable
at com.intellij.vfs.local.win32.FileWatcher.waitForChangeImpl(Native Method)
at com.intellij.vfs.local.win32.FileWatcher.c(FileWatcher.java:23)
at com.intellij.openapi.vfs.a.a.g$c_.run(g$c_.java:19)

"AlarmThread" prio=5 tid=0x03218ca8 nid=0x234 in Object.wait()
at java.lang.Object.wait(Native Method)
at com.intellij.util.Alarm$MyThread.run(Alarm.java:14)
- locked ]]> (a java.lang.Object)

"AlarmThread" prio=5 tid=0x03218b48 nid=0xd58 in Object.wait()
at java.lang.Object.wait(Native Method)
at com.intellij.util.Alarm$MyThread.run(Alarm.java:14)
- locked ]]> (a java.lang.Object)

"AWT-Shutdown" prio=7 tid=0x031f0720 nid=0x214 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.Object) at java.lang.Object.wait(Object.java:429) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259) - locked <0x128f5ba0>]]> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:534)

"Thread-1" daemon prio=5 tid=0x031d65e8 nid=0x3a4 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:429) - locked <0x128f5c18>]]> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"SocketListenerThread" prio=5 tid=0x031cf368 nid=0xd1c runnable
at java.net.PlainDatagramSocketImpl.receive(Native Method)
- locked (a java.net.PlainDatagramSocketImpl) at java.net.DatagramSocket.receive(DatagramSocket.java:711) - locked <0x101fe010> (a java.net.DatagramPacket) - locked <0x128f5ce8>]]> (a java.net.MulticastSocket)
at com.intellij.licensecommon.f.a.e.b(e.java:7)
at com.intellij.licensecommon.f.a.f.run(f.java:2)

"SocketListenerThread" prio=5 tid=0x031ed708 nid=0xbb4 runnable
at java.net.PlainDatagramSocketImpl.receive(Native Method)
- locked (a java.net.PlainDatagramSocketImpl) at java.net.DatagramSocket.receive(DatagramSocket.java:711) - locked <0x128f84e0> (a java.net.DatagramPacket) - locked <0x128f8500>]]> (a java.net.DatagramSocket)
at com.intellij.licensecommon.f.a.e.b(e.java:7)
at com.intellij.licensecommon.f.a.f.run(f.java:2)

"MessageDeliveryThread" prio=5 tid=0x031cdc78 nid=0x838 in Object.wait()
at java.lang.Object.wait(Native Method)
- waiting on (a java.lang.Object) at java.lang.Object.wait(Object.java:429) at com.intellij.licensecommon.f.r.run(r.java:27) - locked <0x128f8588>]]> (a java.lang.Object)

"Java2D Disposer" daemon prio=10 tid=0x031cbd00 nid=0xf58 in Object.wait()
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked ]]> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at sun.java2d.Disposer.run(Disposer.java:100)
at java.lang.Thread.run(Thread.java:534)

"AWT-Windows" daemon prio=7 tid=0x031d6828 nid=0x940 runnable
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(WToolkit.java:262)
at java.lang.Thread.run(Thread.java:534)

"Lock thread" prio=5 tid=0x0312b5f0 nid=0xa0c runnable
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked ]]> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.intellij.idea.d$b_.run(d$b_.java:2)
at java.lang.Thread.run(Thread.java:534)

"DestroyJavaVM" prio=5 tid=0x00035878 nid=0xc14 waiting on condition

"Signal Dispatcher" daemon prio=10 tid=0x0003d8b0 nid=0xde4 waiting on condition

"Finalizer" daemon prio=9 tid=0x009c0618 nid=0xda4 in Object.wait()
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked ]]> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x009bf1e8 nid=0x930 in Object.wait()
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
- locked ]]> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=5 tid=0x009fb668 nid=0xce0 runnable

"VM Periodic Task Thread" prio=10 tid=0x009fc0d0 nid=0x9ec waiting on condition
"Suspend Checker Thread" prio=10 tid=0x009c2a10 nid=0xc6c runnable

0

Hello,

Thank you for investigating the problem! Module chooser dialog is part of IDEA and I've got the same locks in the old EAP builds, but later it was fixed (at least I didn't manage to reproduce it in the recent builds). I've submitted an error to IDEA tracker and I hope it will be fixed soon.

As a workaround you may try to restart IDEA - it usually solves this problem.

By the way, TMate plugin always uses server either installed on a dedicated computer or one installed on the local computer, so even within a single user mode you may connect to the TMate server from the other computers as soon as network configuration allows you to establish a connection (i.e. inside a local network).

Thanks,
Alexander Kitaev.

0

Alexander,

It appears to be a display problem like you said. Another way to potentially get out of the deadlock is the resize the dialog. In the few cases I tried, about 1/2 would display the modules after I resized the window.

Hope this help

Jacques

0

Hello,

May I ask you whether TMate managed to index and monitor sourceforge project? Was there any other problems?

Please, note that most of the public accessible CVS services, like sourceforge, apache or eclipse CVS repisitories has "cvs history" disabled, so to make TMate monitor new changes in such repositories correctly one has to disable "cvs history" usage in the TMate server administration dialog (use TMate | Administrate | Edit Server Configuration to get the dialog and change "use history" option in the "CVS Properties" tab).

Thanks for evaluating the plugin!
Alexander Kitaev.

0

No problem so far outside of the previous setup issue. I am looking forward to ssh support since sourceforge pserver repository is not updated real-time with the changes made in the ext repository.

I did not see any issue with the history as well even though I believe I turned in on. What would be the symptoms?

Jacques

0

Hello,

If the CVS repository you're connecting to doesn't have "history" enabled, then TMate Server (if set up to use "cvs history") will not be able to detect new changes automatically and user will have to reindex all the changes to get the new ones.

Usage of "cvs history" significantly reduces time that is needed to check where there are new changes in the repository especially for large repositories, but for small or medium-sized repositories and TMate configuration with a few modules disabling "cvs history" usage will not descrease server perfromance a lot, still allowing server to detect new changes.

Thanks,
Alexander Kitaev.

0

Please sign in to leave a comment.