Bug:
The existing code passed 0 as the default page size limit when calling
getArtists, getAlbums or getTracks. However, this resulted in a response
from last.fm that contained the right data, but had empty strings as the
the page, perPage and totalPages attributes. These attributes then
failed to parse in ResponseBuilder, resulting in a
NumberFormatException.
To Reproduce:
Call Library.getArtists(String user, String apiKey) on a library with
less than 50 artists.
Fix:
To fix this I changed the library get methods (Library.getArtists,
Library.getAlbums and Library.getTracks) to omit the limit parameter
if limit <= 0. This results in last.fm using its default limit, which is
currently 50, and the response has the appropriate page, perPage and
totalPage attributes set, eliminating the parsing issue in
ResponseBuilder.
Bug: The existing code passed 0 as the default page size limit when calling getArtists, getAlbums or getTracks. However, this resulted in a response from last.fm that contained the right data, but had empty strings as the the page, perPage and totalPages attributes. These attributes then failed to parse in ResponseBuilder, resulting in a NumberFormatException.
To Reproduce: Call Library.getArtists(String user, String apiKey) on a library with less than 50 artists.
Fix: To fix this I changed the library get methods (Library.getArtists, Library.getAlbums and Library.getTracks) to omit the limit parameter if limit <= 0. This results in last.fm using its default limit, which is currently 50, and the response has the appropriate page, perPage and totalPage attributes set, eliminating the parsing issue in ResponseBuilder.