Postando meu comentário como uma resposta, pois resolveu o problema e pode ser útil para outras pessoas com dificuldade em usar o
xml-stream
pacote desta forma. Em questão, o
collect
está causando o problema, pois está forçando o analisador a coletar todas as instâncias do nó processado em uma matriz à medida que são analisadas. collect
deve ser usado apenas para coletar itens filhos de um determinado tipo de cada nó que está sendo analisado. O comportamento padrão é não fazer isso (devido à natureza de streaming do analisador que permite processar arquivos de vários gigabytes com facilidade). Então a solução foi remover essa linha de código e usar apenas o
endElement
evento.