<?xml version="1.0" encoding="utf-8"?>
<!--RSS generated by Flaimo.com RSS Builder [2012-02-05 04:12:11]-->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><docs>http://www.svnkit.com/tracker/</docs><link>http://www.svnkit.com/tracker/</link><description><![CDATA[MantisBT - Issues]]></description><title>MantisBT - Issues</title><image><title>MantisBT - Issues</title><url>http://www.svnkit.com/tracker/images/mantis_logo_button.gif</url><link>http://www.svnkit.com/tracker/</link><description><![CDATA[MantisBT - Issues]]></description></image><language>en</language><category>All Projects</category><ttl>10</ttl><dc:language>en</dc:language><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><item><title>0000415: SVNRepository.log(..) - SVNLogEntryPath objects should indicate property changes</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=415</link><description><![CDATA[Other SVN clients are capable of reporting property changes (versus content changes) on both directories and files during a typical &quot;log&quot; command. It would be nice if SVNKit offered the same capabilities.]]></description><category>feature request</category><pubDate>Wed, 18 May 2011 01:46:45 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=415</guid><comments>http://www.svnkit.com/tracker/view.php?id=415#bugnotes</comments></item><item><title>0000311: Actions hang 1024 seconds before they complete</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=311</link><description><![CDATA[On occasion the action (check-in or update) that I perform hangs for 1024 seconds before it completes successfully. During that time it is not possible to cancel the action.&lt;br /&gt;
I have only observed this behavior when working with svn+ssh.&lt;br /&gt;
&lt;br /&gt;
I looked into SVNKit code and found the reason of the problem:&lt;br /&gt;
SVNKit uses trilead library for SSH and to check connection status it calls following method from trilead&lt;br /&gt;
com.trilead.ssh2.channel.ChannelManager.waitForChannelRequestResult(ChannelManager.java:179) which calls 'wait' on Channel. But as SVNKit's thread is in waiting state it can't handle cancel event.&lt;br /&gt;
&lt;br /&gt;
This is a pseudo-code I use to run operations:&lt;br /&gt;
Startup another thread which listens to cancel action, e.g. from UI, and which calls cancel action:&lt;br /&gt;
if (need to cancel) {&lt;br /&gt;
 SVNClientEx client = ...;&lt;br /&gt;
 client.cancelOperation();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Call commit operation:&lt;br /&gt;
SVNClientEx client = ...&lt;br /&gt;
client.commit(...);&lt;br /&gt;
&lt;br /&gt;
Here are relevant stracktraces:&lt;br /&gt;
java.lang.Thread.State: WAITING (on object monitor)&lt;br /&gt;
	at java.lang.Object.wait(Native Method)&lt;br /&gt;
	- waiting on &lt;0x00007fd35513b128&gt; (a com.trilead.ssh2.channel.Channel)&lt;br /&gt;
	at java.lang.Object.wait(Object.java:502)&lt;br /&gt;
	at com.trilead.ssh2.channel.ChannelManager.waitForChannelRequestResult(ChannelManager.java:179)&lt;br /&gt;
	- locked &lt;0x00007fd35513b128&gt; (a com.trilead.ssh2.channel.Channel)&lt;br /&gt;
	at com.trilead.ssh2.channel.ChannelManager.requestChannelTrileadPing(ChannelManager.java:634)&lt;br /&gt;
	at com.trilead.ssh2.Session.ping(Session.java:324)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.io.svn.SVNSSHConnector.isStale(SVNSSHConnector.java:225)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.isConnectionStale(SVNConnection.java:328)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:1222)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.setLocation(SVNRepositoryImpl.java:124)&lt;br /&gt;
	at org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool.createRepository(DefaultSVNRepositoryPool.java:217)&lt;br /&gt;
	- locked &lt;0x00007fd3522fa1b8&gt; (a org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool)&lt;br /&gt;
	at org.tmatesoft.svn.core.wc.SVNClientManager.createRepository(SVNClientManager.java:251)&lt;br /&gt;
	at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:335)&lt;br /&gt;
	at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:327)&lt;br /&gt;
	at org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit(SVNCommitClient.java:991)&lt;br /&gt;
	at org.tmatesoft.svn.core.javahl.SVNClientImpl.commit(SVNClientImpl.java:767)]]></description><category>bug</category><pubDate>Wed, 18 May 2011 00:12:59 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=311</guid><comments>http://www.svnkit.com/tracker/view.php?id=311#bugnotes</comments></item><item><title>0000414: OverlappingFileLockException in SQLJet</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=414</link><description><![CDATA[Hi Alex, &lt;br /&gt;
