Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-3188

Call to a member function getValue() on a non-object in vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php

    Details

    • Type: Bug Bug
    • Status: Reopened
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.4
    • Fix Version/s: None
    • Component/s: ORM
    • Security Level: All
    • Labels:
      None
    • Environment:
      PHP 5.4.11
      opensuse
      apache2

      Description

      This is the line that causes the fatal error: https://github.com/doctrine/doctrine2/blob/v2.4.2/lib/Doctrine/ORM/UnitOfWork.php#L678

      This is the association that is breaking it (i.e. reflFields[ 'user' ] is a non-object):

      Tweet.php
      /**
       * @ManyToOne(targetEntity="User")
       * @JoinColumn(name="user_id", referencedColumnName="id")
       *
       * @var User
       */
      protected $user;
      

      This is the pk of the referenced entity.

      User.php
      /**
       * @Id
       * @Column(name="id", type="bigint", nullable=false)
       *
       * @var int
       */
      protected $id;
      

      If an exception was thrown due to missing metadata information, I could catch it, but fatal errors due to this bug have been crashing our scripts and they've had to be manually restarted.

      Let me know what other information is needed.

      Full stack trace:

      PHP 5. Doctrine\ORM\EntityManager->flush() our_code.php
      PHP 6. Doctrine\ORM\UnitOfWork->commit() vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:389
      PHP 7. Doctrine\ORM\UnitOfWork->computeChangeSets() vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:297
      PHP 8. Doctrine\ORM\UnitOfWork->computeScheduleInsertsChangeSets() vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:703
      PHP 9. Doctrine\ORM\UnitOfWork->computeChangeSet() vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:404
      PHP Fatal error: Call to a member function getValue() on a non-object in vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php on line 678

        Activity

        Hide
        Marco Pivetta added a comment -

        Did you actually validate your mappings?

        Show
        Marco Pivetta added a comment - Did you actually validate your mappings?
        Hide
        Daniel Imhoff added a comment -

        I did not validate the mapping. I did not know about the orm:validate-schema until just now. I will fix these errors and resubmit if there is still an issue.

        Sorry about that, thanks.

        Show
        Daniel Imhoff added a comment - I did not validate the mapping. I did not know about the orm:validate-schema until just now. I will fix these errors and resubmit if there is still an issue. Sorry about that, thanks.
        Hide
        Daniel Imhoff added a comment -

        The tweet and user relationship is not in the list of invalid mappings.

        Show
        Daniel Imhoff added a comment - The tweet and user relationship is not in the list of invalid mappings.
        Hide
        Marco Pivetta added a comment -

        Are User and Tweet in the same namespace?

        Show
        Marco Pivetta added a comment - Are User and Tweet in the same namespace?
        Hide
        Daniel Imhoff added a comment -

        Yes, and I've since then used the FQNS. I would get a class not found error when validating schema.
        This is something that I know can't really be debugged by you guys, I was just hoping for a little direction. We are using memcache to store our metadata, and we are clearing and regenerating the metadata during every deploy (it is not autogenerated). I'm now using a commit hash as the namespace of the metadata, so we'll see if this fixes the issue.

        Show
        Daniel Imhoff added a comment - Yes, and I've since then used the FQNS. I would get a class not found error when validating schema. This is something that I know can't really be debugged by you guys, I was just hoping for a little direction. We are using memcache to store our metadata, and we are clearing and regenerating the metadata during every deploy (it is not autogenerated). I'm now using a commit hash as the namespace of the metadata, so we'll see if this fixes the issue.
        Hide
        Marco Pivetta added a comment -

        It looks like a typo (CasESensiTIViTy issue) to me.

        Show
        Marco Pivetta added a comment - It looks like a typo (CasESensiTIViTy issue) to me.

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Daniel Imhoff
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated: