codeclimate / codeclimate-phpmd

Code Climate PHPMD Engine
MIT License
10 stars 12 forks source link

PDepend - Uncaught Error: Call to a member function restoreClass() on null #51

Open efueger opened 4 years ago

efueger commented 4 years ago

Customer's repo erroring with:

engine phpmd failed with status 255 and stderr 
Exception: Argument 1 passed to PDepend\Source\AST\ASTConstantDeclarator::setValue() must be an instance of PDepend\Source\AST\ASTValue, null given, called in /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php on line 6205 in /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/AST/ASTConstantDeclarator.php
#0 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(6205): PDepend\Source\AST\ASTConstantDeclarator->setValue(NULL)
#1 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(6135): PDepend\Source\Language\PHP\AbstractPHPParser->parseConstantDeclarator()
#2 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(886): PDepend\Source\Language\PHP\AbstractPHPParser->parseConstantDefinition()
#3 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(713): PDepend\Source\Language\PHP\AbstractPHPParser->parseTypeBody(Object(PDepend\Source\AST\ASTClass))
#4 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(5712): PDepend\Source\Language\PHP\AbstractPHPParser->parseClassDeclaration()
#5 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(388): PDepend\Source\Language\PHP\AbstractPHPParser->parseOptionalStatement()
#6 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Engine.php(575): PDepend\Source\Language\PHP\AbstractPHPParser->parse()
#7 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Engine.php(323): PDepend\Engine->performParseProcess()
#8 /usr/src/app/vendor/phpmd/phpmd/src/main/php/PHPMD/Parser.php(123): PDepend\Engine->analyze()
#9 /usr/src/app/vendor/phpmd/phpmd/src/main/php/PHPMD/PHPMD.php(222): PHPMD\Parser->parse(Object(PHPMD\Report))
#10 /usr/src/app/Runner.php(116): PHPMD\PHPMD->processFiles('/code/magento/a...', 'cleancode,codes...', Array, Object(PHPMD\RuleSetFactory))
#11 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(1852): CodeClimate\PHPMD\Runner->run(Array)
#12 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(1772): fork_daemon->invoke_callback(Array, Array, false)
#13 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(1673): fork_daemon->fork_work_unit(Array, '', -1)
#14 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(1423): fork_daemon->process_work_unit(-1)
#15 /usr/src/app/engine.php(37): fork_daemon->process_work(true)
#16 {main}
PHP Fatal error:  Uncaught Error: Call to a member function restoreClass() on null in /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Builder/BuilderContext/GlobalBuilderContext.php:116
Stack trace:
#0 /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/AST/ASTClass.php(212): PDepend\Source\Builder\BuilderContext\GlobalBuilderContext->registerClass(Object(PDepend\Source\AST\ASTClass))
#1 [internal function]: PDepend\Source\AST\ASTClass->__wakeup()
#2 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(1973): unserialize('O:9:"TypeError"...')
#3 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(1570): fork_daemon->socket_receive(Resource id #2691)
#4 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(1622): fork_daemon->fetch_results(false, 0, -1)
#5 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(841): fork_daemon->post_results(-1)
#6 /usr/src/app/vendor/barracudanetworks/forkdaemon-php/fork_daemon.php(1420): fork_daemon->sig in /usr/src/app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Builder/BuilderContext/GlobalBuilderContext.php on line 116
efueger commented 4 years ago

Customer reports:

with some experimentation, I was able to confirm that https://github.com/pdepend/pdepend/issues/299 is indeed the root cause of our issue.