Author: tchemit Date: 2009-09-19 18:19:34 +0200 (Sat, 19 Sep 2009) New Revision: 576 Modified: trunk/src/main/java/org/nuiton/io/xpp3/AbstractXpp3Reader.java trunk/src/main/java/org/nuiton/io/xpp3/Xpp3Helper.java Log: - fix bug new parentRootTag = rootTag in arrays xml parsing - throw error when reader not found Modified: trunk/src/main/java/org/nuiton/io/xpp3/AbstractXpp3Reader.java =================================================================== --- trunk/src/main/java/org/nuiton/io/xpp3/AbstractXpp3Reader.java 2009-09-15 16:24:34 UTC (rev 575) +++ trunk/src/main/java/org/nuiton/io/xpp3/AbstractXpp3Reader.java 2009-09-19 16:19:34 UTC (rev 576) @@ -360,6 +360,8 @@ int eventType = parser.getEventType(); + eventType = parser.next(); + if (eventType == XmlPullParser.START_TAG && rootTagName.equals(parser.getName())) { // there is a child to read addChild = true; @@ -372,7 +374,6 @@ break; } - eventType = parser.next(); } if (addChild) { Modified: trunk/src/main/java/org/nuiton/io/xpp3/Xpp3Helper.java =================================================================== --- trunk/src/main/java/org/nuiton/io/xpp3/Xpp3Helper.java 2009-09-15 16:24:34 UTC (rev 575) +++ trunk/src/main/java/org/nuiton/io/xpp3/Xpp3Helper.java 2009-09-19 16:19:34 UTC (rev 576) @@ -101,6 +101,9 @@ Xpp3Reader<O> modelReader = getReader(klass); + if (modelReader == null) { + throw new IllegalArgumentException("could not find xpp3Reader for type " + klass); + } result = modelReader.readArray(sReader); } finally { @@ -481,7 +484,8 @@ protected static Map<Class<?>, Xpp3Reader<?>> getReaders() { if (readers == null) { readers = new HashMap<Class<?>, Xpp3Reader<?>>(); - for (Xpp3Reader<?> r : ServiceLoader.load(Xpp3Reader.class)) { + for (Xpp3Reader<?> r : ServiceLoader.load(Xpp3Reader.class,Xpp3Helper.class.getClassLoader())) { + readers.put(r.getType(), r); } }
participants (1)
-
tchemit@users.nuiton.org