From 3c086280546719f539a9dcfff042c6d4432a0b77 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Fri, 21 Aug 2015 17:47:43 -0400 Subject: [PATCH] enable checker framework. thanks @renatoathaydes ! Inspired by https://github.com/renatoathaydes/checker-maven-demo which I found at https://github.com/typetools/checker-framework/issues/445 --- my-app/pom.xml | 50 +++++++++++++++++++ .../src/main/java/com/mycompany/app/App.java | 16 ++++++ 2 files changed, 66 insertions(+) diff --git a/my-app/pom.xml b/my-app/pom.xml index d4dcaa7d4..d9982043e 100644 --- a/my-app/pom.xml +++ b/my-app/pom.xml @@ -7,6 +7,12 @@ 1.0-SNAPSHOT my-app http://maven.apache.org + + + + ${org.checkerframework:jdk8:jar} + + junit @@ -14,6 +20,21 @@ 3.8.1 test + + org.checkerframework + checker + 1.9.4 + + + org.checkerframework + checker-qual + 1.9.4 + + + org.checkerframework + jdk8 + 1.9.4 + @@ -55,6 +76,35 @@ + + + org.apache.maven.plugins + maven-dependency-plugin + 2.3 + + + + properties + + + + + + maven-compiler-plugin + + 1.8 + 1.8 + true + + + org.checkerframework.checker.nullness.NullnessChecker + + + + -Xbootclasspath/p:${annotatedJdk} + + + diff --git a/my-app/src/main/java/com/mycompany/app/App.java b/my-app/src/main/java/com/mycompany/app/App.java index 77cf3e055..826f7770e 100644 --- a/my-app/src/main/java/com/mycompany/app/App.java +++ b/my-app/src/main/java/com/mycompany/app/App.java @@ -9,5 +9,21 @@ public class App public static void main( String[] args ) { System.out.println( "Hello World!" ); + + System.out.println("A NullPointerException is a drag..."); + Object myObject = null; + /** + * Checker prevents this from compiling... + */ +// System.out.println("myObject: " + myObject.toString()); + /** + * ... which is simply fantastic. It shows: + * + * error: [dereference.of.nullable] dereference of possibly-null + * reference myObject + * + * http://checkerframework.org + */ + System.out.println("... but thankfully, Checker has our back: http://checkerframework.org"); } }