Fixed
Details
Assignee
AlbertoAlbertoReporter
Ivan TrechekasIvan TrechekasHB Grooming Date
Sep 27, 2022HB Backlog Status
Refined BacklogSprint
NoneFix versions
Affects versions
Priority
Major
Details
Details
Assignee
Alberto
AlbertoReporter
Ivan Trechekas
Ivan TrechekasHB Grooming Date
Sep 27, 2022
HB Backlog Status
Refined Backlog
Sprint
None
Fix versions
Affects versions
Priority
PagerDuty
PagerDuty
PagerDuty
Created September 8, 2022 at 9:03 PM
Updated November 8, 2022 at 4:18 PM
Resolved November 8, 2022 at 2:44 PM
Steps:
login as admin user (Admin role/ Admin group)
open 'User and Groups' (http://localhost:8980/opennms/admin/userGroupView/index.jsp)
open 'Configure On-Call Roles'
created a Role 'new role'
click on that role
in On-Call Role Schedule table click on any :plus: button to assign user on it
In 'Edit Schedule Entry' (http://localhost:8980/opennms/admin/userGroupView/roles) select any user and set up any date.
click Save
Expected:
User will be assigned on this date
Actual:
1) on 'Edit Schedule Entry' user sees empty alert notification message.
2) after click on Save button UI sends
Request URL: http://localhost:8980/opennms/admin/userGroupView/rolesRequest Method: POST Status Code: 500 Server Error operation=saveEntry&role=OnCall&schedIndex=-1&timeIndex=-1&_csrf=6bf706b5-718f-4bc6-a863-fb570363aed9&roleUser=admin& startDate=29&startMonth=9&startYear=2022&startHour=12&startMinute=00&startAmOrPm=AM& endDate=29&endMonth=9&endYear=2022&endHour=12&endMinute=00&endAmOrPm=AM&save=
startAmOrPm=AM
endAmOrPm=AM
that causes backend issue:
javax.servlet.ServletException: javax.servlet.ServletException: Unable to parse date: Unparseable date: "9-29-2022 12:00 AM" ... Caused by: javax.servlet.ServletException: Unable to parse date: Unparseable date: "9-29-2022 12:00 AM" ... Caused by: java.text.ParseException: Unparseable date: "9-29-2022 12:00 AM" at java.text.DateFormat.parse(DateFormat.java:395) ~[?:?] at org.opennms.web.admin.roles.AdminRoleServlet$SaveEntryAction.getDateParameters(AdminRoleServlet.java:240) ~[?:?] at org.opennms.web.admin.roles.AdminRoleServlet$SaveEntryAction.execute(AdminRoleServlet.java:191) ~[?:?] at org.opennms.web.admin.roles.AdminRoleServlet.doIt(AdminRoleServlet.java:309) ~[?:?] at org.opennms.web.admin.roles.AdminRoleServlet.doPost(AdminRoleServlet.java:351) ~[?:?]
in that class org/opennms/web/admin/roles/AdminRoleServlet.java at 241th row:
return new SimpleDateFormat("M-d-yyyy h:m a").parse(buf.toString());
Root cause?
it's not clear what triggered this issue.
From what I see:
SimpleDateFormat parser = new SimpleDateFormat("M-d-yyyy h:m a"); // "M-d-yyyy h:m a" System.out.println(parser.format(new Date())); // 9-8-2022 4:23 p.m.
Since we have AM / PM from UI data, it couldn't be parsed by this pattern because it expects a.m. / p.m.
But this issue could be solved by adding `Locale.US` (it works on local env)
SimpleDateFormat parser2 = new SimpleDateFormat("M-d-yyyy h:m a", Locale.US); // "M-d-yyyy h:m a" System.out.println(parser2.format(new Date())); // 9-8-2022 4:23 PM