&lt;br /&gt;
we have recieved an interesting bug report (&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=345853&quot;&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=345853&lt;/a&gt; [&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=345853&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]), hope it will help to find the issue:&lt;br /&gt;
&lt;br /&gt;
I'm using the Zend Development Editor (ZDE) 8.0 and recnetly had this bug report while trying to use my local subversion repository (file format version 4 (1.6)).&lt;br /&gt;
&lt;br /&gt;
SVN/1.6.11 SVNKit/1.3.3 (&lt;a href=&quot;http://svnkit.com/&quot;&gt;http://svnkit.com/&lt;/a&gt; [&lt;a href=&quot;http://svnkit.com/&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]) r6649&lt;br /&gt;
&lt;br /&gt;
JVM Properties:&lt;br /&gt;
{java.runtime.name=Java™ SE Runtime Environment, java.runtime.version=1.6.0_18-b07, java.vendor=Sun Microsystems Inc., line.separator=&lt;br /&gt;
, java.class.version=50.0, os.name=Windows 7, os.arch=x86, user.country=CA, os.version=6.1, eclipse.commands=-os win32 -ws win32 -arch x86 -showsplash -launcher C:\Program Files (x86)\Zend\Zend Studio – 8.0.0\ZendStudio.exe -name Zend Studio --launcher.library C:\Program Files (x86)\Zend\Zend Studio – 8.0.0\plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810\eclipse_1309.dll -startup C:\Program Files (x86)\Zend\Zend Studio – 8.0.0\plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar -showlocation -vm C:\Program Files (x86)\Zend\Zend Studio – 8.0.0\jre\bin\client\jvm.dll , java.version=1.6.0_18, osgi.framework.version=3.6.1.R36x_v20100806, file.separator=\, java.vm.info=mixed mode, path.separator=;, user.timezone=America/New_York, user.language=fr, java.vm.name=Java HotSpot™ Client VM, file.encoding=Cp1252}&lt;br /&gt;
&lt;br /&gt;
java.nio.channels.OverlappingFileLockException&lt;br /&gt;
	at sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(Unknown Source)&lt;br /&gt;
	at sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(Unknown Source)&lt;br /&gt;
	at sun.nio.ch.FileChannelImpl.tryLock(Unknown Source)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.fs.SqlJetFileLockManager$1.createLock(SqlJetFileLockManager.java:75)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.fs.SqlJetFileLockManager.createLock(SqlJetFileLockManager.java:60)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.fs.SqlJetFileLockManager.tryLock(SqlJetFileLockManager.java:73)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.fs.SqlJetFile.lock(SqlJetFile.java:485)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.waitOnLock(SqlJetPager.java:2513)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.sharedLock(SqlJetPager.java:1233)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.pager.SqlJetPager.acquirePage(SqlJetPager.java:1019)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.btree.SqlJetBtree.getMeta(SqlJetBtree.java:2148)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.internal.table.SqlJetOptions.verifySchemaVersion(SqlJetOptions.java:267)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.table.SqlJetDb.refreshSchema(SqlJetDb.java:649)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.table.SqlJetDb$7.runWithLock(SqlJetDb.java:440)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.table.SqlJetDb.runWithLock(SqlJetDb.java:305)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.table.SqlJetDb.beginTransaction(SqlJetDb.java:438)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.table.SqlJetDb$6.runWithLock(SqlJetDb.java:402)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.table.SqlJetDb.runWithLock(SqlJetDb.java:305)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.table.SqlJetDb.runTransaction(SqlJetDb.java:393)&lt;br /&gt;
	at org.tmatesoft.sqljet.core.table.SqlJetDb.runReadTransaction(SqlJetDb.java:379)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.io.fs.repcache.FSRepresentationCacheManager.runReadTransaction(FSRepresentationCacheManager.java:218)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.io.fs.FSOutputStream.close(FSOutputStream.java:242)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.wc.SVNFileUtil.closeFile(SVNFileUtil.java:1553)&lt;br /&gt;
	at org.tmatesoft.svn.core.io.diff.SVNDiffWindowApplyBaton.close(SVNDiffWindowApplyBaton.java:103)&lt;br /&gt;
	at org.tmatesoft.svn.core.io.diff.SVNDeltaProcessor.textDeltaEnd(SVNDeltaProcessor.java:174)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.io.fs.FSDeltaConsumer.textDeltaEnd(FSDeltaConsumer.java:141)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.io.fs.FSCommitEditor.textDeltaEnd(FSCommitEditor.java:293)&lt;br /&gt;
	at org.tmatesoft.svn.core.io.diff.SVNDeltaGenerator.sendDelta(SVNDeltaGenerator.java:192)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.wc.SVNCommitter.sendTextDeltas(SVNCommitter.java:266)&lt;br /&gt;
	at org.tmatesoft.svn.core.internal.wc.SVNCommitter.commit(SVNCommitter.java:367)&lt;br /&gt;
	at org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit(SVNCommitClient.java:1009)&lt;br /&gt;
	at org.tmatesoft.svn.core.javahl.SVNClientImpl.commit(SVNClientImpl.java:767)]]></description><category>bug</category><pubDate>Sun, 15 May 2011 23:09:08 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=414</guid><comments>http://www.svnkit.com/tracker/view.php?id=414#bugnotes</comments></item><item><title>0000412: FSRepositoryUtil.copy is static and synchronized</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=412</link><description><![CDATA[This is related to issue 369.&lt;br /&gt;
