[ 
http://jira.magnolia-cms.com/browse/MAGNOLIA-3837?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ondřej Chytil updated MAGNOLIA-3837:
------------------------------------

    Priority: Neutral  (was: Blocker)

> Incompatible change in 4.4.5 breaks existing activation work items 
> -------------------------------------------------------------------
>
>                 Key: MAGNOLIA-3837
>                 URL: http://jira.magnolia-cms.com/browse/MAGNOLIA-3837
>             Project: Magnolia
>          Issue Type: Bug
>      Security Level: Public
>          Components: activation, core, workflow
>    Affects Versions: 4.4.5
>            Reporter: Grégory Joseph
>            Assignee: Ondřej Chytil
>             Fix For: 4.4.6
>
>         Attachments: pastie-2530958.txt
>
>
> The code change introduced for MAGNOLIA-3693 makes it impossible to 
> deserialize existing workitems which were created with 4.4.4 or earlier 
> versions. 
> As such, just looking at the workflow "inbox" generates tons of exceptions. 
> What's worse, proceeding with such work items will result in items not being 
> deleted when they should. No content should be lost, but the removal of a 
> paragraph, for example, won't be done. (!) TODO: update this issue as soon as 
> we know more.
> To reproduce:
> * install a 4.4.4 instance (with workflow)
> * activate a page (don't "proceed" !)
> * upgrade to 4.4.5
> * open inbox (logs will show exception(s))
> * proceed activation
> {color:white}
> * ????
> * profit !!
> {color}
> Possible track for patching this up:
> Since we can't *just* revert the {{Rule}} class (because users might have 
> started activations with the new class structure), we'd need to hook into the 
> unserialization process. Something along those lines should work:
> {code}
>     private void readObject(ObjectInputStream ois) throws 
> ClassNotFoundException, IOException {
>         final ObjectInputStream.GetField field = ois.readFields();
>         final Object o = field.get("allowedTypes", null);
>         // here, if o is a String[], push into a Set, otherwise do nothing ...
>     }
> {code}
> As a side note, I'd suggest we remove the {{serialVersionUID}} - had it not 
> been there (or modified when code was changed, as it should have), the error 
> log *might* have been a little cleared. I'd also suggest we don't "just" log 
> the exception when unserializing the rule.
> Classes and methods to look at:
> * {{info.magnolia.cms.core.version.ContentVersion#init}}
> * {{info.magnolia.cms.core.version.BaseVersionManager#getUsedFilter}}
> * {{info.magnolia.module.exchangesimple.ReceiveFilter#handleChildren}}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.magnolia-cms.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------

Reply via email to