        public CopyOnWriteList unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
            List items = new ArrayList();
            while (reader.hasMoreChildren()) {
                reader.moveDown();
                try {
                    Object item = readItem(reader, context, items);
                    items.add(item);
                } catch (CannotResolveClassException e) {
                    LOGGER.log(WARNING,"Failed to resolve class",e);
                } catch (LinkageError e) {
                    LOGGER.log(WARNING,"Failed to resolve class",e);
                }
                reader.moveUp();
            }
            return new CopyOnWriteList(items,true);
        }

        public CopyOnWriteList unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
            List items = new ArrayList();
            while (reader.hasMoreChildren()) {
                reader.moveDown();
                try {
                    Object item = readItem(reader, context, items);
                    items.add(item);
                } catch (CannotResolveClassException e) {
                    LOGGER.log(WARNING,"Failed to resolve class",e);
                    RobustReflectionConverter.addErrorInContext(context, e);
                } catch (LinkageError e) {
                    LOGGER.log(WARNING,"Failed to resolve class",e);
                    RobustReflectionConverter.addErrorInContext(context, e);
                }
                reader.moveUp();
            }
            return new CopyOnWriteList(items,true);
        }
