Division by zero
Hello,
I'm using Cospend 0.0.9 on Nextcloud 15.0.2.
It was working smoothly, but after I changed the weight of a member to 0 - the member with the name Z - everything broke apart.
Now, when I open Cospend I get the error message Failed to get projects with the following log in Nextcloud:
{"reqId":"45wtpviXAoZQnkEMFtFF","level":3,"time":"2019-04-07T14:20:52+00:00","remoteAddr":"172.31.0.2","user":"moath","app":"PHP","method":"POST","url":"\/apps\/cospend\/getProjects","message":"Division by zero at \/var\/www\/html\/custom_apps\/cospend\/controller\/pagecontroller.php#1594","userAgent":"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/73.0.3683.86 Safari\/537.36","version":"15.0.2.0"}
{"reqId":"45wtpviXAoZQnkEMFtFF","level":3,"time":"2019-04-07T14:20:52+00:00","remoteAddr":"172.31.0.2","user":"moath","app":"index","method":"POST","url":"\/apps\/cospend\/getProjects","message":{"Exception":"Exception","Message":"Could not json_encode due to invalid non UTF-8 characters in the array: array (\n 0 => \n array (\n 'name' => 'My project name',\n 'contact_email' => 'moath.m.zaghdad@gmail.com',\n 'id' => 'myProjectId',\n 'active_members' => \n array (\n 0 => \n array (\n 'activated' => true,\n 'name' => 'Amer',\n 'id' => 3,\n 'weight' => 1.0,\n ),\n 1 => \n array (\n 'activated' => true,\n 'name' => 'Mo\\'ath',\n 'id' => 2,\n 'weight' => 1.0,\n ),\n 2 => \n array (\n 'activated' => true,\n 'name' => 'Z',\n 'id' => 4,\n 'weight' => 0.0,\n ),\n ),\n 'members' => \n array (\n 0 => \n array (\n 'activated' => true,\n 'name' => 'Amer',\n 'id' => 3,\n 'weight' => 1.0,\n ),\n 1 => \n array (\n 'activated' => true,\n 'name' => 'Mo\\'ath',\n 'id' => 2,\n 'weight' => 1.0,\n ),\n 2 => \n array (\n 'activated' => true,\n 'name' => 'Z',\n 'id' => 4,\n 'weight' => 0.0,\n ),\n ),\n 'balance' => \n array (\n 3 => -20.0,\n 2 => 75.0,\n 4 => NAN,\n ),\n 'shares' => \n array (\n ),\n 'group_shares' => \n array (\n ),\n ),\n 1 => \n array (\n 'name' => 'My project name',\n 'contact_email' => 'moath.m.zaghdad@gmail.com',\n 'id' => 'pro',\n 'active_members' => \n array (\n 0 => \n array (\n 'activated' => true,\n 'name' => 'One',\n 'id' => 5,\n 'weight' => 1.0,\n ),\n 1 => \n array (\n 'activated' => true,\n 'name' => 'Two',\n 'id' => 6,\n 'weight' => 0.0,\n ),\n ),\n 'members' => \n array (\n 0 => \n array (\n 'activated' => true,\n 'name' => 'One',\n 'id' => 5,\n 'weight' => 1.0,\n ),\n 1 => \n array (\n 'activated' => true,\n 'name' => 'Two',\n 'id' => 6,\n 'weight' => 0.0,\n ),\n ),\n 'balance' => \n array (\n 5 => 0.0,\n 6 => 0.0,\n ),\n 'shares' => \n array (\n ),\n 'group_shares' => \n array (\n ),\n ),\n 2 => \n array (\n 'name' => 'My project name',\n 'contact_email' => 'moath.m.zaghdad@gmail.com',\n 'id' => 'H',\n 'active_members' => \n array (\n ),\n 'members' => \n array (\n ),\n 'balance' => \n array (\n ),\n 'shares' => \n array (\n ),\n 'group_shares' => \n array (\n ),\n ),\n 3 => \n array (\n 'name' => 'someproject',\n 'contact_email' => 'moath.m.zaghdad@gmail.com',\n 'id' => 'xyz',\n 'active_members' => \n array (\n 0 => \n array (\n 'activated' => true,\n 'name' => 'Amer',\n 'id' => 8,\n 'weight' => 1.0,\n ),\n 1 => \n array (\n 'activated' => true,\n 'name' => 'Moath',\n 'id' => 7,\n 'weight' => 1.0,\n ),\n ),\n 'members' => \n array (\n 0 => \n array (\n 'activated' => true,\n 'name' => 'Amer',\n 'id' => 8,\n 'weight' => 1.0,\n ),\n 1 => \n array (\n 'activated' => true,\n 'name' => 'Moath',\n 'id' => 7,\n 'weight' => 1.0,\n ),\n ),\n 'balance' => \n array (\n 8 => -20.0,\n 7 => 20.0,\n ),\n 'shares' => \n array (\n ),\n 'group_shares' => \n array (\n ),\n ),\n)","Code":0,"Trace":[{"file":"\/var\/www\/html\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":119,"function":"render","class":"OCP\\AppFramework\\Http\\JSONResponse","type":"->","args":[]},{"file":"\/var\/www\/html\/lib\/private\/AppFramework\/App.php","line":118,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Cospend\\Controller\\PageController"},"webGetProjects"]},{"file":"\/var\/www\/html\/lib\/private\/AppFramework\/Routing\/RouteActionHandler.php","line":47,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["PageController","webGetProjects",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"cospend.page.webGetProjects"}]},{"function":"__invoke","class":"OC\\AppFramework\\Routing\\RouteActionHandler","type":"->","args":[{"_route":"cospend.page.webGetProjects"}]},{"file":"\/var\/www\/html\/lib\/private\/Route\/Router.php","line":297,"function":"call_user_func","args":[{"__class__":"OC\\AppFramework\\Routing\\RouteActionHandler"},{"_route":"cospend.page.webGetProjects"}]},{"file":"\/var\/www\/html\/lib\/base.php","line":987,"function":"match","class":"OC\\Route\\Router","type":"->","args":["\/apps\/cospend\/getProjects"]},{"file":"\/var\/www\/html\/index.php","line":42,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"\/var\/www\/html\/lib\/public\/AppFramework\/Http\/JSONResponse.php","Line":71,"CustomMessage":"--"},"userAgent":"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/73.0.3683.86 Safari\/537.36","version":"15.0.2.0"}
I tried removing Cospend and reinstalling it but it didn't work.
Though the logs show that the error is on this line I think it's because it accepted a zero-weight on the first place.
I can create new projects and add members and bills, but when I refresh the page everything disappears and I got the same message Failed to get projects.