Support » Plugin: NextGEN Gallery - WordPress Gallery Plugin » Exception thrown: “ not defined for ExtensibleObject

  • Resolved floatingpointmatt


    I’m seeing the error in the post title (Exception thrown: not defined for ExtensibleObject) and can’t figure out where to start looking to fix it.

    Steps to generate the error on my part were part of a move from a development setup to a live setup and include:

    • dump MySQL database
    • find and replace development domain to live domain (I know this is potentially error-prone, but no other plugins involved have issues with this approach… and I can’t see anywhere (other than photo metadata) where NextGen should be affected)
    • restore data
    • test site — site works, pages with the NextGEN gallery shortcodes generate the error

    I tried the following to resolve the issue:

    • refreshed Permalinks
    • deactivated and reactivated NextGEN
    • tried to Manage Galleries (to see what might be out of sorts… ended up with an AJAX-driven postback loop to the gallery management page)
    • uninstalled and reinstalled NextGEN
    • viewed the NextGEN MySQL table data (wp_ngg_album, wp_ngg_gallery, wp_ngg_pictures) and the wp_options table to see if anything looked out of sorts
    • reviewed files on disk to see if a config is written out by NextGEN (doesn’t seem to be)
    • checked Google, this forum, and for pointers
    • confirmed I’m using the latest version of NextGEN [v2.0.61]

    I’m assuming it’s a value that ended up dropped which a NextGEN ExtensibleObject is trying to autoload/autovivify — but I can’t figure out what that would be.

    Does anybody have any thoughts on where to start?

    I’ll post back if I find anything that resolves the issue (ideally with a reason why).


    [EDIT: Formatting]

