[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Possible bug when Sharing a Project and using an existing module name

From: Gino Filicetti <gino_at_filicetti.net>
Date: 2005-08-16 23:34:44 CEST

Hey guys,

I'm trying to make a switch from CVS to Subversion and it is important
to get the same functionality from the Subclipse plugin that my team
was used to in the CVS plugin for Eclipse.

That being said, I ran into this issue today:

If I have an existing project and I want to hook it up to the same
project in a repository (ie: if I am changing URLs or using a
different repository location or username/pw combo), I end up with a
StringIndexOutOfBounds exception with this stack trace:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1480)
at
org.tigris.subversion.subclipse.core.client.StatusAndInfoCommand.collectInformedStatuses(StatusAndInfoCommand.java:149)
at
org.tigris.subversion.subclipse.core.client.StatusAndInfoCommand.execute(StatusAndInfoCommand.java:58)
at
org.tigris.subversion.subclipse.core.sync.SVNWorkspaceSubscriber.findChanges(SVNWorkspaceSubscriber.java:239)
at
org.tigris.subversion.subclipse.core.sync.SVNWorkspaceSubscriber.refresh(SVNWorkspaceSubscriber.java:217)
at
org.tigris.subversion.subclipse.core.sync.SVNWorkspaceSubscriber.refresh(SVNWorkspaceSubscriber.java:194)
at
org.eclipse.team.internal.ui.synchronize.RefreshSubscriberJob.run(RefreshSubscriberJob.java:290)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)

Here are the specific steps to follow to reproduce this error:

1. Create a project in eclipse
2. Right-click on project and go to Team/Share Project
3. Create a new module in your repository called: "MyProject"
4. Let Subclipse do its magic and share the project
5. Commit all files in your project
6. In the Repository view, confirm that your project and all its files
are in the repository
7. Now disconnect your project by going to Team/Disconnect
8. In the dialog, check the Radio box to "Also remove all SVN metadata"
9. Now you want to reconnect your project, go to Team/Share Project
10. Make sure you use the same module name you used before: "MyProject"
11. You'll be prompted warning that the module already exists and
asking if you'd like to connect to the existing module. Click "Yes".
12. You will see the above error: An internal error occurred during:
"Synchronizing SVN (/SalesTracker)"
13. Open view PDE Runtime/Error Log to see the error again and get the
stack trace.

This feature is very important to the way our development works. We
have a large workspace that is mostly static and does not reside in
the repository. This entire workspace is shipped to each developer,
who then Connects only certain specific projects to the repository.

If there is a workaround, I'd love to know.

Also, this is broken in the Subclipe plugin for Eclipse 2.x, the error
there is:

java.lang.NullPointerException
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.NullPointerException.<init>(NullPointerException.java:63)
at
org.tigris.subversion.svnclientadapter.javahl.JhlStatus.getPath(JhlStatus.java)
at
org.tigris.subversion.svnclientadapter.javahl.JhlStatus.getFile(JhlStatus.java)
at
org.tigris.subversion.subclipse.core.resources.LocalResourceStatusCache.updateStatusSet(LocalResourceStatusCache.java)
at
org.tigris.subversion.subclipse.core.resources.LocalResourceStatusCache.getStatus(LocalResourceStatusCache.java)
at
org.tigris.subversion.subclipse.core.resources.LocalResource.getStatus(LocalResource.java)
at
org.tigris.subversion.subclipse.core.resources.LocalResource.isManaged(LocalResource.java)
at
org.tigris.subversion.subclipse.core.resources.LocalFolder.members(LocalFolder.java)
at
org.tigris.subversion.subclipse.core.resources.LocalFolder.isModified(LocalFolder.java)
at
org.tigris.subversion.subclipse.ui.decorator.SVNLightweightDecorator.isDirty(SVNLightweightDecorator.java)
at
org.tigris.subversion.subclipse.ui.decorator.SVNLightweightDecorator.isDirty(SVNLightweightDecorator.java)
at
org.tigris.subversion.subclipse.ui.decorator.SVNLightweightDecorator.decorate(SVNLightweightDecorator.java)
at
org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java)
at
org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java)
at org.eclipse.core.runtime.Platform.run(Platform.java)
at
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java)
at
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java)
at
org.eclipse.ui.internal.decorators.DecorationScheduler$2.run(DecorationScheduler.java:293)
at java.lang.Thread.run(Thread.java:795)

Thank you for your time,

        Gino Filicetti
Received on Wed Aug 17 07:34:44 2005

This is an archived mail posted to the Subclipse Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.