[jboss-jira] [JBoss JIRA] Commented: (JBRULES-2912) Planner: Divide by zero exception on timeMillisSpend on a fast computer

Geoffrey De Smet (JIRA) jira-events at lists.jboss.org
Wed Mar 2 02:47:05 EST 2011


    [ https://issues.jboss.org/browse/JBRULES-2912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12585345#comment-12585345 ] 

Geoffrey De Smet commented on JBRULES-2912:
-------------------------------------------

A night sleep brings wisdom:

I fixed it like this now:

        if (timeMillisSpend == 0L) {
            // Avoid divide by zero exception on a fast CPU
            timeMillisSpend = 1L;
        }
        long averageCalculateCountPerSecond = localSearchSolverScope.getCalculateCount() * 1000L / timeMillisSpend;

If it does a 77 calculations in 0 millisecond, we presume it took 1 millisecond, which makes 77000 calculations per second on average.
Note: some OS's round their system.millis to 15 ms (most notably winblows XP), so I wouldn't thrust the average calculations per second on any program that run less then 2 minutes.

> Planner: Divide by zero exception on timeMillisSpend on a fast computer
> -----------------------------------------------------------------------
>
>                 Key: JBRULES-2912
>                 URL: https://issues.jboss.org/browse/JBRULES-2912
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-planner
>    Affects Versions: 5.1.1.FINAL
>         Environment: Windows, Intel desktop-class, Java6 (bug is not environment-specific)
>            Reporter: David Faulkner
>            Assignee: Geoffrey De Smet
>              Labels: bug
>             Fix For: 5.2.0.M2
>
>
> In org.drools.planner.core.localsearch.DefaultLocalSearchSolver::solvingEnded, there is potentially a divide by zero that occurs on the line:
> long averageCalculateCountPerSecond = localSearchSolverScope.getCalculateCount() * 1000L / timeMillisSpend;
> if timeMillisSpend is zero. Although in theory the likelihood of this occurring in practically nothing, we have actually seen it occur on a POC project with long running Planner jobs. An appropriate guard should be added to this calculation to ensure that this error cannot occur.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list