Viewing 15 replies - 1 through 15 (of 28 total)
  • Plugin Author photocrati


    @floatingpointmatt – This is a new error message as far as I have seen, you noted you looked at the database and noted four specific tables, there are two more that NextGEN Gallery writes to. Have you reviewed these tables as potential places to find this “item”: wp_postmeta and wp_usermeta?

    You also mentioned that you are using shortcode structures, did you ensure no “smart” quotes ended up in your parameters? That should not produce an error message like what you are describing but just another point to ponder on this.


    – Cais.


    Thanks for the quick response!

    We’re actually using shortcodes in the theme via do_shortcode.

    The thing being is that nothing has changed (save the location and the search and replace done).

    I’ve got a dump of the exception (which I’ll post below). I’m working through it now…


    Exception thrown

    not defined for ExtensibleObject


    On line 810 of {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php


    #0 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(904): ExtensibleObject->__call(NULL, Array)
    #1 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.component_factory.php(23): ExtensibleObject->call_method(NULL, Array)
    #2 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_data\class.gallery_storage.php(74): C_Component_Factory->create(NULL, ‘all’, false)
    #3 [internal function]: C_Gallery_Storage->_get_driver(Array)
    #4 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(578): call_user_func(Array, Array)
    #5 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_data\class.gallery_storage.php(50): ExtensibleObject->wrap(‘I_GalleryStorag…’, Array, Array)
    #6 [internal function]: C_Gallery_Storage->define(‘all’)
    #7 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(165): ReflectionMethod->invokeArgs(Object(C_Gallery_Storage), Array)
    #8 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_data\class.gallery_storage.php(58): ExtensibleObject->__construct(‘all’)
    #9 [internal function]: C_Gallery_Storage::get_instance(‘all’)
    #10 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.component_registry.php(659): call_user_func(‘C_Gallery_Stora…’, ‘all’)
    #11 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_basic_gallery\adapter.nextgen_basic_thumbnails_controller.php(35): C_Component_Registry->get_utility(‘I_Gallery_Stora…’)
    #12 [internal function]: A_NextGen_Basic_Thumbnails_Controller->index_action(Object(C_Displayed_Gallery), true)
    #13 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(1147): ReflectionMethod->invokeArgs(Object(A_NextGen_Basic_Thumbnails_Controller), Array)
    #14 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(789): ExtensibleObject->_exec_cached_method(‘index_action’, Array)
    #15 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_gallery_display\class.display_type_controller.php(36): ExtensibleObject->__call(‘index_action’, Array)
    #16 [internal function]: C_Display_Type_Controller->__call(‘index_action’, Array)
    #17 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_gallery_display\class.displayed_gallery_renderer.php(343): C_Display_Type_Controller->index_action(Object(C_Displayed_Gallery), true)
    #18 [internal function]: Mixin_Displayed_Gallery_Renderer->render(Object(C_Displayed_Gallery), true, NULL)
    #19 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(1147): ReflectionMethod->invokeArgs(Object(Mixin_Displayed_Gallery_Renderer), Array)
    #20 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(789): ExtensibleObject->_exec_cached_method(‘render’, Array)
    #21 [internal function]: ExtensibleObject->__call(‘render’, Array)
    #22 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_gallery_display\class.displayed_gallery_renderer.php(202): C_Displayed_Gallery_Renderer->render(Object(C_Displayed_Gallery), true, NULL)
    #23 [internal function]: Mixin_Displayed_Gallery_Renderer->display_images(Array, ”)
    #24 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(1147): ReflectionMethod->invokeArgs(Object(Mixin_Displayed_Gallery_Renderer), Array)
    #25 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\pope\lib\class.extensibleobject.php(789): ExtensibleObject->_exec_cached_method(‘display_images’, Array)
    #26 [internal function]: ExtensibleObject->__call(‘display_images’, Array)
    #27 {PATH}\{SITE}\wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_basic_gallery\module.nextgen_basic_gallery.php(166): C_Displayed_Gallery_Renderer->display_images(Array, ”)
    #28 [internal function]: M_NextGen_Basic_Gallery->render(Array, ”, ‘nggallery’)
    #29 {PATH}\{SITE}\wp-includes\shortcodes.php(273): call_user_func(Array, Array, ”, ‘nggallery’)
    #30 [internal function]: do_shortcode_tag(Array)
    #31 {PATH}\{SITE}\wp-includes\shortcodes.php(188): preg_replace_callback(‘/\[(\[?)(embed|…’, ‘do_shortcode_ta…’, ‘[nggallery id=2…’)
    #32 {PATH}\{SITE}\wp-content\themes\arnon\custom-single-property-commercial.php(164): do_shortcode(‘[nggallery id=2…’)
    #33 {PATH}\{SITE}\wp-content\themes\arnon\single-property.php(8): require_once(‘{PATH}\arno…’)
    #34 {PATH}\{SITE}\wp-includes\template-loader.php(74): include(‘{PATH}\arno…’)
    #35 {PATH}\{SITE}\wp-blog-header.php(16): require_once(‘{PATH}\arno…’)
    #36 {PATH}\{SITE}\index.php(17): require(‘{PATH}\arno…’)
    #37 {main}

    I’ve managed to find an old version of the plugin (1.9.13) I had archived.

    Deactivating the plugin, then replacing the version 2.0.61 folder with the old 1.9.13 version, and reactivating has things functional again…

    Some settings are apparently out of sync; however, I have no idea what this means.

    I’m a little nervous about launching with an old version of the plugin with new data, but short of finding the needle in the haystack, I don’t know…

    NOTE: I replicated the behaviour by setting up a copy of the working development site (backed up prior to launch) on another server — with only the text replacement happening (in this case a change of lesser magnitude… i.e. changed to, rather than to

    The best I’ve got is that a non-obvious tie related to the site url…

    (I reviewed the ngg_ tables, including the wp_postmeta and wp_usermeta [as suggested by Cais] and found nothing…).

    I’m proceeding with the old version of the plugin (does anybody have any caveats?), but hopefully somebody at photocrati can shed a little light on things.

    Thanks all!

    One last note, I had hopes that since the old version of the plugin restored functionality, that I might be able to upgrade to the latest version to regain all functionality; however, the error reappeared.

    I have the same problem. I tried to solve the problem in different ways.
    I replaced domain name in DB-backup many times. All times my site worked perfectly, before I began to use Nextgen Gallery.

    How replacing domain name in DB-backup can break Nextgen Gallery?
    I can’t find any string pertinent to Nextgen Gallery options and include domain name.


    In the last way, I restored Nextgen Gallery 2.0.30. I was wondering because the error was removed. In order to restore Lightbox Effects functionality, I opened section “Other Options” – “Lightbox Effects” – “Show Advanced Settings” and changed domain name at “Stylesheet URL” and “Javascript URL”. After that I updated Nextgen Gallery to the latest version. In my case the error hasn’t appeared.

    Hey guys, thanks for those ideas shared here in this thread. I’ll try to do some modifications here on my script, and if it’s sucessful, I’ll post it here later.

    I think Konstantin has it right.

    The wp_options table contains ngg_options, which has a PHP object encoded URL in it. That means if you change the domain, you change the length of the string… breaking object restoration.

    In my case, it looks like it would affect the imagerotator.swf pathing.

    Best of luck!

    (I really wish it PHP object serialization wasn’t so heavily used. Especially in WordPress. I get that it’s convenient, but wouldn’t JSON (or even XML) be so much better?)

    Plugin Author photocrati


    @floatingpointmatt – Did you try the Reset Option under Gallery > Other Options to see if that would sort out the issues as one of its main purposes is to correct path/URL issues which still seems to be the case at hand.

    You may also need to clear the image cache as well under Gallery > Other Options > Miscellaneous as well.


    – Cais.

    Thanks for the pointer!

    Originally, I tried to interact with the plugin (after the issue occurred) and got some kind of loop in the Admin.

    Now, no loop, but Gallery > Other Options throws a Runtime Exception:

    \wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_other_options\image_options_tab.php is not a valid MVC template

    Even Gallery > Gallery Settings throws a Runtime Exception:

    \wp-content\plugins\nextgen-gallery\products\photocrati_nextgen\modules\nextgen_basic_album\nextgen_basic_album_gallery_display_type.php is not a valid MVC template

    (This time, 2.0.61 wiped ngg_options down to essentially nothing after the update… i.e. ‘a:1:{s:11:”installDate”;i:1398106394;}’), but ultimately still results in the ExtensibleObject error… and I can’t test my imagerotator.swf experiment.)

    Originally, the ngg_options was (asterisks inserted in spots to obscure site detail):

    a:69:{s:11:”gallerypath”;s:19:”wp-content/gallery/”;s:9:”deleteImg”;b:1;s:9:”swfUpload”;b:1;s:13:”usePermalinks”;b:0;s:13:”permalinkSlug”;s:9:”nggallery”;s:14:”graphicLibrary”;s:2:”gd”;s:14:”imageMagickDir”;s:15:”/usr/local/bin/”;s:11:”useMediaRSS”;b:0;s:10:”usePicLens”;b:0;s:12:”activateTags”;b:0;s:10:”appendType”;s:4:”tags”;s:9:”maxImages”;i:7;s:10:”thumbwidth”;i:100;s:11:”thumbheight”;i:75;s:8:”thumbfix”;b:1;s:12:”thumbquality”;i:100;s:8:”imgWidth”;i:800;s:9:”imgHeight”;i:600;s:10:”imgQuality”;i:85;s:9:”imgBackup”;b:1;s:13:”imgAutoResize”;b:0;s:9:”galImages”;s:2:”20″;s:17:”galPagedGalleries”;i:0;s:10:”galColumns”;s:1:”0″;s:12:”galShowSlide”;b:0;s:12:”galTextSlide”;s:19:”[Show as slideshow]”;s:14:”galTextGallery”;s:19:”[Show picture list]”;s:12:”galShowOrder”;s:7:”gallery”;s:7:”galSort”;s:9:”sortorder”;s:10:”galSortDir”;s:3:”ASC”;s:10:”galNoPages”;s:1:”1″;s:13:”galImgBrowser”;b:0;s:12:”galHiddenImg”;b:0;s:10:”galAjaxNav”;b:0;s:11:”thumbEffect”;s:7:”shutter”;s:9:”thumbCode”;s:33:”class=”shutterset_%GALLERY_NAME%””;s:5:”wmPos”;s:8:”botRight”;s:6:”wmXpos”;i:5;s:6:”wmYpos”;i:5;s:6:”wmType”;s:4:”text”;s:6:”wmPath”;s:0:””;s:6:”wmFont”;s:9:”arial.ttf”;s:6:”wmSize”;i:10;s:6:”wmText”;s:17:”***** Corporation”;s:7:”wmColor”;s:6:”000000″;s:8:”wmOpaque”;s:3:”100″;s:8:”enableIR”;b:0;s:7:”slideFx”;s:4:”fade”;s:5:”irURL”;s:93:”http://*******.**************.com/*****/wp-content/plugins/nextgen-gallery/imagerotator.swf”;s:12:”irXHTMLvalid”;b:0;s:7:”irAudio”;s:0:””;s:7:”irWidth”;i:320;s:8:”irHeight”;i:240;s:9:”irShuffle”;b:1;s:17:”irLinkfromdisplay”;b:1;s:16:”irShownavigation”;b:0;s:11:”irShowicons”;b:0;s:11:”irWatermark”;b:0;s:13:”irOverstretch”;s:4:”true”;s:12:”irRotatetime”;i:10;s:12:”irTransition”;s:6:”random”;s:10:”irKenburns”;b:0;s:11:”irBackcolor”;s:6:”000000″;s:12:”irFrontcolor”;s:6:”FFFFFF”;s:12:”irLightcolor”;s:6:”CC0000″;s:13:”irScreencolor”;s:6:”000000″;s:11:”activateCSS”;b:1;s:7:”CSSfile”;s:13:”nggallery.css”;s:11:”installDate”;i:1397246500;}

    Rather than let this linger, I’ll mark it resolved.

    The solution is to revert the plugin, though I suspect this will not be necessary in all cases.

    Thanks to the NextGEN team for all their help!

    Suffering this same error, I tried:

    Did you try the Reset Option under Gallery > Other Options to see if that would sort out the issues as one of its main purposes is to correct path/URL issues which still seems to be the case at hand.

    but that page also throws this same “Exception thrown: not defined for ExtensibleObject” error 🙁

    Latest NextGEN… this is not resolved at all!

    Plugin Author photocrati


    @ravanh – It would be best to start your own topic (see rather than resurrect a 7 month old one.

    As it is, please send us a Bug Report ( so we can get you our external Reset Tool plugin which may help you sort out this issue.


    – Cais.

    I’m having the same issue as RavanH after a migration. I submitted a bug report as you said. It would be nice if your external Reset Tool was available somewhere else, and linked to in this thread, so we could download and use it, without having to submit a bug report.

    Plugin Author photocrati


    @tevya – Thanks for the feedback, but if the external Reset Tool plugin does not work then we have already opened a conversation regarding issues on your site.

    – Cais.

Viewing 15 replies - 1 through 15 (of 28 total)
  • The topic ‘Exception thrown: “ not defined for ExtensibleObject’ is closed to new replies.