This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Sun ONE Studio 5.0, build #030528 Windows 2000, JDK 1.4.1_02 build #06 Merant PVCS Version Manager 7.5.1 Description: ============ It is not possible to lock a file somehow if Version Manager 7.5.1 is used. Due to this fact auto-locking feature or correction of VCS groups do not work. It always produces a deadlock - attaching full thread dump. Steps to reproduce: =================== 1. Mount PVCS filesystem. 2. Invoke "PVCS|Get" on some [Current] file. 3. Check both checkboxes and push "OK". 4. The node stays as [Current] only. 5. Modify and add it to default VCS group. 6. Invoke "Versioning|VCS Groups". 7. Right click "<Default Group>" node and choose "Verify". 8. Check "Lock For Changes In Repository" and push "Correct Group" button. 9. IDE is dead-locked.
Created attachment 11957 [details] Thread dump taken while IDE was dead-locked during VCS group correction.
The problem is in the incompatibility of PVCS. Version 7.5 have a different format of output from list then 6.7: Version 6.7.10: Archive:LockInfo=[1.1 : 1.2 : martin : /home/martin/TEST_PVCS/PVCS_WORK/test/TestXML.xml : Thu Oct 23 17:11:32 GMT+02:00 2003] Version 7.5: Archive:LockInfo=[Locked Revision: 1.1 New Revision: 1.2 Locked By: martin Promo Group Name: Work Path: /home/martin/TEST_PVCS/PVCS_WORK/test/TestXML.xml Description: null Lock Created: Thu Oct 23 17:11:32 GMT+02:00 2003 ] This is annoying. We can not be sure that the integration based on PCLI commands will not break completely in the future versions of PVCS!!!
We should be able to parse both formats. Starting to work on it...
Well, there're more problems submitted in this issue. The deadlock is caused by a bug at org.netbeans.modules.vcs.profiles.pvcs.commands.PvcsVerifyAction.performTLCorrection(PvcsVerifyAction.java:330). The command must not be executed in AWT thread. This is a generic problem for all versions of PVCS. The problem with locker information is fixed in the main trunk and prj40_prototype branch: Checking in PvcsListCommand.java; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java,v <-- PvcsListCommand.java new revision: 1.6; previous revision: 1.5 done Checking in PvcsListCommand.java; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java,v <-- PvcsListCommand.java new revision: 1.3.20.3; previous revision: 1.3.20.2 done
The fix of the locker status is still not optimal. It will not work correctly when there are more users having lock on a single file.
The deadlock is fixed in the main trunk and prj40_prototype branch: Checking in api/vcs/VcsManager.java; /cvs/vcscore/src/org/netbeans/api/vcs/VcsManager.java,v <-- VcsManager.java new revision: 1.4; previous revision: 1.3 done Processing log script arguments... More commits to come... Checking in modules/vcscore/commands/CommandProcessor.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/commands/CommandProcessor.java,v <-- CommandProcessor.java new revision: 1.14; previous revision: 1.13 done Checking in api/vcs/VcsManager.java; /cvs/vcscore/src/org/netbeans/api/vcs/VcsManager.java,v <-- VcsManager.java new revision: 1.3.2.1; previous revision: 1.3 done Processing log script arguments... More commits to come... Checking in modules/vcscore/commands/CommandProcessor.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/commands/CommandProcessor.java,v <-- CommandProcessor.java new revision: 1.3.4.5; previous revision: 1.3.4.4 done So, the only pending thing seems to be the case when more users having lock on a single file.
So if there are two lockers, the output from "pcli list" looks like: Version 6.7.10: Archive:LockInfo=[1.1 : 1.2 : martin : /home/martin/TEST_PVCS/PVCS_WORK/test/TestXML.xml : Thu Oct 23 17:11:32 GMT+02:00 2003][1.1 : 1.1.1.0 : pvcstest : Thu Oct 30 13:18:10 GMT+01:00 2003] Version 7.5.1.0: Archive:LockInfo=[Locked Revision: 1.1 New Revision: 1.2 Locked By: martin Promo Group Name: Work Path: /home/martin/TEST_PVCS/PVCS_WORK/test/TestXML.xml Description: null Lock Created: Thu Oct 23 17:11:32 GMT+02:00 2003 ][Locked Revision: 1.1 New Revision: 1.1.1.0 Locked By: pvcstest Promo Group Name: Work Path: null Description: null Lock Created: Thu Oct 30 13:18:10 GMT+01:00 2003 ] There's a problem, that currently "locker" property is supposed to contain only one user name. However both Windows and UNIX systems do not permit a comma in user name. Therefore we can add more user names separated by commas there. The auto-locking must take this into account.
The problem with multiple locks is fixed in the main trunk: Checking in VcsFileSystem.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/VcsFileSystem.java,v <-- VcsFileSystem.java new revision: 1.235; previous revision: 1.234 done Checking in PvcsListCommand.java; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java,v <-- PvcsListCommand.java new revision: 1.7; previous revision: 1.6 done Checking in pvcsUnix.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsUnix.xml,v <-- pvcsUnix.xml new revision: 1.51; previous revision: 1.50 done Checking in pvcsUnixLoc_XX.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsUnixLoc_XX.xml,v <-- pvcsUnixLoc_XX.xml new revision: 1.51; previous revision: 1.50 done Checking in pvcsWin.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWin.xml,v <-- pvcsWin.xml new revision: 1.58; previous revision: 1.57 done Checking in pvcsWinLoc_XX.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWinLoc_XX.xml,v <-- pvcsWinLoc_XX.xml new revision: 1.58; previous revision: 1.57 done
Also merged into prj40_prototype branch: Checking in VcsFileSystem.java; /cvs/vcscore/src/org/netbeans/modules/vcscore/VcsFileSystem.java,v <-- VcsFileSystem.java new revision: 1.193.2.17; previous revision: 1.193.2.16 done Checking in src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcs.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/Attic/pvcs.xml,v <-- pvcs.xml new revision: 1.1.2.21; previous revision: 1.1.2.20 done Checking in src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsLoc_XX.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/Attic/pvcsLoc_XX.xml,v <-- pvcsLoc_XX.xml new revision: 1.1.2.21; previous revision: 1.1.2.20 done Processing log script arguments... More commits to come... Checking in src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java,v <-- PvcsListCommand.java new revision: 1.3.20.4; previous revision: 1.3.20.3 done
Verified in development build #200407220815 of NetBeans 4.0.