Fixed NPE on Java 9+ when check if an array type is accessible.
diff --git a/freemarker-core9/src/main/java/freemarker/core/_Java9Impl.java b/freemarker-core9/src/main/java/freemarker/core/_Java9Impl.java
index 700d801..1f5182a 100644
--- a/freemarker-core9/src/main/java/freemarker/core/_Java9Impl.java
+++ b/freemarker-core9/src/main/java/freemarker/core/_Java9Impl.java
@@ -39,7 +39,10 @@
     @Override
     public boolean isAccessibleAccordingToModuleExports(Class<?> accessedClass) {
         Module accessedModule = accessedClass.getModule();
-        Package accessedPackage = accessedClass.getPackage();
+        Package accessedPackage = accessedClass.getPackage(); // null for arrays!
+        if (accessedPackage == null) {
+            return true;
+        }
 
         return accessedModule.isExported(accessedPackage.getName(), ACCESSOR_MODULE);
     }
diff --git a/freemarker-core9/src/test/java/freemarker/core/Java9ImplTest.java b/freemarker-core9/src/test/java/freemarker/core/Java9ImplTest.java
index 35cd1a4..9612d5b 100644
--- a/freemarker-core9/src/test/java/freemarker/core/Java9ImplTest.java
+++ b/freemarker-core9/src/test/java/freemarker/core/Java9ImplTest.java
@@ -41,6 +41,8 @@
         assertNotNull(_JavaVersions.JAVA_9);
         assertTrue(_JavaVersions.JAVA_9.isAccessibleAccordingToModuleExports(Document.class));
         assertFalse(_JavaVersions.JAVA_9.isAccessibleAccordingToModuleExports(getSomeInternalClass()));
+        assertTrue(_JavaVersions.JAVA_9.isAccessibleAccordingToModuleExports(String[].class));
+        assertTrue(_JavaVersions.JAVA_9.isAccessibleAccordingToModuleExports(int.class));
     }
 
     private static Class<?> getSomeInternalClass() throws SAXException, IOException, ParserConfigurationException,