Hi, we are attempting to upgrade our jenkins server, and ran into a 
snag running the jenkins remote client from windows starting at 
jenkins version 1.518.  This exception is not in 1.517, but it is 
present in all versions up to 1.527 that I've tested.
Works okay from unix platforms.
Doesn't seem to be related to the version of the client jar.
Windows is running jdk 1.6.0_16-b01, servers I've tested against have 
jdk 1.6.0_41-b02 (below) or jdk 1.6.0_20.
Any ideas as to the source of the regression?
thanks,
-Russ
tanamiwork{~.4} cat /tmp/windows_login_error.txt
C:\Jenkins>java -jar jenkins-cli_399.jar -s 
http://foomachine/jenkins/ login --username foouser --password 
password
hudson.util.IOException2: remote file operation failed: C:\Documents 
and Settings\foouser\.hudson\cli-credentials
at hudson.remoting.Channel@c2380d1:HTTP full-duplex channel 
b7b03f74-e239-4371-8cb1-fa94d9c81357
         at hudson.FilePath.act(FilePath.java:901)
         at hudson.FilePath.act(FilePath.java:878)
         at 
hudson.cli.ClientAuthenticationCache.save(ClientAuthenticationCache.java:109)
         at 
hudson.cli.ClientAuthenticationCache.set(ClientAuthenticationCache.java:97)
         at hudson.cli.LoginCommand.run(LoginCommand.java:37)
         at hudson.cli.CLICommand.main(CLICommand.java:229)
         at hudson.cli.CliManagerImpl.main(CliManagerImpl.java:92)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at 
hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:275)
         at 
hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:256)
         at 
hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:215)
         at hudson.remoting.UserRequest.perform(UserRequest.java:118)
         at hudson.remoting.UserRequest.perform(UserRequest.java:48)
         at hudson.remoting.Request$2.run(Request.java:326)
         at 
hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
         at hudson.cli.CliManagerImpl$1.call(CliManagerImpl.java:63)
         at 
hudson.remoting.InterceptingExecutorService$2.call(InterceptingExecutorService.java:95)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
         at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.IOException: Remote call on HTTP full-duplex 
channel b7b03f74-e239-4371-8cb1-fa94d9c81357 failed
         at hudson.remoting.Channel.call(Channel.java:681)
         at hudson.FilePath.act(FilePath.java:894)
         ... 24 more
Caused by: java.lang.NoClassDefFoundError: 
jnr/ffi/util/ref/internal/Finalizer$ShutDown
         at java.lang.Class.getDeclaredMethods0(Native Method)
         at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
         at java.lang.Class.getMethod0(Class.java:2670)
         at java.lang.Class.getMethod(Class.java:1603)
         at 
jnr.ffi.util.ref.FinalizableReferenceQueue.getStartFinalizer(FinalizableReferenceQueue.java:292)
         at 
jnr.ffi.util.ref.FinalizableReferenceQueue.<clinit>(FinalizableReferenceQueue.java:90)
         at jnr.ffi.provider.jffi.NativeFinalizer.<init>(NativeFinalizer.java:9)
         at 
jnr.ffi.provider.jffi.NativeFinalizer$SingletonHolder.<clinit>(NativeFinalizer.java:12)
         at 
jnr.ffi.provider.jffi.NativeFinalizer.getInstance(NativeFinalizer.java:16)
         at 
jnr.ffi.provider.jffi.TransientNativeMemory$Magazine.<init>(TransientNativeMemory.java:110)
         at 
jnr.ffi.provider.jffi.TransientNativeMemory.allocate(TransientNativeMemory.java:53)
         at 
jnr.ffi.provider.jffi.NativeMemoryManager.allocateDirect(NativeMemoryManager.java:45)
         at jnr.ffi.Memory.allocateDirect(Memory.java:124)
         at jnr.posix.WString$1.toNative(WString.java:33)
         at jnr.posix.WString$1.toNative(WString.java:26)
         at jnr.posix.WindowsLibC$jnr$ffi$0._wchmod(Unknown Source)
         at jnr.posix.WindowsPOSIX.chmod(WindowsPOSIX.java:136)
         at jnr.posix.CheckedPOSIX.chmod(CheckedPOSIX.java:49)
         at jnr.posix.LazyPOSIX.chmod(LazyPOSIX.java:51)
         at 
hudson.cli.ClientAuthenticationCache$2.invoke(ClientAuthenticationCache.java:121)
         at 
hudson.cli.ClientAuthenticationCache$2.invoke(ClientAuthenticationCache.java:109)
         at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2388)
         at hudson.remoting.UserRequest.perform(UserRequest.java:114)
         at hudson.remoting.UserRequest.perform(UserRequest.java:48)
         at hudson.remoting.Request$2.run(Request.java:270)
         at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
         at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: 
jnr.ffi.util.ref.internal.Finalizer$ShutDown
         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
         ... 31 more