{
  "_class" : "io.jenkins.plugins.analysis.core.restapi.ReportApi",
  "issues" : [
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "CollaborationAwareMessageBusAdapter.java",
      "category" : "STYLE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Actors/src/main/java/it/tidalwave/actor/impl/CollaborationAwareMessageBusAdapter.java",
      "fingerprint" : "d2d09f575203d58ca6dc11a97fe1ab2f",
      "lineEnd" : 126,
      "lineStart" : 126,
      "message" : "it.tidalwave.actor.impl.CollaborationAwareMessageBusAdapter.registerCollaborationListener(Method) uses the same code for two branches",
      "moduleName" : "TheseFoolishThings :: Actors",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.actor.impl",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "CollaborationAwareMessageBusAdapter.java(126,0): DB_DUPLICATE_BRANCHES: STYLE: it.tidalwave.actor.impl.CollaborationAwareMessageBusAdapter.registerCollaborationListener(Method) uses the same code for two branches",
      "type" : "DB_DUPLICATE_BRANCHES"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "ExecutorWithPriority.java",
      "category" : "PERFORMANCE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Actors/src/main/java/it/tidalwave/actor/impl/ExecutorWithPriority.java",
      "fingerprint" : "47f5fabdcbbf82f7cbc1e7f1edd28992",
      "lineEnd" : 72,
      "lineStart" : 72,
      "message" : "The class it.tidalwave.actor.impl.ExecutorWithPriority$2 could be refactored into a named _static_ inner class",
      "moduleName" : "TheseFoolishThings :: Actors",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.actor.impl",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "ExecutorWithPriority.java(72,0): SIC_INNER_SHOULD_BE_STATIC_ANON: PERFORMANCE: The class it.tidalwave.actor.impl.ExecutorWithPriority$2 could be refactored into a named _static_ inner class",
      "type" : "SIC_INNER_SHOULD_BE_STATIC_ANON"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "ExecutorWithPriority.java",
      "category" : "PERFORMANCE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Actors/src/main/java/it/tidalwave/actor/impl/ExecutorWithPriority.java",
      "fingerprint" : "37846ee1c653c72d8b3a8140d78fb389",
      "lineEnd" : 103,
      "lineStart" : 103,
      "message" : "The class it.tidalwave.actor.impl.ExecutorWithPriority$3 could be refactored into a named _static_ inner class",
      "moduleName" : "TheseFoolishThings :: Actors",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.actor.impl",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "ExecutorWithPriority.java(103,0): SIC_INNER_SHOULD_BE_STATIC_ANON: PERFORMANCE: The class it.tidalwave.actor.impl.ExecutorWithPriority$3 could be refactored into a named _static_ inner class",
      "type" : "SIC_INNER_SHOULD_BE_STATIC_ANON"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SimpleMessageBus.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/MessageBus/src/main/java/it/tidalwave/messagebus/spi/SimpleMessageBus.java",
      "fingerprint" : "dedc8406d099b7891eac4112cb475dfa",
      "lineEnd" : 144,
      "lineStart" : 144,
      "message" : "Adding elements of an entry set may fail due to reuse of Map.Entry object in it.tidalwave.messagebus.spi.SimpleMessageBus.dispatchMessage(Class, Object)",
      "moduleName" : "TheseFoolishThings :: MessageBus",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.messagebus.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "SimpleMessageBus.java(144,0): DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS: BAD_PRACTICE: Adding elements of an entry set may fail due to reuse of Map.Entry object in it.tidalwave.messagebus.spi.SimpleMessageBus.dispatchMessage(Class, Object)",
      "type" : "DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SimpleMessageBus.java",
      "category" : "MALICIOUS_CODE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/MessageBus/src/main/java/it/tidalwave/messagebus/spi/SimpleMessageBus.java",
      "fingerprint" : "537912b54c1a7f38fe0e385eb369277c",
      "lineEnd" : 88,
      "lineStart" : 88,
      "message" : "Overridable method initialize is called from constructor new it.tidalwave.messagebus.spi.SimpleMessageBus(Executor, MessageDelivery).",
      "moduleName" : "TheseFoolishThings :: MessageBus",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.messagebus.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "SimpleMessageBus.java(88,0): MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR: MALICIOUS_CODE: Overridable method initialize is called from constructor new it.tidalwave.messagebus.spi.SimpleMessageBus(Executor, MessageDelivery).",
      "type" : "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "MessageBusAdapterFactory.java",
      "category" : "MALICIOUS_CODE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringMessageBus/src/main/java/it/tidalwave/messagebus/impl/spring/MessageBusAdapterFactory.java",
      "fingerprint" : "913a23124b07942dd9e763261ca3fc84",
      "lineEnd" : 72,
      "lineStart" : 72,
      "message" : "Invocation of reflect.Method.setAccessible(boolean), which should be invoked from within a doPrivileged block, in new it.tidalwave.messagebus.impl.spring.MessageBusAdapterFactory$MessageBusListenerAdapter(MessageBusAdapterFactory, Object, Method, Class)",
      "moduleName" : "TheseFoolishThings :: MessageBus :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.messagebus.impl.spring",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "MessageBusAdapterFactory.java(72,0): DP_DO_INSIDE_DO_PRIVILEGED: MALICIOUS_CODE: Invocation of reflect.Method.setAccessible(boolean), which should be invoked from within a doPrivileged block, in new it.tidalwave.messagebus.impl.spring.MessageBusAdapterFactory$MessageBusListenerAdapter(MessageBusAdapterFactory, Object, Method, Class)",
      "type" : "DP_DO_INSIDE_DO_PRIVILEGED"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SpringSimpleMessageSubscriberSupport.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringMessageBus/src/main/java/it/tidalwave/messagebus/impl/spring/SpringSimpleMessageSubscriberSupport.java",
      "fingerprint" : "fd0baca0ed7888da3db312c0f0cdede1",
      "lineEnd" : 46,
      "lineStart" : 46,
      "message" : "Exception thrown in class it.tidalwave.messagebus.impl.spring.SpringSimpleMessageSubscriberSupport at new it.tidalwave.messagebus.impl.spring.SpringSimpleMessageSubscriberSupport(BeanFactory, Object) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "moduleName" : "TheseFoolishThings :: MessageBus :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.messagebus.impl.spring",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "SpringSimpleMessageSubscriberSupport.java(46,0): CT_CONSTRUCTOR_THROW: BAD_PRACTICE: Exception thrown in class it.tidalwave.messagebus.impl.spring.SpringSimpleMessageSubscriberSupport at new it.tidalwave.messagebus.impl.spring.SpringSimpleMessageSubscriberSupport(BeanFactory, Object) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "type" : "CT_CONSTRUCTOR_THROW"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SpringSimpleMessageSubscriberAspect.aj",
      "category" : "MALICIOUS_CODE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringMessageBus/src/main/aspect/it/tidalwave/messagebus/spi/spring/SpringSimpleMessageSubscriberAspect.aj",
      "fingerprint" : "fe4547505a058d6516e74e86fb5fc29d",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "it.tidalwave.messagebus.spi.spring.SpringSimpleMessageSubscriberAspect.ajc$perSingletonInstance isn't final but should be",
      "moduleName" : "TheseFoolishThings :: MessageBus :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.messagebus.spi.spring",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "SpringSimpleMessageSubscriberAspect.aj(0,0): MS_SHOULD_BE_FINAL: MALICIOUS_CODE: it.tidalwave.messagebus.spi.spring.SpringSimpleMessageSubscriberAspect.ajc$perSingletonInstance isn't final but should be",
      "type" : "MS_SHOULD_BE_FINAL"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SpringSimpleMessageSubscriberAspect.aj",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringMessageBus/src/main/aspect/it/tidalwave/messagebus/spi/spring/SpringSimpleMessageSubscriberAspect.aj",
      "fingerprint" : "190c7e2614b7ab1790ecbe40be5e74fd",
      "lineEnd" : 1,
      "lineStart" : 1,
      "message" : "Primitive field it.tidalwave.messagebus.spi.spring.SpringSimpleMessageSubscriberAspect.ajc$perSingletonInstance is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.",
      "moduleName" : "TheseFoolishThings :: MessageBus :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.messagebus.spi.spring",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "SpringSimpleMessageSubscriberAspect.aj(1,0): PA_PUBLIC_PRIMITIVE_ATTRIBUTE: BAD_PRACTICE: Primitive field it.tidalwave.messagebus.spi.spring.SpringSimpleMessageSubscriberAspect.ajc$perSingletonInstance is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.",
      "type" : "PA_PUBLIC_PRIMITIVE_ATTRIBUTE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "AnnotationSpringSystemRoleFactory.java",
      "category" : "MALICIOUS_CODE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringRoles/src/main/java/it/tidalwave/role/spring/spi/AnnotationSpringSystemRoleFactory.java",
      "fingerprint" : "e7d9cab325cb9fff901efd6a16082e70",
      "lineEnd" : 47,
      "lineStart" : 47,
      "message" : "Overridable method ajc$afterReturning$org_springframework_beans_factory_aspectj_AbstractDependencyInjectionAspect$2$1ea6722c is called from constructor new it.tidalwave.role.spring.spi.AnnotationSpringSystemRoleFactory().",
      "moduleName" : "TheseFoolishThings :: Roles :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.role.spring.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "AnnotationSpringSystemRoleFactory.java(47,0): MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR: MALICIOUS_CODE: Overridable method ajc$afterReturning$org_springframework_beans_factory_aspectj_AbstractDependencyInjectionAspect$2$1ea6722c is called from constructor new it.tidalwave.role.spring.spi.AnnotationSpringSystemRoleFactory().",
      "type" : "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "AnnotationSpringSystemRoleFactory.java",
      "category" : "MALICIOUS_CODE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringRoles/src/main/java/it/tidalwave/role/spring/spi/AnnotationSpringSystemRoleFactory.java",
      "fingerprint" : "f2d0c80fd259722b725cb65818bf48ea",
      "lineEnd" : 47,
      "lineStart" : 47,
      "message" : "Overridable method ajc$before$org_springframework_beans_factory_aspectj_AbstractDependencyInjectionAspect$1$e854fa65 is called from constructor new it.tidalwave.role.spring.spi.AnnotationSpringSystemRoleFactory().",
      "moduleName" : "TheseFoolishThings :: Roles :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.role.spring.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "AnnotationSpringSystemRoleFactory.java(47,0): MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR: MALICIOUS_CODE: Overridable method ajc$before$org_springframework_beans_factory_aspectj_AbstractDependencyInjectionAspect$1$e854fa65 is called from constructor new it.tidalwave.role.spring.spi.AnnotationSpringSystemRoleFactory().",
      "type" : "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "AnnotationSpringSystemRoleFactory.java",
      "category" : "STYLE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringRoles/src/main/java/it/tidalwave/role/spring/spi/AnnotationSpringSystemRoleFactory.java",
      "fingerprint" : "a1a0838e5f8a8dd2567bb67e281de1b1",
      "lineEnd" : 47,
      "lineStart" : 47,
      "message" : "Redundant nullcheck of this, which is known to be non-null in new it.tidalwave.role.spring.spi.AnnotationSpringSystemRoleFactory()",
      "moduleName" : "TheseFoolishThings :: Roles :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.role.spring.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "AnnotationSpringSystemRoleFactory.java(47,0): RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE: STYLE: Redundant nullcheck of this, which is known to be non-null in new it.tidalwave.role.spring.spi.AnnotationSpringSystemRoleFactory()",
      "type" : "RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DciContextWithAutoThreadBindingAspect.java",
      "category" : "MALICIOUS_CODE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringRoles/src/main/java/it/tidalwave/role/spring/spi/DciContextWithAutoThreadBindingAspect.java",
      "fingerprint" : "8221265e527a9496b701f4e3820e171",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "it.tidalwave.role.spring.spi.DciContextWithAutoThreadBindingAspect.ajc$perSingletonInstance isn't final but should be",
      "moduleName" : "TheseFoolishThings :: Roles :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.role.spring.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DciContextWithAutoThreadBindingAspect.java(0,0): MS_SHOULD_BE_FINAL: MALICIOUS_CODE: it.tidalwave.role.spring.spi.DciContextWithAutoThreadBindingAspect.ajc$perSingletonInstance isn't final but should be",
      "type" : "MS_SHOULD_BE_FINAL"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DciContextWithAutoThreadBindingAspect.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringRoles/src/main/java/it/tidalwave/role/spring/spi/DciContextWithAutoThreadBindingAspect.java",
      "fingerprint" : "c90993cfb0760641904d3060662c815c",
      "lineEnd" : 1,
      "lineStart" : 1,
      "message" : "Primitive field it.tidalwave.role.spring.spi.DciContextWithAutoThreadBindingAspect.ajc$perSingletonInstance is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.",
      "moduleName" : "TheseFoolishThings :: Roles :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.role.spring.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DciContextWithAutoThreadBindingAspect.java(1,0): PA_PUBLIC_PRIMITIVE_ATTRIBUTE: BAD_PRACTICE: Primitive field it.tidalwave.role.spring.spi.DciContextWithAutoThreadBindingAspect.ajc$perSingletonInstance is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.",
      "type" : "PA_PUBLIC_PRIMITIVE_ATTRIBUTE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DciContextWithAutoThreadBindingAspect.java",
      "category" : "PERFORMANCE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringRoles/src/main/java/it/tidalwave/role/spring/spi/DciContextWithAutoThreadBindingAspect.java",
      "fingerprint" : "28d49b7dd74014600bc6b0c1c2d7abc2",
      "lineEnd" : 68,
      "lineStart" : 68,
      "message" : "The class it.tidalwave.role.spring.spi.DciContextWithAutoThreadBindingAspect$1 could be refactored into a named _static_ inner class",
      "moduleName" : "TheseFoolishThings :: Roles :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.role.spring.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DciContextWithAutoThreadBindingAspect.java(68,0): SIC_INNER_SHOULD_BE_STATIC_ANON: PERFORMANCE: The class it.tidalwave.role.spring.spi.DciContextWithAutoThreadBindingAspect$1 could be refactored into a named _static_ inner class",
      "type" : "SIC_INNER_SHOULD_BE_STATIC_ANON"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "ClassScanner.java",
      "category" : "STYLE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/SpringRoles/src/main/java/it/tidalwave/util/spring/ClassScanner.java",
      "fingerprint" : "1312ec24ca5bcfe91a21c6b3696bf0a4",
      "lineEnd" : 70,
      "lineStart" : 70,
      "message" : "Possible null pointer dereference in it.tidalwave.util.spring.ClassScanner.findClasses() due to return value of called method",
      "moduleName" : "TheseFoolishThings :: Roles :: Spring",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spring",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "ClassScanner.java(70,0): NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE: STYLE: Possible null pointer dereference in it.tidalwave.util.spring.ClassScanner.findClasses() due to return value of called method",
      "type" : "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "BaseTestHelper.java",
      "category" : "STYLE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/TestUtilities/src/main/java/it/tidalwave/util/test/BaseTestHelper.java",
      "fingerprint" : "1421fd46386451eca93ce92d49d3e265",
      "lineEnd" : 116,
      "lineStart" : 116,
      "message" : "Possible null pointer dereference in it.tidalwave.util.test.BaseTestHelper.testResourceFor(String) due to return value of called method",
      "moduleName" : "TheseFoolishThings :: Test Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.test",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "BaseTestHelper.java(116,0): NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE: STYLE: Possible null pointer dereference in it.tidalwave.util.test.BaseTestHelper.testResourceFor(String) due to return value of called method",
      "type" : "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "ReflectionUtils.java",
      "category" : "MALICIOUS_CODE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/ReflectionUtils.java",
      "fingerprint" : "77d808d30e81a0e03d34e00d01193a5b",
      "lineEnd" : 187,
      "lineStart" : 187,
      "message" : "Invocation of reflect.Field.setAccessible(boolean), which should be invoked from within a doPrivileged block, in it.tidalwave.util.ReflectionUtils.injectDependencies(Object, Map)",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "ReflectionUtils.java(187,0): DP_DO_INSIDE_DO_PRIVILEGED: MALICIOUS_CODE: Invocation of reflect.Field.setAccessible(boolean), which should be invoked from within a doPrivileged block, in it.tidalwave.util.ReflectionUtils.injectDependencies(Object, Map)",
      "type" : "DP_DO_INSIDE_DO_PRIVILEGED"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "AsDelegate.java",
      "category" : "MALICIOUS_CODE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/impl/AsDelegate.java",
      "fingerprint" : "2e4096fe497b49de72e1a6ff76d839d0",
      "lineEnd" : 89,
      "lineStart" : 89,
      "message" : "Overridable method createRoleFactory is called from constructor new it.tidalwave.util.impl.AsDelegate(Object, Collection).",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.impl",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "AsDelegate.java(89,0): MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR: MALICIOUS_CODE: Overridable method createRoleFactory is called from constructor new it.tidalwave.util.impl.AsDelegate(Object, Collection).",
      "type" : "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultContextManager.java",
      "category" : "PERFORMANCE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/impl/DefaultContextManager.java",
      "fingerprint" : "254fb31b084d3eb6a888475056c4b92f",
      "lineEnd" : 55,
      "lineStart" : 55,
      "message" : "The class it.tidalwave.util.impl.DefaultContextManager$1 could be refactored into a named _static_ inner class",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.impl",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultContextManager.java(55,0): SIC_INNER_SHOULD_BE_STATIC_ANON: PERFORMANCE: The class it.tidalwave.util.impl.DefaultContextManager$1 could be refactored into a named _static_ inner class",
      "type" : "SIC_INNER_SHOULD_BE_STATIC_ANON"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultPreferencesHandler.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/impl/DefaultPreferencesHandler.java",
      "fingerprint" : "a0c539ac1e34b5706cb2556060fb8dfd",
      "lineEnd" : 84,
      "lineStart" : 84,
      "message" : "Exception thrown in class it.tidalwave.util.impl.DefaultPreferencesHandler at new it.tidalwave.util.impl.DefaultPreferencesHandler() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.impl",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultPreferencesHandler.java(84,0): CT_CONSTRUCTOR_THROW: BAD_PRACTICE: Exception thrown in class it.tidalwave.util.impl.DefaultPreferencesHandler at new it.tidalwave.util.impl.DefaultPreferencesHandler() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "type" : "CT_CONSTRUCTOR_THROW"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "MappingFinder.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/impl/finder/MappingFinder.java",
      "fingerprint" : "83aaacf49bbb74ec6fd2f7f70fd09f11",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "Class it.tidalwave.util.impl.finder.MappingFinder defines non-transient non-serializable instance field mapper",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.impl.finder",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "MappingFinder.java(0,0): SE_BAD_FIELD: BAD_PRACTICE: Class it.tidalwave.util.impl.finder.MappingFinder defines non-transient non-serializable instance field mapper",
      "type" : "SE_BAD_FIELD"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "ProviderFinder.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/impl/finder/ProviderFinder.java",
      "fingerprint" : "78620ceffac5909bda9cff745c7c2707",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "Class it.tidalwave.util.impl.finder.ProviderFinder defines non-transient non-serializable instance field supplier",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.impl.finder",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "ProviderFinder.java(0,0): SE_BAD_FIELD: BAD_PRACTICE: Class it.tidalwave.util.impl.finder.ProviderFinder defines non-transient non-serializable instance field supplier",
      "type" : "SE_BAD_FIELD"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SupplierFinder.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/impl/finder/SupplierFinder.java",
      "fingerprint" : "d7ee15815c14bcc4a339b6f44da62359",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "Class it.tidalwave.util.impl.finder.SupplierFinder defines non-transient non-serializable instance field supplier",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.impl.finder",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "SupplierFinder.java(0,0): SE_BAD_FIELD: BAD_PRACTICE: Class it.tidalwave.util.impl.finder.SupplierFinder defines non-transient non-serializable instance field supplier",
      "type" : "SE_BAD_FIELD"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultProcessExecutor.java",
      "category" : "I18N",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
      "fingerprint" : "22a61a349131452fc20a230179a88cee",
      "lineEnd" : 464,
      "lineStart" : 464,
      "message" : "Use of non-localized String.toUpperCase() or String.toLowerCase() in it.tidalwave.util.spi.DefaultProcessExecutor.isWindows()",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultProcessExecutor.java(464,0): DM_CONVERT_CASE: I18N: Use of non-localized String.toUpperCase() or String.toLowerCase() in it.tidalwave.util.spi.DefaultProcessExecutor.isWindows()",
      "type" : "DM_CONVERT_CASE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultProcessExecutor.java",
      "category" : "I18N",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
      "fingerprint" : "546fcec2f3fc51e896f3a93765e3b9a9",
      "lineEnd" : 417,
      "lineStart" : 417,
      "message" : "Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor.start(): new java.io.PrintWriter(OutputStream, boolean)",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultProcessExecutor.java(417,0): DM_DEFAULT_ENCODING: I18N: Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor.start(): new java.io.PrintWriter(OutputStream, boolean)",
      "type" : "DM_DEFAULT_ENCODING"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultProcessExecutor.java",
      "category" : "STYLE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
      "fingerprint" : "cf72bf19c353afd0d889c0f512a33b98",
      "lineEnd" : 440,
      "lineStart" : 440,
      "message" : "Useless control flow in it.tidalwave.util.spi.DefaultProcessExecutor.waitForCompletion()",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultProcessExecutor.java(440,0): UCF_USELESS_CONTROL_FLOW: STYLE: Useless control flow in it.tidalwave.util.spi.DefaultProcessExecutor.waitForCompletion()",
      "type" : "UCF_USELESS_CONTROL_FLOW"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultProcessExecutor.java",
      "category" : "I18N",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
      "fingerprint" : "282979a34723be2e2509ea3ef5ab71c6",
      "lineEnd" : 276,
      "lineStart" : 276,
      "message" : "Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read(): new java.io.InputStreamReader(InputStream)",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultProcessExecutor.java(276,0): DM_DEFAULT_ENCODING: I18N: Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read(): new java.io.InputStreamReader(InputStream)",
      "type" : "DM_DEFAULT_ENCODING"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultProcessExecutor.java",
      "category" : "MT_CORRECTNESS",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
      "fingerprint" : "a4ff01756de9ea4b0bf187d6935c6579",
      "lineEnd" : 316,
      "lineStart" : 316,
      "message" : "Naked notify in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read()",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultProcessExecutor.java(316,0): NN_NAKED_NOTIFY: MT_CORRECTNESS: Naked notify in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read()",
      "type" : "NN_NAKED_NOTIFY"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultProcessExecutor.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
      "fingerprint" : "f53c819baaf66f7ccd0135a0b88105ee",
      "lineEnd" : 154,
      "lineStart" : 154,
      "message" : "Exceptional return value of java.util.concurrent.ExecutorService.submit(Runnable) ignored in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.start()",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultProcessExecutor.java(154,0): RV_RETURN_VALUE_IGNORED_BAD_PRACTICE: BAD_PRACTICE: Exceptional return value of java.util.concurrent.ExecutorService.submit(Runnable) ignored in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.start()",
      "type" : "RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultProcessExecutor.java",
      "category" : "MT_CORRECTNESS",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
      "fingerprint" : "45757508fede6ce813179388b36a1e30",
      "lineEnd" : 249,
      "lineStart" : 249,
      "message" : "Unconditional wait in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.waitFor(String)",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultProcessExecutor.java(249,0): UW_UNCOND_WAIT: MT_CORRECTNESS: Unconditional wait in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.waitFor(String)",
      "type" : "UW_UNCOND_WAIT"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "HierarchicFinderSupport.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/HierarchicFinderSupport.java",
      "fingerprint" : "45ae0ac40fa144e84504a769f4190259",
      "lineEnd" : 119,
      "lineStart" : 119,
      "message" : "Exception thrown in class it.tidalwave.util.spi.HierarchicFinderSupport at new it.tidalwave.util.spi.HierarchicFinderSupport() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "HierarchicFinderSupport.java(119,0): CT_CONSTRUCTOR_THROW: BAD_PRACTICE: Exception thrown in class it.tidalwave.util.spi.HierarchicFinderSupport at new it.tidalwave.util.spi.HierarchicFinderSupport() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "type" : "CT_CONSTRUCTOR_THROW"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "HierarchicFinderSupport.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/HierarchicFinderSupport.java",
      "fingerprint" : "9f313e4999f382f2f216213fe663a94c",
      "lineEnd" : 106,
      "lineStart" : 106,
      "message" : "Exception thrown in class it.tidalwave.util.spi.HierarchicFinderSupport at new it.tidalwave.util.spi.HierarchicFinderSupport(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "HierarchicFinderSupport.java(106,0): CT_CONSTRUCTOR_THROW: BAD_PRACTICE: Exception thrown in class it.tidalwave.util.spi.HierarchicFinderSupport at new it.tidalwave.util.spi.HierarchicFinderSupport(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "type" : "CT_CONSTRUCTOR_THROW"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "ThreadAssertions.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/Utilities/src/main/java/it/tidalwave/util/thread/ThreadAssertions.java",
      "fingerprint" : "cb07dde94c9da84f157f453e8351e330",
      "lineEnd" : 49,
      "lineStart" : 49,
      "message" : "Assertion validates method argument at it.tidalwave.util.thread.ThreadAssertions.assertThread(ThreadType). If assertions are disabled, there won't be any argument validation.",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.util.thread",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "ThreadAssertions.java(49,0): AA_ASSERTION_OF_ARGUMENTS: BAD_PRACTICE: Assertion validates method argument at it.tidalwave.util.thread.ThreadAssertions.assertThread(ThreadType). If assertions are disabled, there won't be any argument validation.",
      "type" : "AA_ASSERTION_OF_ARGUMENTS"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "Person.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/examples/Data/src/main/java/it/tidalwave/thesefoolishthings/examples/person/Person.java",
      "fingerprint" : "325ac0fb7f8a1c4ea89440d358d84566",
      "lineEnd" : 56,
      "lineStart" : 56,
      "message" : "Exception thrown in class it.tidalwave.thesefoolishthings.examples.person.Person at new it.tidalwave.thesefoolishthings.examples.person.Person(String, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "moduleName" : "TheseFoolishThings :: Examples :: Data",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.person",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "Person.java(56,0): CT_CONSTRUCTOR_THROW: BAD_PRACTICE: Exception thrown in class it.tidalwave.thesefoolishthings.examples.person.Person at new it.tidalwave.thesefoolishthings.examples.person.Person(String, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "type" : "CT_CONSTRUCTOR_THROW"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DefaultPersonPresentationControl.java",
      "category" : "PERFORMANCE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/DefaultPersonPresentationControl.java",
      "fingerprint" : "18a86cbd5f00673b3b590b02bd3e53e7",
      "lineEnd" : 66,
      "lineStart" : 64,
      "message" : "Private method it.tidalwave.thesefoolishthings.examples.dci.swing.DefaultPersonPresentationControl.initialize() is never called",
      "moduleName" : "TheseFoolishThings :: Examples :: DCI :: Swing",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.dci.swing",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "DefaultPersonPresentationControl.java(64,0): UPM_UNCALLED_PRIVATE_METHOD: PERFORMANCE: Private method it.tidalwave.thesefoolishthings.examples.dci.swing.DefaultPersonPresentationControl.initialize() is never called",
      "type" : "UPM_UNCALLED_PRIVATE_METHOD"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SwingPersonPresentation.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/swing/SwingPersonPresentation.java",
      "fingerprint" : "f131a611fe9c5be4316ede9a29b6067f",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "Class it.tidalwave.thesefoolishthings.examples.dci.swing.swing.SwingPersonPresentation defines non-transient non-serializable instance field bindings",
      "moduleName" : "TheseFoolishThings :: Examples :: DCI :: Swing",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.dci.swing.swing",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "SwingPersonPresentation.java(0,0): SE_BAD_FIELD: BAD_PRACTICE: Class it.tidalwave.thesefoolishthings.examples.dci.swing.swing.SwingPersonPresentation defines non-transient non-serializable instance field bindings",
      "type" : "SE_BAD_FIELD"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SwingPersonPresentation.java",
      "category" : "PERFORMANCE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/swing/SwingPersonPresentation.java",
      "fingerprint" : "39a5e79a90d946719198c934fc95d720",
      "lineEnd" : 121,
      "lineStart" : 121,
      "message" : "The class it.tidalwave.thesefoolishthings.examples.dci.swing.swing.SwingPersonPresentation$1 could be refactored into a named _static_ inner class",
      "moduleName" : "TheseFoolishThings :: Examples :: DCI :: Swing",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.dci.swing.swing",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "SwingPersonPresentation.java(121,0): SIC_INNER_SHOULD_BE_STATIC_ANON: PERFORMANCE: The class it.tidalwave.thesefoolishthings.examples.dci.swing.swing.SwingPersonPresentation$1 could be refactored into a named _static_ inner class",
      "type" : "SIC_INNER_SHOULD_BE_STATIC_ANON"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "PersonFinderImpl2b.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/examples/ExtendedFinderExample/src/main/java/it/tidalwave/thesefoolishthings/examples/extendedfinderexample/PersonFinderImpl2b.java",
      "fingerprint" : "1bfba185d5f92911f032bc1722c26fdf",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "Class it.tidalwave.thesefoolishthings.examples.extendedfinderexample.PersonFinderImpl2b defines non-transient non-serializable instance field status",
      "moduleName" : "TheseFoolishThings :: Examples :: Finder :: Extended Finder",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.extendedfinderexample",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "PersonFinderImpl2b.java(0,0): SE_BAD_FIELD: BAD_PRACTICE: Class it.tidalwave.thesefoolishthings.examples.extendedfinderexample.PersonFinderImpl2b defines non-transient non-serializable instance field status",
      "type" : "SE_BAD_FIELD"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "JpaFinder.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "modules/examples/JPAFinderExample/src/main/java/it/tidalwave/thesefoolishthings/examples/jpafinderexample/impl/JpaFinder.java",
      "fingerprint" : "8f1199a0a095a48c8c16127db9bdcd90",
      "lineEnd" : 99,
      "lineStart" : 99,
      "message" : "Exception thrown in class it.tidalwave.thesefoolishthings.examples.jpafinderexample.impl.JpaFinder at new it.tidalwave.thesefoolishthings.examples.jpafinderexample.impl.JpaFinder(Class, Function, TxManager) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "moduleName" : "TheseFoolishThings :: Examples :: Finder :: JPA Finder",
      "origin" : "spotbugs",
      "originName" : "SpotBugs",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.jpafinderexample.impl",
      "reference" : "1326",
      "severity" : "LOW",
      "toString" : "JpaFinder.java(99,0): CT_CONSTRUCTOR_THROW: BAD_PRACTICE: Exception thrown in class it.tidalwave.thesefoolishthings.examples.jpafinderexample.impl.JpaFinder at new it.tidalwave.thesefoolishthings.examples.jpafinderexample.impl.JpaFinder(Class, Function, TxManager) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.",
      "type" : "CT_CONSTRUCTOR_THROW"
    }
  ],
  "size" : 40,
  "toString" : "40 warnings (low: 40)"
}