Alcidauk / CineLog

A fork of KinoLog Android app with some extra functionnalities
GNU General Public License v3.0
47 stars 15 forks source link

Sort by Release Date: Oldest First works. Newest First crashes app. #16

Closed ghost closed 4 years ago

ghost commented 5 years ago

Version 1.1.1, LG G3 running Cyanogenmod 13.0 (Android 6.0.1). As the title says, sorting Movies by Newest Release Date crashes the app every time.

I have one "custom" movie in there, which lacks a release date, so I tried removing that, but it still crashed. I have over 300 movies logged, in case that has any relevance. Let me know if there's any other info I can provide.

Alcidauk commented 5 years ago

Hi,

thanks for your report ! I'll try to reproduce the issue as soon as possible. If I need any information, I come back to you.

Pierre

Alcidauk commented 5 years ago

Hi,

I've tried to reproduce your issue, but it did not manage to, although I added a custom review without release date.

I will try to add a system to allow you to send me the stacktrace of the issue in the next release. It will help me understanding the issue.

I keep you up to date,

Pierre

udidengu82 commented 4 years ago

I have the same crash. Logcat:

FATAL EXCEPTION: main
Process: com.ulicae.cinelog, PID: 17571
java.lang.IllegalArgumentException: Comparison method violates its general contract!
    at java.util.TimSort.mergeHi(TimSort.java:899)
    at java.util.TimSort.mergeAt(TimSort.java:516)
    at java.util.TimSort.mergeForceCollapse(TimSort.java:457)
    at java.util.TimSort.sort(TimSort.java:254)
    at java.util.Arrays.sort(Arrays.java:1498)
    at java.util.Collections.sort(Collections.java:205)
    at com.ulicae.cinelog.data.LocalKinoRepository.findAllByYear(LocalKinoRepository.java:62)
    at com.ulicae.cinelog.data.services.reviews.KinoService.getKinosByYear(KinoService.java:99)
    at com.ulicae.cinelog.android.activities.fragments.reviews.MovieFragment.getResults(MovieFragment.java:85)
    at com.ulicae.cinelog.android.activities.fragments.reviews.ListFragment.createListView(ListFragment.java:117)
    at com.ulicae.cinelog.android.activities.fragments.reviews.ListFragment.onOptionsItemSelected(ListFragment.java:108)
    at android.support.v4.app.Fragment.performOptionsItemSelected(Fragment.java:2317)
    at android.support.v4.app.FragmentManagerImpl.dispatchOptionsItemSelected(FragmentManager.java:3056)
    at android.support.v4.app.FragmentController.dispatchOptionsItemSelected(FragmentController.java:353)
    at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:414)
    at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195)
    at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:113)
    at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:113)
    at android.support.v7.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:69)
    at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:206)
    at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:776)
    at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822)
    at android.support.v7.view.menu.SubMenuBuilder.dispatchMenuItemSelected(SubMenuBuilder.java:88)
    at android.support.v7.view.menu.SubMenuBuilder.dispatchMenuItemSelected(SubMenuBuilder.java:88)
    at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156)
    at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969)
    at android.support.v7.view.menu.MenuPopup.onItemClick(MenuPopup.java:127)
    at android.widget.AdapterView.performItemClick(AdapterView.java:318)
    at android.widget.AbsListView.performItemClick(AbsListView.java:1243)
    at android.widget.AbsListView$PerformClick.run(AbsListView.java:3339)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6723)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:859)
Alcidauk commented 4 years ago

I tried to improve the comparison method. Let me know if the issue remains in the next version