-1

When I did jdprscn for my java Project I found following warning message:

class com/mes/mvc/mes/ApiLogRecord uses deprecated method java/math/BigDecimal::divide(Ljava/math/BigDecimal;I)Ljava/math/BigDecimal; 

command used to scan jdprscan:

/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/jdeprscan --class-path `mvn -f pom.xml -q exec:exec -Dexec.executable=echo -Dexec.args="%classpath"` target/classes > ~/Downloads/bpDeps.txt

actual method where this error coming from is :

/**
     * Convert duration milliseconds to seconds suitable for displaying.
     *
     * 246 milliseconds -> '0.246 secs'
     */
    public String getDurationForDisplay() {
        BigDecimal duration = new BigDecimal("" + requestDuration).setScale(3);
        duration = duration.divide(new BigDecimal("1000"), BigDecimal.ROUND_HALF_UP);
        return "" + duration + " secs";
    }

I have to fix this issue, anyone here can guide me.

Hari Sheen
  • 13
  • 3
  • 1
    **Read the documentation**, i.e. the javadoc of [`BigDecimal.divide​(BigDecimal divisor, int roundingMode)`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal,int)), which says: *"**Deprecated.** The method [`divide(BigDecimal, RoundingMode)`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal,java.math.RoundingMode)) should be used in preference to this legacy method."* – Andreas Apr 09 '19 at 15:53
  • So, replace [`BigDecimal.ROUND_HALF_UP`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html#field.summary) with [`RoundingMode.HALF_UP`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/RoundingMode.html#enum.constant.summary). – Andreas Apr 09 '19 at 15:54
  • public String getDurationForDisplay() { BigDecimal duration = new BigDecimal("" + requestDuration).setScale(3); duration = duration.divide(BigDecimal.valueOf(1000), RoundingMode.HALF_UP); return "" + duration + " secs"; } . I think in this way right ?? – Hari Sheen Apr 09 '19 at 16:01

1 Answers1

0

According to documentation: https://docs.oracle.com/javase/9/docs/api/java/math/BigDecimal.html#divide-java.math.BigDecimal-int-

Deprecated. The method divide(BigDecimal, RoundingMode) should be used in preference to this legacy method.

Naya
  • 850
  • 6
  • 19