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.

Bug 125673

Summary: Unhandled Error on Copy & Paste - Refactor Copy
Product: versioncontrol Reporter: John Rice <jrice>
Component: MercurialAssignee: issues@versioncontrol <issues>
Status: RESOLVED FIXED    
Severity: blocker    
Priority: P3    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:
Attachments: proposed patch

Description John Rice 2008-01-21 14:18:27 UTC
Create a new Java project, put it under Hg control, commit all files.

Right Click on Main.java, Copy.
Right Click on Package and then select Paste -> Refactor Copy, get following output:

ERROR Command failed:
Command: [hg, rename, --repository, /export/home/jr140578/NetBeansProjects/JavaApplication41, --cwd,
/export/home/jr140578/NetBeansProjects/JavaApplication41, src/javaapplication41/Main_1.java,
src/javaapplication41/Main1.java]
Output: [src/javaapplication41/Main_1.java: not copying - file is not managed, abort: no files to copy]

The copy has worked and we should not be trying to do a rename, so something is not quite right.
Comment 1 Padraig Obriain 2008-01-21 16:03:02 UTC
I am having difficulty reproducing this. I saw it once but have not been able to reproduce it.
Comment 2 Padraig Obriain 2008-01-21 16:08:30 UTC
*** Issue 125621 has been marked as a duplicate of this issue. ***
Comment 3 Padraig Obriain 2008-01-21 16:28:41 UTC
Still intermittent. I am seeing we are in hgMoveImplementation if MercurialInterceptor.java , moving Main_1.java to
Main.java and the status of Main_1.java is reported as STATUS_VERSIONED_UPTODATE. This is wrong.
Comment 4 Padraig Obriain 2008-01-22 09:46:05 UTC
I think that the following is happening:

We get a notification of creation of Main_1.java so we call cache.refresh to update the status of the file.

While this is happening we get notification that Main_1.java has moved to Main.java. We then call hgMoveImplementation
and in there call FileStatuscache.getStatus for Main_1.java. As the cache.refresh call has not finished yet we do not
get the correct status for the file.
Comment 5 Padraig Obriain 2008-01-22 13:16:02 UTC
Created attachment 55360 [details]
proposed patch
Comment 6 Padraig Obriain 2008-01-22 13:20:28 UTC
The propsoed patch ensures that hgMoveImplementation makes the hg calls in the RequestProcessor thread so the hg calls
are serialized. We also need to wait for hgMoveImplementation to complete before continuing.
Comment 7 Padraig Obriain 2008-01-22 14:32:54 UTC
IDE:-------------------------------------------------
IDE: [1/22/08 2:31 PM] Committing "Mercurial" started
Checking in MercurialInterceptor.java;
/shared/data/ccvs/repository/versioncontrol/mercurial/src/org/netbeans/modules/mercurial/MercurialInterceptor.java,v 
<--  MercurialInterceptor.java
new revision: 1.18; previous revision: 1.17
done
Checking in Bundle.properties;
/shared/data/ccvs/repository/versioncontrol/mercurial/src/org/netbeans/modules/mercurial/Bundle.properties,v  <-- 
Bundle.properties
new revision: 1.16; previous revision: 1.15
done
IDE: [1/22/08 2:31 PM] Committing "Mercurial" finished