View Issue Details

IDProjectCategoryView StatusLast Update
0006405OXID eShop (all versions)4.02. Session handlingpublic2016-06-10 16:30
ReporterProclane Commerce GmbH Assigned To 
PrioritynormalSeveritycrashReproducibilityunable to reproduce
Status closedResolutionunable to reproduce 
PlatformLinuxOSDebian OS Version8 (Jessie) /
Product Version4.9.7 / 5.2.7 
Summary0006405: unserializement of oxPrice (overloaded)
DescriptionPHP Fatal error: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "c4s_core_oxprice" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /var/www/oxid/tmp/smarty/eb800d7535f66fa9a2fe9015e7fba4a8^%%57^57E^57E920AC%%basketcontents.tpl.php on line 359, referer: http://xxxxx/index.php?cl=alist&cnid=0000000002&anid=S_17U_10&
Steps To ReproduceInside the basket-controller occures a fatal php error, when oxPrice will be overloaded and a product is inside the oxBasket-Object.

Steps to reproduce:

- overload oxPrice with additional properties and setter/getter Methods
- activate module which overloads oxPrice
- go into the shop-frontend and add a Product to Basket
- go into the checkout at the first step (cl=basket) over the minibasket.

There you will found a broken frontend page and inside the PHP-Errorlog following entry:

PHP Fatal error: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "c4s_core_oxprice" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /var/www/oxid/tmp/smarty/eb800d7535f66fa9a2fe9015e7fba4a8^%%57^57E^57E920AC%%basketcontents.tpl.php on line 359, referer: http://xxxxx/index.php?cl=alist&cnid=0000000002&anid=S_17U_10&
Additional InformationIt seems that OXID does not load the overloaded objects when the getBasket-Method from oxSession will be called.

Workaround for the Problem is at the current time:

- Overload oxSession->getBasket()
- call oxNew("oxPrice") before the parent method "getBasket" will be executed

After doing the workaround, the Autoloader of OXID will load the overloaded class correctly.
TagsNo tags attached.
ThemeNot defined
BrowserAll
PHP Version5.6
Database Version5.6

Activities

QA

2016-06-03 15:55

administrator   ~0011621

Reminder sent to: Proclane Commerce GmbH

Thank you for submitting the issue. Unfortunately we can't reproduce the issue. Maybe you have old data in the session created before changing something about your oxprice module? Can you check if the problem occurs after you deleted all caches from your browser?
Maybe you can send us an example module how to reproduce it?

QA

2016-06-10 16:30

administrator   ~0011641

No feedback from reporter. So this is closed as not reproducable.