&lt;br /&gt;
The method FSRepositoryUtil.copy is both static and synchronized. In an application with concurrent calls to FSRepository.getFile, all access is serialized. This is really bad in two cases:&lt;br /&gt;
&lt;br /&gt;
a) an application is reading files from 2 different repositories in 2 different threads, but because of this lock only one file can be read at a time; this results in a loss of performance (and usability) in the application&lt;br /&gt;
&lt;br /&gt;
b) an application is providing a multi-threaded service that publishes svn files, but all clients end up having serialized access; this results in clients ultimately timing out as they wait for all previous clients to finish their transactions, regardless of the server resources&lt;br /&gt;
&lt;br /&gt;
This can be solved by removing the synchronization on this static method. The discussion for issue 369 mentioned that ourCopyBuffer was the resource being protected. A thread-local buffer or collection of cached buffers would give you similar memory/garbage-collection performance and remove the single-thread bottleneck. Alternatively, the signature could be altered to accept the copy buffer as an argument.&lt;br /&gt;
&lt;br /&gt;
This single-threading makes it impossible to use svnkit for my application which serves data from several svn repositories to a number of clients.]]></description><category>feature request</category><pubDate>Thu, 12 May 2011 13:41:10 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=412</guid><comments>http://www.svnkit.com/tracker/view.php?id=412#bugnotes</comments></item><item><title>0000413: The open connection code uses a global lock for connecting to any server and not a lock per server</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=413</link><description><![CDATA[When opening a connection, if there is any issue or timeout or deadlock with establishing the SSH connection for SVN+SSH protocol, then all connections even to other servers are blocked indefinitely.&lt;br /&gt;
&lt;br /&gt;
We have seen this in the Jenkins project whereby occasionally a Subversion server will have issues with connecting and this causes all SVN polling to deadlock.&lt;br /&gt;
&lt;br /&gt;
It makes sense to have a lock on establishing connections, but the lock should be limited to establishing connections to the same server and port and not a global lock.&lt;br /&gt;
&lt;br /&gt;
The attached file is a Maven Project with two test cases.&lt;br /&gt;
&lt;br /&gt;
The first test case should always pass to show that it is faking out a SVN+SSH server correctly&lt;br /&gt;
The second test case will pass when this issue is resolved. It starts two threads, the first connecting to a server that stalls completing the connection, and the second that tries to connect to a completely different server.]]></description><category>bug</category><pubDate>Fri, 06 May 2011 14:26:14 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=413</guid><comments>http://www.svnkit.com/tracker/view.php?id=413#bugnotes</comments></item><item><title>0000411: SVNSocketFactory: ISVNCanceller is never null</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=411</link><description><![CDATA[In relation to Bug 381 ( &lt;a href=&quot;http://svnkit.com/tracker/view.php?id=381&quot;&gt;http://svnkit.com/tracker/view.php?id=381&lt;/a&gt; [&lt;a href=&quot;http://svnkit.com/tracker/view.php?id=381&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;] ),&lt;br /&gt;
&lt;br /&gt;
In the class org.tmatesoft.svn.core.internal.util.SVNSocketFactory , the method connect test for whichever the object ISVNCanceller cancel is null to determine if thread should be use.&lt;br /&gt;
&lt;br /&gt;
However, this condition can NEVER be true, therefor, leaving the application to open thread for each connection.&lt;br /&gt;
&lt;br /&gt;
Backtracking the code, all call are point toward myRepository.getCanceller() .&lt;br /&gt;
&lt;br /&gt;
return myCanceller == null ? ISVNCanceller.NULL : myCanceller;&lt;br /&gt;
&lt;br /&gt;
Therefor, myCanceller can never be null, as if the canceller is null, ISVNCanceller.NULL, an empty instance of ISVNCanceller, is returned instead.&lt;br /&gt;
&lt;br /&gt;
While bug 381 suggest a  threadpool to improve performance, fixing SVNSocketFactory to support proper null canceller should also be planned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Until a fix is released, we're using a patched version of this class for our project to improve performance. The patch is attached.&lt;br /&gt;
&lt;br /&gt;
Hopefully, this could be added to version 1.3.6]]></description><category>bug</category><pubDate>Mon, 02 May 2011 20:20:01 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=411</guid><comments>http://www.svnkit.com/tracker/view.php?id=411#bugnotes</comments></item><item><title>0000391: please deploy svnkit-cli project to Maven repo</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=391</link><description><![CDATA[It would be awesome if svnkit-cli was provided alongside svnkit, i.e. please also publish org.tmatesoft.svnkit:svnkit-cli, not just org.tmatesoft.svnkit:svnkit&lt;br /&gt;
&lt;br /&gt;
This would really help me in my Groovy scripts, when I want to @Grab svnkit-cli for quick use.]]></description><category>feature request</category><pubDate>Sat, 16 Apr 2011 20:46:51 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=391</guid><comments>http://www.svnkit.com/tracker/view.php?id=391#bugnotes</comments></item><item><title>0000402: svn: Handshake failed, received : '&lt;nul&gt;&lt;nul&gt;...' or '( success ( 2 2 ( ) ( edit...'</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=402</link><description><![CDATA[I'm using SVN kit 1.3.5 connector for subversive and I get random exceptions &quot;SVNException: svn: Handshake failed, received...&quot; when updating or synchronizing with subversion.&lt;br /&gt;
&lt;br /&gt;
I use svnssh+&lt;br /&gt;
&lt;br /&gt;
The client is running on Windows 7.&lt;br /&gt;
&lt;br /&gt;
The SVN server is on Ubuntu Server 10.10&lt;br /&gt;
SVN is 1.6.12&lt;br /&gt;
OpenSSH version is 5.5p1-4ubuntu5&lt;br /&gt;
&lt;br /&gt;
Find in attachment the full stack trace for the two errors I encounter]]></description><category>bug</category><pubDate>Fri, 08 Apr 2011 21:21:43 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=402</guid><comments>http://www.svnkit.com/tracker/view.php?id=402#bugnotes</comments></item><item><title>0000410: the path returned from the SVNPathUtil.append(String,String) does not have the same semantics as arguments</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=410</link><description><![CDATA[If the SVNKit is used to access the DAV repository, the DAVRepository.doGetFullPath(String) method uses the SVNPathUtil.append(String,String) method to construct the full path.&lt;br /&gt;
&lt;br /&gt;
If doGetFullPath's arguments ends with '/' character, that character will be removed by the SVNPathUtil.append method and the returned full path in some cases will not have the expected semantics.&lt;br /&gt;
&lt;br /&gt;
Other SVNRepository implementations are probably affected too.&lt;br /&gt;
&lt;br /&gt;
In my case:&lt;br /&gt;
The user code (org.codehaus.mojo.wagon.shared.WagonDirectoryScanner) checks if a string denotes a directory by adding trailing '/' to the resource name and asking Wagon.resourseExists().&lt;br /&gt;
&lt;br /&gt;
The SWNWagon calls SVNRepository.checkPath and checks the kind of the returned SVNNodeKind to determine whether the resource exists or not. &lt;br /&gt;
&lt;br /&gt;
The problem is that due to the usage of SVNPathUtil.append() inside SVNRepository implementations the two following calls will yeld the same result:&lt;br /&gt;
1) SVNRepository.checkPath( &quot;/some.file&quot;)&lt;br /&gt;
2) SVNRepository.checkPath( &quot;/some.file/&quot;)&lt;br /&gt;
&lt;br /&gt;
Both calls will return SVNNodeKind.FILE, while the second call is expected to return the SVNNodeKind.NONE, or, in the rare cases when it is possible to have a file and a directory with the same name, the SVNNodeKind.DIR if &quot;/some.file/&quot; does exists as a directory in addition to the regualar &quot;/some.file&quot; file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Regardles of whether the usage pattern of WagonDirectoryScanner+Wagon is not very good by itself, the SVNRepository.checkPath( &quot;/some.file&quot; ) and SVNRepository.checkPath( &quot;/some.file/&quot; ) must not return the same value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the same note - what's with that horrible SVNPathUtil.append implementation?&lt;br /&gt;
The same functionality (but already without removing the trailing '/'), but in the much clearer form:&lt;br /&gt;
&lt;br /&gt;
append(f,s){&lt;br /&gt;
  f = f == null ? &quot;&quot; : f;&lt;br /&gt;
  s = s == null ? &quot;&quot; : s;&lt;br /&gt;
  if ( f.endsWith(&quot;/&quot;) ) {&lt;br /&gt;
    return f + s;&lt;br /&gt;
  } else {&lt;br /&gt;
    return f + '/' + s;&lt;br /&gt;
  }&lt;br /&gt;
}]]></description><category>bug</category><pubDate>Thu, 07 Apr 2011 15:10:57 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=410</guid><comments>http://www.svnkit.com/tracker/view.php?id=410#bugnotes</comments></item><item><title>0000409: Server advertising SPNEGO auth results in SVNKit dying with SecurityException</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=409</link><description><![CDATA[This problem happens when all of the following conditions are met:&lt;br /&gt;
&lt;br /&gt;
1. the repository is accessed via WebDAV&lt;br /&gt;
2. the server returns 401 and advertises SPNEGO auth (among others)&lt;br /&gt;
3. the SVNKit client not particularly configured for Kerberos auth&lt;br /&gt;
&lt;br /&gt;
Here's how the problem occurs.&lt;br /&gt;
&lt;br /&gt;
- The server gives us multiple WWW-Authenticate headers, so that the client can choose what it understands. The order just so happens to have SPNEGO before other authentication methods&lt;br /&gt;
- HTTPAuthentication.parseAuthParameters tries to convert this into an HTTPAuthentication object. Unless explicitly set, there's no sorting that takes place, so it'll go with SPNEGO, and you get an HTTPNegotiateAuthentication object returned from this method.&lt;br /&gt;
- negoAuth.needsLogin() gets called, which results in unchecked SecurityException. See the call stack below for the exact call sequence leading up to this.&lt;br /&gt;
&lt;br /&gt;
The problem here is two-folds.&lt;br /&gt;
&lt;br /&gt;
- Error message is cryptic. This is primarily a JRE's problem, but SVNKit can mitigate the problem by catching SecurityException and telling what this error is about.&lt;br /&gt;
- Most Java deployments are simply not properly configured to participate in SPNEGO authentication. AIU, it takes some dedicated configuration at JRE level, and very few people care to do that. So just because the server advertises SPNEGO, and just because SVNKit has code doesn't necessarily mean that you can actually do SPNEGO. A much better failure mode in this case is &quot;svn: authentication cancelled&quot;, which happens when you don't have a matching credential.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I'm not exactly sure how to fix this, and I don't even know if you need a suggestion on that, but if I were doing it, I'd add a method on HTTPNegotiateAuthentication to check if the client has some credential configured, and if not, have HTTPAuthentication.parseAuthParameters tries the next available authentication method.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
java.lang.SecurityException: Unable to locate a login configuration&lt;br /&gt;
at com.sun.security.auth.login.ConfigFile.(Unknown Source)&lt;br /&gt;
at sun.reflect.GeneratedConstructorAccessor73.newInstance(Unknown Source)&lt;br /&gt;
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)&lt;br /&gt;
at java.lang.reflect.Constructor.newInstance(Unknown Source)&lt;br /&gt;
at java.lang.Class.newInstance0(Unknown Source)&lt;br /&gt;
at java.lang.Class.newInstance(Unknown Source)&lt;br /&gt;
at javax.security.auth.login.Configuration$3.run(Unknown Source)&lt;br /&gt;
at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;
at javax.security.auth.login.Configuration.getConfiguration(Unknown Source)&lt;br /&gt;
at javax.security.auth.login.LoginContext$1.run(Unknown Source)&lt;br /&gt;
at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;
at javax.security.auth.login.LoginContext.init(Unknown Source)&lt;br /&gt;
at javax.security.auth.login.LoginContext.(Unknown Source)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPNegotiateAuthentication.initializeSubject(HTTPNegotiateAuthentication.java:139)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPNegotiateAuthentication.needsLogin(HTTPNegotiateAuthentication.java:241)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:535)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:275)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:263)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1001)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:97)]]></description><category>bug</category><pubDate>Wed, 30 Mar 2011 19:14:45 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=409</guid><comments>http://www.svnkit.com/tracker/view.php?id=409#bugnotes</comments></item><item><title>0000408: doLock fails silently when a lock could not be taken</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=408</link><description><![CDATA[Hi,&lt;br /&gt;
&lt;br /&gt;
I was trying to lock a file in a working copy that was not updated to current HEAD. SVNWCClient.doLock returns without an error, but does not actually take a lock - this means that after every doLock I have to check whether I actually have the lock through SVNWCClient.doInfo.getLock (where I think it is not entirely trivial to reliably determine that the lock is actually associated with the local working copy?)&lt;br /&gt;
&lt;br /&gt;
I think it would be preferable if doLock raised an exception whenever it doesn't succeed in obtaining the lock for the local WC.]]></description><category>bug</category><pubDate>Wed, 30 Mar 2011 19:14:37 +0400</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=408</guid><comments>http://www.svnkit.com/tracker/view.php?id=408#bugnotes</comments></item><item><title>0000376: Handling of "301 Moved permanently" is wrong if path contains characters to be URL encoded</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=376</link><description><![CDATA[We think that we might ran into a problem with svnkit's handling of &quot;301 Moved permanently&quot;. In method org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(String, String, HTTPHeader, InputStream, int, int, OutputStream, DefaultHandler, SVNErrorMessage) there is this code:&lt;br /&gt;
&lt;br /&gt;
                if (hostIndex &gt; 0 &amp;&amp; hostIndex &lt; newLocation.length()) {&lt;br /&gt;
                    String newPath = newLocation.substring(hostIndex);&lt;br /&gt;
                    if (newPath.endsWith(&quot;/&quot;) &amp;&amp;&lt;br /&gt;
                            !newPath.endsWith(&quot;//&quot;) &amp;&amp; !path.endsWith(&quot;/&quot;) &amp;&amp;&lt;br /&gt;
                            newPath.substring(0, newPath.length() - 1).equals(path)) {&lt;br /&gt;
                        path += &quot;//&quot;;&lt;br /&gt;
                        continue;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
This does not work if path contains characters which should be URL encoded: path contains unencoded characters, but newPath contains encoded characters and thus equals() fails.]]></description><category>bug</category><pubDate>Thu, 24 Mar 2011 17:42:54 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=376</guid><comments>http://www.svnkit.com/tracker/view.php?id=376#bugnotes</comments></item><item><title>0000404: Exception due to race condition when using svn+ssh</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=404</link><description><![CDATA[Original report:&lt;br /&gt;
&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=337151&quot;&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=337151&lt;/a&gt; [&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=337151&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
Running the latest build of Subversive (0.7.9.I20101203-1700), I frequently&lt;br /&gt;
encounter this error while trying to synchronize, commit, or update.  The error&lt;br /&gt;
log includes the following output (but no stack trace):&lt;br /&gt;
&lt;br /&gt;
    ERROR   [0006] : Resolution attempt ended with exception:&lt;br /&gt;
java.io.IOException: svn: Malformed network data&lt;br /&gt;
    ERROR   java.io.IOException: svn: Malformed network data&lt;br /&gt;
    ERROR   java.io.IOException: svn: Handshake failed, received: &lt;br /&gt;
&lt;br /&gt;
The error goes away after reverting to the previous version&lt;br /&gt;
(0.7.9.I20100512-1900).  This is happening on every machine to which we have&lt;br /&gt;
installed Subversive.  The problem is intermittent, but occurs frequently&lt;br /&gt;
enough that we generally can't successfully synchronize more than two or three&lt;br /&gt;
projects at a time.&lt;br /&gt;
&lt;br /&gt;
1) svn, version 1.6.6 (r40053)&lt;br /&gt;
2) svn+ssh&lt;br /&gt;
3) we have a proxy for accessing external addresses only&lt;br /&gt;
4) we use the standard openssh-server from ubuntu Version: 1:5.3p1-3ubuntu5&lt;br /&gt;
5) the server is on our local area network. if we use the debugger and drop to&lt;br /&gt;
stack when the IOException occurs, the problem appears to go away while&lt;br /&gt;
stepping through the code, so this is likely due to a race condition.&lt;br /&gt;
6) We see the error on Eclipse clients and on our Buckminster builds running on&lt;br /&gt;
Jenkins. These builds are on the same server as SVN but still connect using&lt;br /&gt;
svn+ssh and the error occurs more reproducibly there.&lt;br /&gt;
&lt;br /&gt;
P.S.&lt;br /&gt;
We have faced the same problem with svn+ssh protocol in the local network too. When using svn+ssh over Internet the problem is fading away.]]></description><category>bug</category><pubDate>Tue, 15 Mar 2011 13:31:30 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=404</guid><comments>http://www.svnkit.com/tracker/view.php?id=404#bugnotes</comments></item><item><title>0000406: infinite loop in HTTPConnection.request() with invalid server cert</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=406</link><description><![CDATA[similar situation as in &lt;a href=&quot;http://svnkit.com/tracker/view.php?id=301&quot;&gt;http://svnkit.com/tracker/view.php?id=301&lt;/a&gt; [&lt;a href=&quot;http://svnkit.com/tracker/view.php?id=301&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
since recently we use the svnkit library together with svnclientadapter in the netbeans subversion plugin. &lt;br /&gt;
While trying to access a repository via https we have run into the following scenario:&lt;br /&gt;
- a server returns a wrong certificate (mismatched host name) &lt;br /&gt;
- unfortunately, for whatever reason, no callback is invoked from svnkit so that there is no chance to either reject or a accept the cert&lt;br /&gt;
- the execution hangs in an infinite loop in HTTPConnection.request(). &lt;br /&gt;
&lt;br /&gt;
Further debugging showed us that while trying to establish a connection a SSLHandshakeException (&quot;Received fatal alert: handshake_failure&quot;) is catched in HTTPConnection.request() but the following continue restarts the surrounding while loop.&lt;br /&gt;
&lt;br /&gt;
we are able to reproduce only on some os and jdk configurations - e.g. 1.7.0-ea; Java HotSpot(TM) Client VM 21.0-b02 on two different linux distributions or jdk 1.6_24 on solaris. &lt;br /&gt;
&lt;br /&gt;
the commandline client works fine even with the wrong cert when accepted&lt;br /&gt;
&lt;br /&gt;
obviously, the setup is a bit pathological, yet there stil is no excuse for the svnkit to hang infinitely because of a wrong configuration. &lt;br /&gt;
&lt;br /&gt;
let us know if there is some more information we could provide...&lt;br /&gt;
&lt;br /&gt;
thanks]]></description><category>bug</category><pubDate>Thu, 10 Mar 2011 20:20:27 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=406</guid><comments>http://www.svnkit.com/tracker/view.php?id=406#bugnotes</comments></item><item><title>0000407: Possibility to manage socket's options</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=407</link><description><![CDATA[We are using the SvnKit library in our application.&lt;br /&gt;
Some times on some machines we have the following problem:&lt;br /&gt;
&lt;br /&gt;
java.net.SocketException: Connection reset by peer: socket write error&lt;br /&gt;
at java.net.SocketOutputStream.socketWrite0(Native Method)&lt;br /&gt;
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)&lt;br /&gt;
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)&lt;br /&gt;
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)&lt;br /&gt;
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)&lt;br /&gt;
at java.io.FilterOutputStream.write(FilterOutputStream.java:80)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.svn.SVNWriter.write(SVNWriter.java:98)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.write(SVNConnection.java:318)&lt;br /&gt;
at org.tmatesoft.svn.core.internal.io.svn.SVNCommitEditor.addFile(SVNCommitEditor.java:138)&lt;br /&gt;
at org.radixware.kernel.common.svn.SVNEditor.appendFile(SVNEditor.java:69)&lt;br /&gt;
at org.radixware.manager.operations.LoadUpgradePacketOperation.process(LoadUpgradePacketOperation.java:141)&lt;br /&gt;
at org.radixware.manager.operations.BaseOperation.execute(BaseOperation.java:146)&lt;br /&gt;
at org.radixware.manager.operations.BaseOperation.run(BaseOperation.java:106)&lt;br /&gt;
&lt;br /&gt;
After some experiments I managed to reproduce the problem repeatedly by commiting 500 MB.&lt;br /&gt;
Server:  P4, Windows Server 2003, svnserve.exe as service, without firewall, antivirus, etc.&lt;br /&gt;
Client: Core I7, Windows Server 2003, svnkit, without firewall, antivirus, etc.&lt;br /&gt;
&lt;br /&gt;
I found the following:&lt;br /&gt;
1) Commit is processed successfully by means of svn.exe or tortoise on the very client PC!&lt;br /&gt;
2) Commit is processed successfully via svnkit from other PCs.&lt;br /&gt;
3) The problem still appears if the server and the client are connected directly by a cable (without swiches).&lt;br /&gt;
4) The connection reset may occur not only in SVNCommitEditor.appendFile, but in 'applyTextDelta', 'sendDelta' at a random moment.&lt;br /&gt;
5) After disabling 'Large Send Offload' option of the client's network adapter the problem disappeared.&lt;br /&gt;
&lt;br /&gt;
But it's inconvenient for us to ask all our clients to disable the 'Large Send Offload' option.&lt;br /&gt;
Especially taking into account that svn.exe works correctly. &lt;br /&gt;
&lt;br /&gt;
I also found another solution.&lt;br /&gt;
Setting socket buffers size to 512 bytes solves the problem.&lt;br /&gt;
I did the following:&lt;br /&gt;
SVNRepositoryFactoryImpl.setup(new MySvnConnection());&lt;br /&gt;
Where:&lt;br /&gt;
MySvnConnection is a copy of ISVNConnectorFactory.DEFAULT that creates MySvnPlainConnector.&lt;br /&gt;
MySvnPlainConnector is a copy of SVNPlainConnector executing the folowing code after a socket creation:&lt;br /&gt;
mySocket.setSendBufferSize(512);&lt;br /&gt;
mySocket.setReceiveBufferSize(512);&lt;br /&gt;
&lt;br /&gt;
This is a temporary solution.&lt;br /&gt;
I'm  going to replace it by a reflection hack to decline code coping and to keep SSH and tunnels working.&lt;br /&gt;
&lt;br /&gt;
I was wondering if it is possible to create some API for managing socket's options in the SvnKit library.&lt;br /&gt;
It will allow to create a better solution.]]></description><category>feature request</category><pubDate>Thu, 10 Mar 2011 20:20:05 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=407</guid><comments>http://www.svnkit.com/tracker/view.php?id=407#bugnotes</comments></item><item><title>0000405: memory on checkout large repository</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=405</link><description><![CDATA[Checking out a large repository leads to an OutOfMemoryError exception.&lt;br /&gt;
&lt;br /&gt;
FATAL: Java heap space&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
&lt;br /&gt;
See the attached file for a view of the memory dump. It seems that org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess keeps an entry for every single file in the repository. This naturally leads to an out of memory condition given enough files.]]></description><category>bug</category><pubDate>Thu, 10 Mar 2011 20:19:18 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=405</guid><comments>http://www.svnkit.com/tracker/view.php?id=405#bugnotes</comments></item><item><title>0000401: Reexport of jar archive not working in Eclipse Plugin Development</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=401</link><description><![CDATA[Eclipse Version: 3.6.1&lt;br /&gt;
SVNKit 1.3.5&lt;br /&gt;
&lt;br /&gt;
I want to use SVNKit-Lybrary in an eclipse plugin project.&lt;br /&gt;
&lt;br /&gt;
First of all i do the following step:&lt;br /&gt;
1. Create Plugin project&lt;br /&gt;
2. Add org.tmatesoft.svnkit_1.3.5.7406.jar as plugin dependency.&lt;br /&gt;
3. Import import org.tmatesoft.svn.core.wc.SVNClientManager;&lt;br /&gt;
&lt;br /&gt;
-&gt; The type SVNClientManager is not recognised in the plugin project.&lt;br /&gt;
&lt;br /&gt;
If I move the class files from svnkit.jar (which is inside org.tmatesoft.svnkit_1.3.5.7406.jar) directly into org.tmatesoft.svnkit_1.3.5.7406.jar the type SVNClientManager is recognised.&lt;br /&gt;
&lt;br /&gt;
The manifest.inf files looks ok, i guess reexport from jars inside a plugin is not supported (anymore).&lt;br /&gt;
&lt;br /&gt;
Also found a mailing list entry:&lt;br /&gt;
&lt;a href=&quot;http://osdir.com/ml/version-control.subversion.javasvn.user/2008-01/msg00043.html&quot;&gt;http://osdir.com/ml/version-control.subversion.javasvn.user/2008-01/msg00043.html&lt;/a&gt; [&lt;a href=&quot;http://osdir.com/ml/version-control.subversion.javasvn.user/2008-01/msg00043.html&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]]]></description><category>bug</category><pubDate>Tue, 15 Feb 2011 19:11:57 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=401</guid><comments>http://www.svnkit.com/tracker/view.php?id=401#bugnotes</comments></item><item><title>0000400: Wrong SSH host key fingerprint displayed</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=400</link><description><![CDATA[When I try to check out a repository via svn+ssh with any host, I am prompted to confirm the host key fingerprint. This fingerprint is invariably incorrect.&lt;br /&gt;
&lt;br /&gt;
For example, try to check out this (nonexistent) repository:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;svn+ssh://login.ccs.neu.edu/foo/&quot;&gt;svn+ssh://login.ccs.neu.edu/foo/&lt;/a&gt; [&lt;a href=&quot;svn+ssh://login.ccs.neu.edu/foo/&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
I am prompted with the RSA fingerprint 37:bd:4e:7f:7f:7f:49:48:cd:7d:e3:58:ab:6c:04:ef:46:2c:4d:82. However, that server's RSA fingerprint is d0:5b:da:56:c9:2b:03:b8:33:3c:d9:1b:24:fc:20:64.&lt;br /&gt;
&lt;br /&gt;
This mismatch occurs for *every* computer I try to connect to, with a different (yet consistent) incorrect fingerprint each time.]]></description><category>bug</category><pubDate>Tue, 15 Feb 2011 19:11:57 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=400</guid><comments>http://www.svnkit.com/tracker/view.php?id=400#bugnotes</comments></item><item><title>0000399: jna*.dll and jna*.tmp files left in user's temp directory</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=399</link><description><![CDATA[Issue is still present within the 1.3.5 version.&lt;br /&gt;
&lt;br /&gt;
P.S.&lt;br /&gt;
From original report (&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=333194&quot;&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=333194&lt;/a&gt; [&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=333194&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]):&lt;br /&gt;
&lt;br /&gt;
We have an RCP application built on top of Eclipse 3.4.2. &lt;br /&gt;
Install the Subversive plugins via archived updatesite&lt;br /&gt;
Subversive-incubation-0.7.9.I20101001-1700.zip&lt;br /&gt;
Additionally install SVN connectors from the following updatesite&lt;br /&gt;
&lt;a href=&quot;http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/&quot;&gt;http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/&lt;/a&gt; [&lt;a href=&quot;http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
Now launch the RCP application and go the SVN Repository Exploring perspective.&lt;br /&gt;
Open user's temp directory in Windows Explorer - User\Local Settings\temp on&lt;br /&gt;
Windows XP.&lt;br /&gt;
jna*.dll and jna*.tmp files get created.&lt;br /&gt;
Close the RCP application and launch again. Go To SVN Repository Exploring&lt;br /&gt;
perspective. &lt;br /&gt;
Bug - additional jna*.dll and jna*.tmp files have been created in the temp&lt;br /&gt;
folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reproducible: Always]]></description><category>bug</category><pubDate>Tue, 15 Feb 2011 19:11:57 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=399</guid><comments>http://www.svnkit.com/tracker/view.php?id=399#bugnotes</comments></item><item><title>0000398: When SASL allows ANONYMOUS authentication jsvn still asks for user/password</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=398</link><description><![CDATA[With a configuration similar to the one used in issue 384 (&lt;a href=&quot;http://svnkit.com/tracker/view.php?id=384&quot;&gt;http://svnkit.com/tracker/view.php?id=384&lt;/a&gt; [&lt;a href=&quot;http://svnkit.com/tracker/view.php?id=384&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;]) comment 0000883, but modified to allow ANONYMOUS authentication, the user and password are still requested.&lt;br /&gt;
&lt;br /&gt;
A proposed fix is attached.&lt;br /&gt;
&lt;br /&gt;
Here's the modified configuration:&lt;br /&gt;
&lt;br /&gt;
svnserve.conf:&lt;br /&gt;
&lt;br /&gt;
[general]&lt;br /&gt;
anon-access = none &lt;br /&gt;
auth-access = write&lt;br /&gt;
# password-db = passwd&lt;br /&gt;
# authz-db = authz&lt;br /&gt;
realm = foo&lt;br /&gt;
&lt;br /&gt;
[sasl]&lt;br /&gt;
use-sasl = true&lt;br /&gt;
# min-encryption = 0&lt;br /&gt;
# max-encryption = 256&lt;br /&gt;
&lt;br /&gt;
/etc/sasl2/svn.conf:&lt;br /&gt;
&lt;br /&gt;
pwcheck_method:saslauthd&lt;br /&gt;
mech_list: ANONYMOUS PLAIN]]></description><category>bug</category><pubDate>Tue, 15 Feb 2011 19:09:58 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=398</guid><comments>http://www.svnkit.com/tracker/view.php?id=398#bugnotes</comments></item><item><title>0000403: SVNKit should have option to disable gzip encoding for HTTP(S) connections</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=403</link><description><![CDATA[I was attempting to use SVNKit on Android.  But was getting a &quot;crc mismatch&quot; when it would connect to an http svn repository.&lt;br /&gt;
&lt;br /&gt;
Turns out this is an issue with the version of Apache Harmony used on Android 2.2 (not sure how far back it goes in Android). The version of GzipOutputStream has a bug when used with a network stream.&lt;br /&gt;
&lt;br /&gt;
I would like to request an option to disable gzip encoding.  A system property would work nicely.  Just a property that could be set at the beginning of the main function or whatever.]]></description><category>feature request</category><pubDate>Tue, 15 Feb 2011 19:09:33 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=403</guid><comments>http://www.svnkit.com/tracker/view.php?id=403#bugnotes</comments></item><item><title>0000397: While deleting the revision i am getting this error...</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=397</link><description><![CDATA[Hi,&lt;br /&gt;
        I have one situation to delete particular revision from SVN repository. So, am getting this error.&lt;br /&gt;
