{
  "_class" : "io.jenkins.plugins.analysis.core.restapi.ReportApi",
  "issues" : [
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "SimpleMessageBus.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/MessageBus/src/main/java/it/tidalwave/messagebus/spi/SimpleMessageBus.java",
      "fingerprint" : "dedc8406d099b7891eac4112cb475dfa",
      "lineEnd" : 161,
      "lineStart" : 161,
      "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" : "",
      "packageName" : "it.tidalwave.messagebus.spi",
      "reference" : "478",
      "severity" : "LOW",
      "toString" : "SimpleMessageBus.java(161,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" : "AsDisplayableComparator.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/Roles/src/main/java/it/tidalwave/role/ui/impl/AsDisplayableComparator.java",
      "fingerprint" : "d674a5e33451f39c0618fc9b4a182322",
      "lineEnd" : 59,
      "lineStart" : 44,
      "message" : "it.tidalwave.role.ui.impl.AsDisplayableComparator implements Comparator but not Serializable",
      "moduleName" : "TheseFoolishThings :: Roles",
      "origin" : "spotbugs",
      "originName" : "",
      "packageName" : "it.tidalwave.role.ui.impl",
      "reference" : "478",
      "severity" : "LOW",
      "toString" : "AsDisplayableComparator.java(44,0): SE_COMPARATOR_SHOULD_BE_SERIALIZABLE: BAD_PRACTICE: it.tidalwave.role.ui.impl.AsDisplayableComparator implements Comparator but not Serializable",
      "type" : "SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "DisplayableComparator.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/Roles/src/main/java/it/tidalwave/role/ui/impl/DisplayableComparator.java",
      "fingerprint" : "61f04bbab317a730ab8369e0800d2a3",
      "lineEnd" : 58,
      "lineStart" : 43,
      "message" : "it.tidalwave.role.ui.impl.DisplayableComparator implements Comparator but not Serializable",
      "moduleName" : "TheseFoolishThings :: Roles",
      "origin" : "spotbugs",
      "originName" : "",
      "packageName" : "it.tidalwave.role.ui.impl",
      "reference" : "478",
      "severity" : "LOW",
      "toString" : "DisplayableComparator.java(43,0): SE_COMPARATOR_SHOULD_BE_SERIALIZABLE: BAD_PRACTICE: it.tidalwave.role.ui.impl.DisplayableComparator implements Comparator but not Serializable",
      "type" : "SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "MappingFinder.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/Utilities/src/main/java/it/tidalwave/util/impl/finder/MappingFinder.java",
      "fingerprint" : "fa2ffc2350e5e3e7dc76ba596541a746",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "The field it.tidalwave.util.impl.finder.MappingFinder.delegate is transient but isn't set by deserialization",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "",
      "packageName" : "it.tidalwave.util.impl.finder",
      "reference" : "546",
      "severity" : "LOW",
      "toString" : "MappingFinder.java(0,0): SE_TRANSIENT_FIELD_NOT_RESTORED: BAD_PRACTICE: The field it.tidalwave.util.impl.finder.MappingFinder.delegate is transient but isn't set by deserialization",
      "type" : "SE_TRANSIENT_FIELD_NOT_RESTORED"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "MappingFinder.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/Utilities/src/main/java/it/tidalwave/util/impl/finder/MappingFinder.java",
      "fingerprint" : "2ee9b4e52312d8a5f7e746397b358738",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "The field it.tidalwave.util.impl.finder.MappingFinder.decorator is transient but isn't set by deserialization",
      "moduleName" : "TheseFoolishThings :: Utilities",
      "origin" : "spotbugs",
      "originName" : "",
      "packageName" : "it.tidalwave.util.impl.finder",
      "reference" : "546",
      "severity" : "LOW",
      "toString" : "MappingFinder.java(0,0): SE_TRANSIENT_FIELD_NOT_RESTORED: BAD_PRACTICE: The field it.tidalwave.util.impl.finder.MappingFinder.decorator is transient but isn't set by deserialization",
      "type" : "SE_TRANSIENT_FIELD_NOT_RESTORED"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "ProviderFinder.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/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" : "",
      "packageName" : "it.tidalwave.util.impl.finder",
      "reference" : "546",
      "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" : "../../TheseFoolishThings_Metrics/workspace/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" : "",
      "packageName" : "it.tidalwave.util.impl.finder",
      "reference" : "546",
      "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" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
      "fingerprint" : "f53c819baaf66f7ccd0135a0b88105ee",
      "lineEnd" : 157,
      "lineStart" : 157,
      "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" : "",
      "packageName" : "it.tidalwave.util.spi",
      "reference" : "478",
      "severity" : "LOW",
      "toString" : "DefaultProcessExecutor.java(157,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" : "SwingPersonPresentation.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/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" : "",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.dci.swing.swing",
      "reference" : "478",
      "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" : "PersonFinderImpl2a.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/examples/ExtendedFinderExample/src/main/java/it/tidalwave/thesefoolishthings/examples/extendedfinderexample/PersonFinderImpl2a.java",
      "fingerprint" : "fabac0e6beb243e8f6073c2b107ccbec",
      "lineEnd" : 0,
      "lineStart" : 0,
      "message" : "Class it.tidalwave.thesefoolishthings.examples.extendedfinderexample.PersonFinderImpl2a defines non-transient non-serializable instance field persons",
      "moduleName" : "TheseFoolishThings :: Examples :: Finder :: Extended Finder",
      "origin" : "spotbugs",
      "originName" : "",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.extendedfinderexample",
      "reference" : "478",
      "severity" : "LOW",
      "toString" : "PersonFinderImpl2a.java(0,0): SE_BAD_FIELD: BAD_PRACTICE: Class it.tidalwave.thesefoolishthings.examples.extendedfinderexample.PersonFinderImpl2a defines non-transient non-serializable instance field persons",
      "type" : "SE_BAD_FIELD"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "PersonFinderImpl2a.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/examples/ExtendedFinderExample/src/main/java/it/tidalwave/thesefoolishthings/examples/extendedfinderexample/PersonFinderImpl2a.java",
      "fingerprint" : "ce7c8078be2898f81c8cf6ef9a3df771",
      "lineEnd" : 105,
      "lineStart" : 56,
      "message" : "it.tidalwave.thesefoolishthings.examples.extendedfinderexample.PersonFinderImpl2a is Serializable; consider declaring a serialVersionUID",
      "moduleName" : "TheseFoolishThings :: Examples :: Finder :: Extended Finder",
      "origin" : "spotbugs",
      "originName" : "",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.extendedfinderexample",
      "reference" : "478",
      "severity" : "LOW",
      "toString" : "PersonFinderImpl2a.java(56,0): SE_NO_SERIALVERSIONID: BAD_PRACTICE: it.tidalwave.thesefoolishthings.examples.extendedfinderexample.PersonFinderImpl2a is Serializable; consider declaring a serialVersionUID",
      "type" : "SE_NO_SERIALVERSIONID"
    },
    {
      "addedAt" : 0,
      "authorEmail" : "-",
      "authorName" : "-",
      "baseName" : "PersonFinderImpl2b.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/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" : "",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.extendedfinderexample",
      "reference" : "478",
      "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" : "PersonFinderImpl2b.java",
      "category" : "BAD_PRACTICE",
      "columnEnd" : 0,
      "columnStart" : 0,
      "commit" : "-",
      "description" : "",
      "fileName" : "../../TheseFoolishThings_Metrics/workspace/modules/examples/ExtendedFinderExample/src/main/java/it/tidalwave/thesefoolishthings/examples/extendedfinderexample/PersonFinderImpl2b.java",
      "fingerprint" : "1c972e50851ea48f59440f9b01f7fbc7",
      "lineEnd" : 117,
      "lineStart" : 74,
      "message" : "it.tidalwave.thesefoolishthings.examples.extendedfinderexample.PersonFinderImpl2b is Serializable; consider declaring a serialVersionUID",
      "moduleName" : "TheseFoolishThings :: Examples :: Finder :: Extended Finder",
      "origin" : "spotbugs",
      "originName" : "",
      "packageName" : "it.tidalwave.thesefoolishthings.examples.extendedfinderexample",
      "reference" : "478",
      "severity" : "LOW",
      "toString" : "PersonFinderImpl2b.java(74,0): SE_NO_SERIALVERSIONID: BAD_PRACTICE: it.tidalwave.thesefoolishthings.examples.extendedfinderexample.PersonFinderImpl2b is Serializable; consider declaring a serialVersionUID",
      "type" : "SE_NO_SERIALVERSIONID"
    }
  ],
  "size" : 13,
  "toString" : "13 warnings (low: 13)"
}