Author: maartenc
Date: Mon Dec 15 14:36:54 2008
New Revision: 726864
URL: http://svn.apache.org/viewvc?rev=726864&view=rev
Log:
- FIX: IO problem while parsing ivy file (Resetting to invalid mark) (IVY-975)
(merged from trunk)
- FIX: Cannot parse maven2 poms containing an UTF-8 BOM (merged from trunk)
Added:
ant/ivy/core/branches/2.0.x/test/java/org/apache/ivy/plugins/parser/m2/test-large-pom.pom
- copied unchanged from r720307,
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-large-pom.pom
Modified:
ant/ivy/core/branches/2.0.x/ (props changed)
ant/ivy/core/branches/2.0.x/CHANGES.txt
ant/ivy/core/branches/2.0.x/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
ant/ivy/core/branches/2.0.x/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
Propchange: ant/ivy/core/branches/2.0.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec 15 14:36:54 2008
@@ -1,2 +1,2 @@
/ant/ivy/core/branches/2.0.0-rc2:707177-709027
-/ant/ivy/core/trunk:695737,696014-696031,696442,698318-706770,709027-709034,709039-710178,711197-718421,720308-720591,721305-723065
+/ant/ivy/core/trunk:695737,696014-696031,696442,698318-706770,709027-709034,709039-710178,711197-718421,720060-720591,721305-723065
Modified: ant/ivy/core/branches/2.0.x/CHANGES.txt
URL:
http://svn.apache.org/viewvc/ant/ivy/core/branches/2.0.x/CHANGES.txt?rev=726864&r1=726863&r2=726864&view=diff
==============================================================================
--- ant/ivy/core/branches/2.0.x/CHANGES.txt (original)
+++ ant/ivy/core/branches/2.0.x/CHANGES.txt Mon Dec 15 14:36:54 2008
@@ -89,6 +89,8 @@
- FIX: Log levels aren't respected in certain cases using the standalone
functionality (IVY-960) (thanks to Patrick Woodworth)
- FIX: NPE in LogReportOutputter (IVY-961)
- FIX: NullPointerException when resolving module wihout revision in the
pattern (IVY-980)
+- FIX: IO problem while parsing ivy file (Resetting to invalid mark) (IVY-975)
+- FIX: Cannot parse maven2 poms containing an UTF-8 BOM
2.0.0-rc2
=====================================
Modified:
ant/ivy/core/branches/2.0.x/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
URL:
http://svn.apache.org/viewvc/ant/ivy/core/branches/2.0.x/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java?rev=726864&r1=726863&r2=726864&view=diff
==============================================================================
---
ant/ivy/core/branches/2.0.x/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
(original)
+++
ant/ivy/core/branches/2.0.x/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
Mon Dec 15 14:36:54 2008
@@ -17,6 +17,7 @@
*/
package org.apache.ivy.plugins.parser.m2;
+import java.io.BufferedInputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -514,16 +515,25 @@
private byte[] prefix = DOCTYPE.getBytes();
private AddDTDFilterInputStream(InputStream in) throws IOException {
- super(in);
+ super(new BufferedInputStream(in));
- if (!in.markSupported()) {
- throw new IllegalArgumentException("The inputstream doesn't
support mark");
- }
+ this.in.mark(MARK);
+
+ // TODO: we should really find a better solution for this...
+ // maybe we could use a FilterReader instead of a
FilterInputStream?
+ int byte1 = this.in.read();
+ int byte2 = this.in.read();
+ int byte3 = this.in.read();
- in.mark(MARK);
+ if (byte1 == 239 && byte2 == 187 && byte3 == 191) {
+ // skip the UTF-8 BOM
+ this.in.mark(MARK);
+ } else {
+ this.in.reset();
+ }
int bytesToSkip = 0;
- LineNumberReader reader = new LineNumberReader(new
InputStreamReader(in, "UTF-8"));
+ LineNumberReader reader = new LineNumberReader(new
InputStreamReader(this.in, "UTF-8"), 100);
String firstLine = reader.readLine();
if (firstLine != null) {
String trimmed = firstLine.trim();
@@ -535,9 +545,9 @@
}
}
- in.reset();
+ this.in.reset();
for (int i = 0; i < bytesToSkip; i++) {
- in.read();
+ this.in.read();
}
}
Modified:
ant/ivy/core/branches/2.0.x/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
URL:
http://svn.apache.org/viewvc/ant/ivy/core/branches/2.0.x/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java?rev=726864&r1=726863&r2=726864&view=diff
==============================================================================
---
ant/ivy/core/branches/2.0.x/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
(original)
+++
ant/ivy/core/branches/2.0.x/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
Mon Dec 15 14:36:54 2008
@@ -106,6 +106,15 @@
assertEquals("jar", artifact[0].getType());
}
+ public void testLargePom() throws Exception {
+ ModuleDescriptor md =
PomModuleDescriptorParser.getInstance().parseDescriptor(
+ settings, getClass().getResource("test-large-pom.pom"), false);
+ assertNotNull(md);
+
+ ModuleRevisionId mrid =
ModuleRevisionId.newInstance("org.apache.myfaces", "myfaces", "6");
+ assertEquals(mrid, md.getModuleRevisionId());
+ }
+
public void testPackaging() throws Exception {
ModuleDescriptor md =
PomModuleDescriptorParser.getInstance().parseDescriptor(
settings, getClass().getResource("test-packaging.pom"), false);