Bug #3027
Rev 2122 results in an Exeption when loading FLOW3 a second time after clearing the chache
Status: | Resolved | Start date: | 2009-04-02 | |
---|---|---|---|---|
Priority: | Must have | Due date: | ||
Assigned To: | Robert Lemke | % Done: | 100% |
|
Category: | Reflection | |||
Target version: | TYPO3 Flow Base Distribution - 1.0 alpha 1 | |||
PHP Version: | Complexity: | |||
Has patch: | Affected Flow version: |
Description
In Development Context I get:
#1166550023: Object "F3\WebDAV\MVC\RequestHandler_AOPProxy_Development" is not registered. (More information)
F3\FLOW3\Object\Exception\UnknownObject thrown in file
C:\xampp\htdocs\FLOW3\Packages\Global\FLOW3\Classes\Object\Manager.php in line 242.
In Productin Context I get:
#1166550023: Object "F3\WebDAV\MVC\RequestHandler_AOPProxy_Production" is not registered. (More information)
F3\FLOW3\Object\Exception\UnknownObject thrown in file
C:\xampp\htdocs\FLOW3\Packages\Global\FLOW3\Classes\Object\Manager.php in line 242.
Do I need to configure the RequestHandler somehow to work again? Or is this a Bug introduced in this Revision?
Associated revisions
- FLOW3: (Object) The Object Builder now throws an exception if no default implementation for an object type could be found and an instance of this object type should be built.
- FLOW3: (Object) Introduced a new marker interface "ProxyInterface" which must be implemented by all proxy classes.
- FLOW3: (Reflection) Made the getDefaultImplementationClassNameOfInterface() aware of proxyies: If exactly two classes implement an interface and one of them implements the Proxy marker interface, the name of this class is returned. Fixes #3027
History
#1 Updated by Robert Lemke over 6 years ago
- Status changed from New to Accepted
#2 Updated by Robert Lemke over 6 years ago
- File FLOW3_Exception.html added
- Category changed from Object to Reflection
- Target version set to 1.0 alpha 1
- % Done changed from 0 to 10
Attached a backtrace exploiting this bug
#3 Updated by Robert Lemke over 6 years ago
- % Done changed from 10 to 50
Explanation of the reason for this bug:
The object manager's registerObjectType() method registers the RouterInterface. In order to build the object configuration, it asks the Reflection Service for the default implementation of that interface. The Reflection Service will return the classname only if exactly one class implements the interface.
Before r2122 the Reflection Service was aware of only one implementation, namely the Router. Since r2122 all classes which are reflected even after initialization of the Object Framework will be considered and cached. Therefore the interface has now two implementations, the Router and the AOP proxy of the Router. In essence no default implementation was found and the object builder failed building the object type.
#4 Updated by Robert Lemke over 6 years ago
- Status changed from Accepted to Resolved
- % Done changed from 50 to 100
Applied in changeset r2123.
#5 Updated by Christoph Blömer over 6 years ago
I made a new checkout, cleared the cache und tried it again.
The problem still exists. Nothing has changed.
The bug is not fixed.
#6 Updated by Robert Lemke over 6 years ago
Christoph Blömer wrote:
I made a new checkout, cleared the cache und tried it again.
The problem still exists. Nothing has changed.
The bug is not fixed.
That's another issue (#3034), this bug is fixed.
#7 Updated by Christoph Blömer over 6 years ago
This Exception is created when an aspect for the RequestHandler is defined.
After removing the aspect the exception is gone.