I've been using <compass:scan/> in my spring config to scan a whole package for Compass-annotated classes. When Compass encounters a class which does not have annotations, I get a NPE from JavassistClassMetaData. If I narrow the scan to match only that class, then I still get the exception.
If, however, I use <compass:class/> to specify the class, I get a more useful "no annotations found"-type exception.
Stack trace as follows
Caused by: java.lang.NullPointerException
at org.compass.core.config.binding.metadata.JavassistClassMetaData.hasAnnotation(JavassistClassMetaData.java:96)
at org.compass.annotations.config.binding.AnnotationsMappingBinding.isApplicable(AnnotationsMappingBinding.java:97)
at org.compass.core.config.binding.AbstractClassMetaDataMappingBinding.doAddInputStream(AbstractClassMetaDataMappingBinding.java:35)
at org.compass.core.config.binding.AbstractInputStreamMappingBinding.internalAddInputStream(AbstractInputStreamMappingBinding.java:1
92)
at org.compass.core.config.binding.AbstractInputStreamMappingBinding.addInputStream(AbstractInputStreamMappingBinding.java:174)
at org.compass.core.config.CompassMappingBinding.addInputStream(CompassMappingBinding.java:185)
at org.compass.core.config.CompassConfiguration.addScan(CompassConfiguration.java:507)
at org.compass.core.config.builder.SchemaConfigurationBuilder.bindMappings(SchemaConfigurationBuilder.java:714)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.compass.core.config.builder.SchemaConfigurationBuilder.processCompass(SchemaConfigurationBuilder.java:85)