Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ptp-user] Remote sync with invalid directories

Remote sync will fail when certain disallowed directories appear on
the remote server.  For example, I am syncing between a Linux remote
machine and Windows local machine.  On the remote side there is a
sub-directory named "aux" and this particular directory is disallowed
on Windows.  (Try creating a directory with that name if you don't
believe me.  There are other disallowed names.)

On sync, you get an error message:

"An internal error occurred during: "Remote Synchronization".
Invalid path: aux

The stack trace in the log:

org.eclipse.jgit.dircache.InvalidPathException: Invalid path: aux
at org.eclipse.jgit.dircache.DirCacheCheckout.checkValidPathSegment(DirCacheCheckout.java:1289)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkValidPath(DirCacheCheckout.java:1250)
at org.eclipse.jgit.dircache.DirCacheCheckout.processEntry(DirCacheCheckout.java:312)
at org.eclipse.jgit.dircache.DirCacheCheckout.prescanOneTree(DirCacheCheckout.java:291)
at org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckout.java:409)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:394)
at org.eclipse.jgit.api.MergeCommand.call(MergeCommand.java:255)
at org.eclipse.ptp.internal.rdt.sync.git.core.JGitRepo.merge(JGitRepo.java:601)
at org.eclipse.ptp.internal.rdt.sync.git.core.GitSyncService.doSyncRL(GitSyncService.java:695)
at org.eclipse.ptp.internal.rdt.sync.git.core.GitSyncService.doSync(GitSyncService.java:604)
at org.eclipse.ptp.internal.rdt.sync.git.core.GitSyncService.synchronize(GitSyncService.java:506)
at org.eclipse.ptp.rdt.sync.core.SyncManager$SynchronizeJob.run(SyncManager.java:80)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.eclipse.jgit.errors.CorruptObjectException: invalid name 'AUX'
at org.eclipse.jgit.lib.ObjectChecker.checkNotWindowsDevice(ObjectChecker.java:481)
at org.eclipse.jgit.lib.ObjectChecker.checkPathSegment2(ObjectChecker.java:469)
at org.eclipse.jgit.lib.ObjectChecker.checkPathSegment(ObjectChecker.java:440)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkValidPathSegment(DirCacheCheckout.java:1286)
... 12 more


This is somewhat unsatisfying.  Some better options might be:

1.  Rename the invalid directory, e.g., "_aux" and allow the sync.
Let the user deal with the consequences of the rename.  This behavior
happens in other tools, e.g., when unzipping a file or ftping
directory to Windows with the name "aux."

2.  At least include a clearer error message stating why the sync
failed and what the user should do to enable the sync (e.g., rename
directories).

Let me know if I should create a ticket in Bugzilla.

Rocky


Back to the top