&lt;br /&gt;
org.tmatesoft.svn.core.SVNException: svn: Item '/cixAdmin/docColl/344/Enhancements List.ods' is out of date&lt;br /&gt;
svn: DELETE of '/svn-repos/cixAdmin/!svn/wrk/2d60616f-2d01-0010-9029-cb9e00ce62c0/cixAdmin/docColl/344/Enhancements%20List.ods': 409 Conflict (&lt;a href=&quot;http://efycaci.stg.com&quot;&gt;http://efycaci.stg.com&lt;/a&gt; [&lt;a href=&quot;http://efycaci.stg.com&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;])&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
org.tmatesoft.svn.core.SVNException: svn: File or directory '/cixAdmin/docColl/344/Enhancements%20List.ods' is out of date; try updating&lt;br /&gt;
svn: The version resource does not correspond to the resource within the transaction.  Either the requested version resource is out of date (needs to be updated), or the requested version resource is newer than the transaction root (restart the commit).&lt;br /&gt;
svn: CHECKOUT of '/svn-repos/cixAdmin/!svn/ver/13050/cixAdmin/docColl/344/Enhancements%20List.ods': 409 Conflict (&lt;a href=&quot;http://efycaci.stg.com&quot;&gt;http://efycaci.stg.com&lt;/a&gt; [&lt;a href=&quot;http://efycaci.stg.com&quot; target=&quot;_blank&quot;&gt;^&lt;/a&gt;])&lt;br /&gt;
&lt;br /&gt;
I have pasted my code in this cyclic mail(at top).  Is it possible to delete revision from repository?]]></description><category>bug</category><pubDate>Tue, 15 Feb 2011 19:09:01 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=397</guid><comments>http://www.svnkit.com/tracker/view.php?id=397#bugnotes</comments></item><item><title>0000395: How to Delete particular revision of file from SVN Repository using java code</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=395</link><description><![CDATA[Hi,&lt;br /&gt;
    I have tried to delete particular revision from svn-repository. But, i can delete only file. I want to delete particular revision. I dont know how to delete and give path of particular revision. &lt;br /&gt;
