Details
Description
When an ivy.xml contains a <conf> with a description, and that description includes a non-ASCII character (or at least an 'ä'), the
ivy.xml must not be bigger than exactly 10000 Bytes. When the file is even one byte bigger, the following exception is thrown:
$ java -jar /usr/share/ant/lib/ivy-2.1.0.jar -verbose -confs core
:: loading settings :: url = jar:file:/usr/share/java/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
no default ivy user dir defined: set to /home/dennis/.ivy2
including url: jar:file:/usr/share/java/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings-public.xml
no default cache defined: set to /home/dennis/.ivy2/cache
including url: jar:file:/usr/share/java/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings-shared.xml
including url: jar:file:/usr/share/java/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings-local.xml
including url: jar:file:/usr/share/java/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings-main-chain.xml
including url: jar:file:/usr/share/java/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings-default-chain.xml
settings loaded (141ms)
default cache: /home/dennis/.ivy2/cache
default resolver: default
– 5 resolvers:
shared [file]
default [chain] [local, main]
local [file]
public [ibiblio]
main [chain] [shared, public]
using ivy parser to parse file:/tmp/ivy.xml
:: resolving dependencies :: test#test;working@thinky
confs: [core]
validate = true
refresh = false
resolving dependencies for configuration 'core'
== resolving dependencies for test#test;working@thinky [core]
Exception in thread "main" java.io.IOException: Resetting to invalid mark
at java.io.BufferedInputStream.reset(BufferedInputStream.java:433)
at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorUpdater.update(XmlModuleDescriptorUpdater.java:743)
at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorUpdater.update(XmlModuleDescriptorUpdater.java:139)
at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser.toIvyFile(XmlModuleDescriptorParser.java:143)
at org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor.toIvyFile(DefaultModuleDescriptor.java:527)
at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:246)
at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:193)
at org.apache.ivy.Ivy.resolve(Ivy.java:502)
at org.apache.ivy.Main.run(Main.java:270)
at org.apache.ivy.Main.main(Main.java:179)
This happens with both 2.1.0 and 2.2.0, haven't tried 2.0 so far.
I've attached the test file. As already stated, either removing the "ä" from "testä" or making the file 10000 bytes or less gets rid of the problem.
It seems like even an Umlaut in a comment leads to this problem. Just adding one byte in front of the umlaut (to see if a streaming reader
unintentionally split the utf-8 byte) does not seem to help either.
Attachments
Attachments
Issue Links
- is duplicated by
-
IVY-1289 IVY throws IOException when ivy.xml file is larger than 10000 bytes
- Resolved