Supporting java 11 for SVN Kit

We are upgrading our application to Java 11.We see that SVN kit is not java 11 ready. This ticket is for making the SVNKit ready for java 11.

class org/tmatesoft/svn/core/SVNURL uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/SVNErrorCode uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/util/SVNMergeInfoUtil uses deprecated method java/lang/Character::©V
class org/tmatesoft/svn/core/internal/util/SVNMergeInfoUtil uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc16/SVNDiffClient16 uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc16/SVNWCClient16 uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc16/SVNBasicDelegate uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc16/SVNUpdateClient16 uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/SVNCopyDriver uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/SVNAdminHelper uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/SVNWCManager uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/SVNMergeDriver uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/SVNDumpStreamParser uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/wc/DefaultLoadHandler uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/SVNFileUtil uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/wc/SVNMergeDriver$2 uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/SVNMethodCallLogger uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/wc/SVNMethodCallLogger uses deprecated method java/lang/Boolean::(Z)V
class org/tmatesoft/svn/core/internal/wc/SVNMergeInfoManager uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/wc/SVNMergeInfoManager uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/DefaultDumpFilterHandler uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/patch/SVNPatchFileStream uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/patch/SVNPatchTarget uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/admin/SVNAdminArea14 uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/wc/admin/SVNAdminAreaFactory uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/wc/admin/SVNAdminAreaFactory uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc/admin/SVNAdminArea uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/fs/FSLocationsFinder uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/fs/FSLog uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/fs/FSPacker uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/fs/FSFS uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/fs/FSFS uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/fs/FSRepositoryUtil uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/fs/FSTransactionRoot uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/fs/FSFile uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/fs/FSFileRevisionsFinder uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/fs/FSErrors uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/fs/FSOutputStream uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/fs/FSHooks uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/fs/index/FSLogicalAddressingIndex uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/fs/repcache/FSRepresentationCacheManager uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/svn/SVNRepositoryImpl uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/svn/SVNConnection uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/svn/SVNConnection uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/svn/SVNReader uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/svn/SVNCommitEditor uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/dav/DAVConnection uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/dav/DAVUtil uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/io/dav/http/HTTPNTLMAuthentication uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/io/dav/http/HTTPNTLMAuthentication uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/internal/wc2/SvnRepositoryAccess uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc2/remote/SvnRemoteGetInfo uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc2/ng/SvnNgDiff uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc2/ng/SvnNgLockUtil uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc2/ng/SvnNgMergeReintegrate uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/internal/wc2/ng/SvnNgMergeDriver$7 uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/wc/DefaultSVNRepositoryPool uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/wc/admin/SVNLookClient uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/replicator/SVNRepositoryReplicator uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/replicator/SVNReplicationEditor uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/io/SVNRepository$LocationsLogHandler uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/io/SVNRepository$7 uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/io/SVNRepository uses deprecated method java/lang/Long::(J)V
class org/tmatesoft/svn/core/wc2/SvnOperation uses deprecated method java/lang/Integer::(I)V
class org/tmatesoft/svn/core/wc2/SvnOperationFactory uses deprecated method java/lang/Integer::(I)V

I’ve fixed those errors at r10736 of trunk. May I ask you with what analysis tool did you produce that list? Maybe I would be useful for us to run it ourselves.

@dmitry.pavlenko we’ve developed a tool by ourselves, performing the following tasks:

  1. Decompile all jars used in our product
    Based on the decompiled code, search for known issues.
  2. Scan with jdeprscan JDK command line tool
    jdepr scans the code for deprecated method usage and detects which methods / classes are not available anymore. This would otherwise result in runtime exceptions.
  3. Scan with jdeps JDK command line tool
    jdeps scans the code for dependencies between jars, these dependencies give inside the usage of the jars

@dmitry.pavlenko / @kitaev when do you expect to have a Java 11 version of SVNKit which we can use in our product? We’d like to use it early January.

@dmitry.pavlenko
Could you let me know when this support request for java 11 is going to be released.
Naveen, who did log this ticked, is not working for our company anymore.

Hello Jaap and Johan,
Thanks for the information about the tool. I’ve just fixed ‘jdeprscan’ warnings for SVNKit library and I’m working on fixing the problem for its dependencies like SQLJet and Sequence libraries.
Once I fix them as well, could I ask you to run your tool on the latest SVNKit trunk to make sure the problem is solved.

By the way I’ve tried to launch and use the current SVNKit release (1.9.3) with OpenJDK 11 and it works well. So probably ‘jdeprscan’ warnings are not critical at the moment, at least for Java 11. Anyway we fill fix them soon.

What about release date, I can say that we’re planning to release a new version soon,@@kitaev will maybe give an estimate.

Fixed the deprecated API problem at
{code}
Sequence library: r178 of trunk
SQLJet library: r1330 of branches/1.1.x
SVNKit library: r10749-10752 of trunk
{code}

@jhoegee.1 We’ll release SVNKit 1.10 with the Java 11 related fixes on 28th of December.

Thanks for the quick response

One more change in 3rd-party library
{code}
Trilead library: r183 of trunk.
{code}

@dmitry.pavlenko do you expect to release a 1.10.1 soon containing above change?

Yes, we also plan to upgrade dependencies massively. But even this doesn’t solve the problem with all dependencies. For example, even if we upgrade ‘lz4’ dependency to the latest Maven verion (‘org.lz4:lz4-java:1.5.0’), even this doesn’t solve the problem in ‘lz4’ itself. So we’re doing the best we can do from our side.