&lt;br /&gt;
This is the code&lt;br /&gt;
&lt;br /&gt;
public void deleteDocRevision(String collDir, String fileName, Long revNum)&lt;br /&gt;
			throws SVNException {&lt;br /&gt;
		if (logger.isDebugEnabled()) {&lt;br /&gt;
			logger.debug(&quot;deleteDocRevision(String, String, Long) - start&quot;); //$NON-NLS-1$&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		String path = this.getPath() + &quot;/&quot; + DOC_COLL_FOLDER_NAME;&lt;br /&gt;
		path = path + &quot;/&quot; + collDir;&lt;br /&gt;
		String filePath = path + &quot;/&quot; + fileName;&lt;br /&gt;
&lt;br /&gt;
		SVNNodeKind kind = this.getTheRepository().checkPath(filePath, revNum);&lt;br /&gt;
&lt;br /&gt;
		if (kind == SVNNodeKind.NONE) {&lt;br /&gt;
			SVNErrorMessage message = SVNErrorMessage.create(&lt;br /&gt;
					SVNErrorCode.BAD_FILENAME, filePath + &quot; Not found&quot;);&lt;br /&gt;
			throw new SVNException(message);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		try {&lt;br /&gt;
&lt;br /&gt;
			ISVNEditor editor = this.getTheRepository().getCommitEditor(&lt;br /&gt;
					&quot;file deleted&quot;, null);&lt;br /&gt;
			editor.openRoot(-1);&lt;br /&gt;
			editor.deleteEntry(filePath, revNum);&lt;br /&gt;
			editor.closeDir();&lt;br /&gt;
			editor.closeEdit();&lt;br /&gt;
		} catch (Exception e) {&lt;br /&gt;
&lt;br /&gt;
			logger.error(&quot;deleteDocRevision(String, String, Long)&quot;, e); //$NON-NLS-1$&lt;br /&gt;
			e.printStackTrace();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (logger.isDebugEnabled()) {&lt;br /&gt;
			logger.debug(&quot;deleteDocRevision(String, String, Long) - end&quot;); //$NON-NLS-1$&lt;br /&gt;
		}&lt;br /&gt;
	}]]></description><category>bug</category><pubDate>Tue, 15 Feb 2011 19:08:17 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=395</guid><comments>http://www.svnkit.com/tracker/view.php?id=395#bugnotes</comments></item><item><title>0000301: SSL handshaking failure in HTTPConnection results in infinite loop</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=301</link><description><![CDATA[The request method (to be exact, it's request(String method, String path, HTTPHeader header, InputStream body, int ok1, int ok2, OutputStream dst, DefaultHandler handler, SVNErrorMessage context) throws SVNException) has a big while(true) loop, and inside this loop is a catch block for SSLHandshakeException. I copied the code for your convenience below:&lt;br /&gt;
&lt;br /&gt;
        while(true) {&lt;br /&gt;
            ...&lt;br /&gt;
            try {&lt;br /&gt;
                ...&lt;br /&gt;
            } catch (SSLHandshakeException ssl) {&lt;br /&gt;
                myRepository.getDebugLog().logFine(SVNLogType.NETWORK, ssl);&lt;br /&gt;
                close();&lt;br /&gt;
	            if (ssl.getCause() instanceof SVNSSLUtil.CertificateNotTrustedException) {&lt;br /&gt;
		            SVNErrorManager.cancel(ssl.getCause().getMessage(), SVNLogType.NETWORK);&lt;br /&gt;
	            }&lt;br /&gt;
                SVNErrorMessage sslErr = SVNErrorMessage.create(SVNErrorCode.RA_NOT_AUTHORIZED, &quot;SSL handshake failed: ''{0}''&quot;, new Object[] { ssl.getMessage() }, SVNErrorMessage.TYPE_ERROR, ssl);&lt;br /&gt;
		            if (keyManager != null) {&lt;br /&gt;
			            keyManager.acknowledgeAndClearAuthentication(sslErr);&lt;br /&gt;
		            }&lt;br /&gt;
                err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_REQUEST_FAILED, ssl);&lt;br /&gt;
                continue;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see, in the end, this code just does &quot;continue&quot;, which brings it back to the top of the while loop. Since the catch block doesn't seem to do anything that changes the outcome of the next attempt, it'll cause the same problem landing in the same catch clause, and causes the infinite loop.&lt;br /&gt;
&lt;br /&gt;
And this catch block diligently computes the 'err' variable, which gets thrown away as soon as the next iteration of the while loop starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is this a merge failure or something? The 'continue' statement aeppars out of place.&lt;br /&gt;
&lt;br /&gt;
Or does this code really intend to retry the request? If so, I suggest some measure be added to avoid infinite loop.]]></description><category>bug</category><pubDate>Tue, 25 Jan 2011 16:50:04 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=301</guid><comments>http://www.svnkit.com/tracker/view.php?id=301#bugnotes</comments></item><item><title>0000394: Invalid implementation of the class 'SVNClientImpl$getVersion'</title><author></author><link>http://www.svnkit.com/tracker/view.php?id=394</link><description><![CDATA[The method 'getVersion' of the class 'org.tmatesoft.svn.core.javahl.SVNClientImpl' is wrong. The returned 'Version' instance provides the client version rather than the underlying &quot;native&quot; library.&lt;br /&gt;
Therefore it provides a version number &quot;1.3&quot; rather than the Subversion version &quot;1.6&quot; .]]></description><category>bug</category><pubDate>Fri, 07 Jan 2011 21:50:55 +0300</pubDate><guid>http://www.svnkit.com/tracker/view.php?id=394</guid><comments>http://www.svnkit.com/tracker/view.php?id=394#bugnotes</comments></item></channel></rss>

