Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NullPointerException #37

Open
rovercoder opened this issue Mar 2, 2016 · 4 comments
Open

NullPointerException #37

rovercoder opened this issue Mar 2, 2016 · 4 comments

Comments

@rovercoder
Copy link

So before 1st March the sample project provided was not crashing. It works if I change the device time to 29 Feb. Any ideas?


Method: mockList(List eventList)

Line: BaseCalendarEvent event1 = new BaseCalendarEvent("Thibault travels in Iceland", "A wonderful journey!", "Iceland",
ContextCompat.getColor(getActivity(), R.color.orange_dark), startTime1, endTime1, true);

Error: Method threw 'java.lang.NullPointerException' exception. Cannot evaluate com.github.tibolte.agendacalendarview.models.BaseCalendarEvent.toString()


Edit: Apparently the problem above does not have to do with this particular issue

@Tibolte
Copy link
Owner

Tibolte commented Mar 2, 2016

@nathanzahra Could you copy the whole stacktrace here if possible?

@rovercoder
Copy link
Author

03-02 15:21:24.259 26787-26787/com.project E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.project, PID: 26787
java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1
at java.util.ArrayList.get(ArrayList.java:310)
at com.github.tibolte.agendacalendarview.CalendarManager.getLastMonth(CalendarManager.java:319)
at com.github.tibolte.agendacalendarview.CalendarManager.addWeekToLastMonth(CalendarManager.java:314)
at com.github.tibolte.agendacalendarview.CalendarManager.buildCal(CalendarManager.java:218)
at com.github.tibolte.agendacalendarview.AgendaCalendarView.init(AgendaCalendarView.java:193)
at com.project.fragment.CalendarFragment.initCalendar(CalendarFragment.java:75)
at com.project.fragment.CalendarFragment.onCreateView(CalendarFragment.java:54)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
at android.support.v4.view.ViewPager.populate(ViewPager.java:952)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474)
at android.view.View.measure(View.java:17559)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17559)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.view.View.measure(View.java:17559)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17559)
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:940)
at android.view.View.measure(View.java:17559)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:17559)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17559)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.view.View.measure(View.java:17559)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:875)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17559)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5536)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2615)
at android.view.View.measure(View.java:17559)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2027)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1185)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1391)
at android.view.ViewRootImpl.doTraversal(ViewRootImp


I think the problem is with Calendar mWeekCounter inside CalendarManager. The MONTH variable is set to 0 in mWeekCounter.setTime(mMinCal.getTime()); and so this fails

if (tmpMonth != mWeekCounter.get(Calendar.MONTH)) { // tmpMonth = 0
        MonthItem monthItem = new MonthItem(mWeekCounter.get(Calendar.YEAR), mWeekCounter.get(Calendar.MONTH));
        getMonths().add(monthItem);
}

and the month does not get added, so later when retrieving it from addWeekToLastMonth(weekItem);

private MonthItem getLastMonth() {
        return getMonths().get(getMonths().size() - 1);
}

it throws a NullPointerException.

Still trying to get to the bottom of it.

2nd Mar

mWeekCounter = java.util.GregorianCalendar[time=1451657510195,areFieldsSet=true,lenient=true,zone=Europe/Malta,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=0,WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=1,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=11,SECOND=50,MILLISECOND=195,ZONE_OFFSET=3600000,DST_OFFSET=0]

29th Feb

mWeekCounter = java.util.GregorianCalendar[time=1448980910147,areFieldsSet=true,lenient=true,zone=Europe/Malta,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2015,MONTH=11,WEEK_OF_YEAR=49,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=335,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=41,SECOND=50,MILLISECOND=147,ZONE_OFFSET=3600000,DST_OFFSET=0]

@avgurf
Copy link

avgurf commented Mar 2, 2016

@rovercoder
Copy link
Author

The source on GitHub seems to have tackled this issue already. It is newer than the library available at maven. I managed to get it to work by copying over the library module from source, downgrading java from 1.8 to 1.7, and importing it into my project. Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants