| Summary | Kolab Storage: serialize/unserialize handling |
| Queue | Horde Framework Packages |
| Queue Version | Git master |
| Type | Bug |
| State | Assigned |
| Priority | 1. Low |
| Owners | wrobel (at) horde (dot) org |
| Requester | thomas.jarosch (at) intra2net (dot) com |
| Created | 11/09/2012 (4732 days ago) |
| Due | |
| Updated | 11/22/2012 (4719 days ago) |
| Assigned | 11/09/2012 (4732 days ago) |
| Resolved | |
| Github Issue Link | |
| Github Pull Request | |
| Milestone | 3 |
| Patch | No |
The deserialization currently happens in
Horde/Kolab/Storage/Data/Cached.php on line 228.
This issue will be fixed when I finished the redesign of the data
area. Horde 6.0 though as this is an API change.
State ⇒ Assigned
Priority ⇒ 1. Low
Patch ⇒ No
Milestone ⇒
Queue ⇒ Horde Framework Packages
Summary ⇒ Kolab Storage: serialize/unserialize handling
Type ⇒ Bug
State ⇒ Unconfirmed
I'm not sure how the serialize/unserialize handling is done in Kolab_Storage.
Let's take Storage/Cache/Data.php as an example.
The code in store() looks like this:
---------------------------------------------------
$this->_data[self::STAMP] = serialize($stamp);
---------------------------------------------------
The _load() code does nothing special to the "self::STAMP" field.
The getStamp() code looks like this:
----------------------------------------------
public function getStamp()
{
$this->_checkInit(self::STAMP);
return $this->_data[self::STAMP];
}
----------------------------------------------
Is there some recursive unserialize magic happening I don't see yet?
IMHO if you call getStamp(), it will return garbage.
The same code pattern applies to a few other spots.
OTOH the actual user of "Storage/Cache/Data.php" is "Storage/Data/Cached.php".
That one unserializes the stamp before using it.
Is this a performance optimization to move unserialize() to the calling side?
Thomas