SVN Repository Connection Fails Due to 'You must call Structure.setFieldOrder()'
症状
While connecting to a SVN repository via svn+ssh
using private key authentication, the following exception is reported:
Unable to get info for the repository root for <Repository_Name>
You must call Structure.setFieldOrder() in the base constructor for class
org.tmatesoft.svn.core.internal.util.jna.SVNGnomeKeyring$GnomeKeyringContext
to ensure that JNA can accurately determine your Structure's memory layout.
To avoid this message, either call Structure.setFieldOrder() in your
Structures constructor, or set jna.predictable_field_order=true if you are
certain the VM you are using provides fields in a predictable order.
at com.sun.jna.Structure.getFields(Structure.java:826)
at com.sun.jna.Structure.deriveLayout(Structure.java:905)
at com.sun.jna.Structure.calculateSize(Structure.java:867)
at com.sun.jna.Structure.allocateMemory(Structure.java:343)
at com.sun.jna.Structure.ensureAllocated(Structure.java:324)
Unable to get Repository Root URL for <Repository_URL>
Exception getting FishEye access control
You must call Structure.setFieldOrder() in the base constructor for class
org.tmatesoft.svn.core.internal.util.jna.SVNGnomeKeyring$GnomeKeyringContext
to ensure that JNA can accurately determine your Structure's memory layout.
To avoid this message, either call Structure.setFieldOrder() in your
Structures constructor, or set jna.predictable_field_order=true if you are
certain the VM you are using provides fields in a predictable order.
at com.sun.jna.Structure.getFields(Structure.java:826)
at com.sun.jna.Structure.deriveLayout(Structure.java:905)
at com.sun.jna.Structure.calculateSize(Structure.java:867)
at com.sun.jna.Structure.allocateMemory(Structure.java:343)
at com.sun.jna.Structure.ensureAllocated(Structure.java:324)
Error testing connection.
You must call Structure.setFieldOrder() in the base constructor for class
org.tmatesoft.svn.core.internal.util.jna.SVNGnomeKeyring$GnomeKeyringContext
to ensure that JNA can accurately determine your Structure's memory layout.
To avoid this message, either call Structure.setFieldOrder() in your
Structures constructor, or set jna.predictable_field_order=true if you are
certain the VM you are using provides fields in a predictable order.
at com.sun.jna.Structure.getFields(Structure.java:826)
at com.sun.jna.Structure.deriveLayout(Structure.java:905)
at com.sun.jna.Structure.calculateSize(Structure.java:867)
at com.sun.jna.Structure.allocateMemory(Structure.java:343)
at com.sun.jna.Structure.ensureAllocated(Structure.java:324)
Connection failed.
原因
JNA was upgraded in Fisheye 2.8.2 as part of the following bug fix: FE-4286 - Getting issue details... STATUS
The above message is part of a JNA 3.4.2 implementation, as further detailed in this discussion.
ソリューション
Option #1
- Shutdown Fisheye.
- Add
-Djna.predictable_field_order=true
to the FISHEYE_OPTS environment variable. This will pass the parameter to the JVM. - Start Fisheye.
Option #2
- Shutdown Fisheye.
Edit the subversion client configuration file:
Mac/Linux
~/.subversion/config
または/etc/subversion/config
Windows
%appdata%\subversion\config
[auth] store-passwords = no store-auth-creds = no
This will disable the credential caching system.
- Start Fisheye.
最終更新日 2018 年 11 月 2 日
Powered by Confluence and Scroll Viewport.