When committing changes on a z/OS USS system with Java 7.0_64 with the SVNKIT
configuration setting
global-charset=IBM1047 the jsvn client fails with
Aug 31, 2012 2:51:08 PM
org.tmatesoft.svn.core.internal.util.DefaultSVNDebugLogger log
FINE: DEFAULT: svn: E204899: Input length = 1
Aug 31, 2012 2:51:08 PM
org.tmatesoft.svn.core.internal.util.DefaultSVNDebugLogger log
FINE: DEFAULT: Input length = 1
java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:288)
at
org.tmatesoft.svn.core.internal.util.SVNCharsetConvertor.throwException(SVNCharsetConvertor.java:147)
at
org.tmatesoft.svn.core.internal.util.SVNCharsetConvertor.convertChunk(SVNCharsetConvertor.java:63)
at
org.tmatesoft.svn.core.internal.util.SVNCharsetOutputStream.write(SVNCharsetOutputStream.java:64)
at
org.tmatesoft.svn.core.internal.wc.admin.SVNTranslator.copy(SVNTranslator.java:490)
at
org.tmatesoft.svn.core.internal.wc.admin.SVNTranslator.copyAndTranslate(SVNTranslator.java:401)
at
org.tmatesoft.svn.core.internal.wc17.SVNWCContext.getTranslatedFile(SVNWCContext.java:2601)
at
org.tmatesoft.svn.core.internal.wc17.SVNWCContext$RunFileCommit.runOperation(SVNWCContext.java:3475)
at
org.tmatesoft.svn.core.internal.wc17.SVNWCContext.dispatchWorkItem(SVNWCContext.java:3388)
at
org.tmatesoft.svn.core.internal.wc17.SVNWCContext.wqRun(SVNWCContext.java:3376)
at
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCommit.processCommittedQueue(SvnNgCommit.java:330)
at
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCommit.doRun(SvnNgCommit.java:178)
at
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCommit.run(SvnNgCommit.java:112)
at
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCommit.run(SvnNgCommit.java:51)
at
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at
org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
at
org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
at
org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
at org.tmatesoft.svn.core.wc2.SvnCommit.run(SvnCommit.java:184)
at
org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit(SVNCommitClient.java:878)
at
org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit(SVNCommitClient.java:677)
at
org.tmatesoft.svn.cli.svn.SVNCommitCommand.run(SVNCommitCommand.java:105)
at
org.tmatesoft.svn.cli.AbstractSVNCommandEnvironment.run(AbstractSVNCommandEnvironment.java:142)
at
org.tmatesoft.svn.cli.AbstractSVNLauncher.run(AbstractSVNLauncher.java:79)
at org.tmatesoft.svn.cli.svn.SVN.main(SVN.java:26)
at org.tmatesoft.svn.cli.SVN.main(SVN.java:22)
I inserted some debug code printing the parameters at the start of the
routine
FINE: DEFAULT: SVNTranslator.copyAndTranslate(
source=/dev/mm/works/mm.x3/adamid/nl.s,
destination=/dev/mm/works/mm.x3/.svn/tmp/nl.s.tmp,charset=IBM1047,
eol=15,keywords=null,special=false,expand=true,repair=true
Reading through the code, it seems to me that the parameter expand=true
should rather be false.
The source is a local file in IBM1047 encoding and should be probably
converted to UTF-8 in a temp directory.
The call is from
SVNWCContext.getTranslatedFile(SVNWCContext.java:2601)
with the 3rd parameter toNormalFormat being negated to become expand
parameter
at SVNWCContext$RunFileCommit.runOperation(SVNWCContext.java:3475)
The call is
File tmpFile = ctx.getTranslatedFile(localAbspath, localAbspath,
false, false, false, false);
with the parameter toNormalFormat=false
This should be probably set to true: meaning convert to normal form i.e.
UTF-8.
May be my interpretation is not correct; though I am hoping that this
information can help to find a solution to the problem.
--
View this message in context:
http://subversion.1072662.n5.nabble.com/Commit-fails-with-E204899-Input-length-1-with-global-charset-IBM1047-tp173829.html
Sent from the SVNKit - Users mailing list archive at Nabble.com.