<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Why does Activiti TaskListener extend java.io.Serializable in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/why-does-activiti-tasklistener-extend-java-io-serializable/m-p/218205#M171335</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I would like to know the reason why Activiti TaskListener was made to extend java.io.Serializable.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Because TaskListener extends java.io.Serializable , if the implementation classes for TaskListener use references to other classes , the code review tool is suggesting the following :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;"Fields in a Serializable class must themselves be either Serializable or transient even if the class is never explicitly serialized or deserialized. That's because under load, most J2EE application frameworks flush objects to disk, and an allegedly Serializable object with non-transient, non-serializable data members could cause program crashes, and open the door to attackers." &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;@Listener&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public class ApproveRejectNotificationListener implements TaskListener {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private static final long serialVersionUID = 1L;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Resource&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private BPMTaskService bpmTaskService;&amp;nbsp;&amp;nbsp; //Noncompliant Code Example&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To fix the issue, I can make this variable transient. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But I want to know the rationale behind in making this TaskListener&amp;nbsp; extend Serializable. This will allow us to make sure we have designed and implemented the TaskListener classes as expected by Activiti in our application and discover any edge case scenarios if any by&amp;nbsp; violating the contracts .&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 24 Feb 2016 21:21:57 GMT</pubDate>
    <dc:creator>gkd_deepak</dc:creator>
    <dc:date>2016-02-24T21:21:57Z</dc:date>
    <item>
      <title>Why does Activiti TaskListener extend java.io.Serializable</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/why-does-activiti-tasklistener-extend-java-io-serializable/m-p/218205#M171335</link>
      <description>I would like to know the reason why Activiti TaskListener was made to extend java.io.Serializable.Because TaskListener extends java.io.Serializable , if the implementation classes for TaskListener use references to other classes , the code review tool is suggesting the following :"Fields in a Serial</description>
      <pubDate>Wed, 24 Feb 2016 21:21:57 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/why-does-activiti-tasklistener-extend-java-io-serializable/m-p/218205#M171335</guid>
      <dc:creator>gkd_deepak</dc:creator>
      <dc:date>2016-02-24T21:21:57Z</dc:date>
    </item>
    <item>
      <title>Re: Why does Activiti TaskListener extend java.io.Serializable</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/why-does-activiti-tasklistener-extend-java-io-serializable/m-p/218206#M171336</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The rationale is that these classes can be in a distributed cache (swapping out the default process definition cache).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Mar 2016 20:10:06 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/why-does-activiti-tasklistener-extend-java-io-serializable/m-p/218206#M171336</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2016-03-01T20:10:06Z</dc:date>
    </item>
  </channel>
</rss>

