diff --git a/pmd-java/src/main/resources/category/java/performance.xml b/pmd-java/src/main/resources/category/java/performance.xml index 576036af58..c65cda4f93 100644 --- a/pmd-java/src/main/resources/category/java/performance.xml +++ b/pmd-java/src/main/resources/category/java/performance.xml @@ -115,27 +115,29 @@ public class Test { - Problem: A Calendar is a heavyweight object and expensive to create. - Solution: Use 'new Date()', Java 8+ java.time.[Local/Zoned]DateTime.now() or joda time '[Local]DateTime.now()'. + +Problem: A Calendar is a heavyweight object and expensive to create. + +Solution: Use `new Date()`, Java 8+ `java.time.LocalDateTime.now()` or `ZonedDateTime.now()`. 2 - + 2 and ../PrimarySuffix[last()-1][@Image = 'getTime' or @Image='getTimeInMillis']] | //Block/BlockStatement//Expression/PrimaryExpression/ -PrimaryPrefix/Name[typeIs('java.util.Calendar') and (ends-with(@Image,'.getTime') or ends-with(@Image,'.getTimeInMillis'))] +PrimaryPrefix/Name[pmd-java:typeIs('java.util.Calendar') and (ends-with(@Image,'.getTime') or ends-with(@Image,'.getTimeInMillis'))] | -//ClassOrInterfaceType[typeIs('org.joda.time.DateTime') or typeIs('org.joda.time.LocalDateTime')][../Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name[ends-with(@Image, 'Calendar.getInstance')]] - ]]> +//ClassOrInterfaceType[pmd-java:typeIs('org.joda.time.DateTime') or pmd-java:typeIs('org.joda.time.LocalDateTime')][../Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name[ends-with(@Image, 'Calendar.getInstance')]] + ]]> diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/AvoidCalendarDateCreation.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/AvoidCalendarDateCreation.xml index 447f3b1086..f779dead24 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/AvoidCalendarDateCreation.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/AvoidCalendarDateCreation.xml @@ -1,8 +1,9 @@ + xmlns="http://pmd.sourceforge.net/rule-tests" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://pmd.sourceforge.net/rule-tests http://pmd.sourceforge.net/rule-tests_1_0_0.xsd"> + violation: [Gregorian]Calendar.getInstance().getTime() 4 @@ -13,18 +14,18 @@ import java.util.Date; import java.util.GregorianCalendar; public class Foo { - void foo() { - Date now = Calendar.getInstance().getTime(); - setDate(Calendar.getInstance().getTime()); - setDate(GregorianCalendar.getInstance().getTime()); + void foo() { + Date now = Calendar.getInstance().getTime(); + setDate(Calendar.getInstance().getTime()); + setDate(GregorianCalendar.getInstance().getTime()); - Calendar cal = Calendar.getInstance(); - Date now2 = cal.getTime(); - } - private void setDate(Date when){ - } + Calendar cal = Calendar.getInstance(); + Date now2 = cal.getTime(); + } + private void setDate(Date when){ + } } - ]]> + ]]> @@ -37,12 +38,12 @@ import java.util.Calendar; import java.util.GregorianCalendar; public class Foo { - void foo() { - DateTime nowDT1 = new DateTime(GregorianCalendar.getInstance()); - DateTime nowDT2 = new DateTime(Calendar.getInstance()); - } + void foo() { + DateTime nowDT1 = new DateTime(GregorianCalendar.getInstance()); + DateTime nowDT2 = new DateTime(Calendar.getInstance()); + } } - ]]> + ]]> @@ -53,12 +54,12 @@ public class Foo { import java.util.Calendar; public class Foo { - void foo() { - long time = Calendar.getInstance().getTimeInMillis(); - String timeStr = Long.toString(Calendar.getInstance().getTimeInMillis()); - } + void foo() { + long time = Calendar.getInstance().getTimeInMillis(); + String timeStr = Long.toString(Calendar.getInstance().getTimeInMillis()); + } } - ]]> + ]]> @@ -69,14 +70,14 @@ public class Foo { import java.util.Calendar; public class Foo { - void foo() { - long time1 = 0; - Calendar cal = Calendar.getInstance(); - long time2 = cal.getTimeInMillis(); - time1 = cal.getTimeInMillis(); - } + void foo() { + long time1 = 0; + Calendar cal = Calendar.getInstance(); + long time2 = cal.getTimeInMillis(); + time1 = cal.getTimeInMillis(); + } } - ]]> + ]]> @@ -87,15 +88,12 @@ import java.util.Calendar; import java.util.Date; public class Foo { - void foo() { - int warmestMonth = Calendar.getInstance().AUGUST; - long time = System.currentTimeMillis(); - Date now = new Date(); - } + void foo() { + int warmestMonth = Calendar.getInstance().AUGUST; + long time = System.currentTimeMillis(); + Date now = new Date(); + } } ]]> - - -