Bug #48390

Exception if linked folder does not exist

Added by Philipp Gampe about 8 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Must have
Assignee:
Category:
File Abstraction Layer (FAL)
Target version:
-
Start date:
2013-05-20
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
6.0
PHP Version:
5.4
Tags:
Complexity:
no-brainer
Is Regression:
Sprint Focus:

Description

Uncaught TYPO3 Exception
#1329647780: Object with identifier "1:/user_upload/testfolder3/" does not exist in storage (More information)

TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException thrown in file
/home/phil/t3-playground/t3-git/typo3/sysext/core/Classes/Resource/ResourceFactory.php in line 398.

27 TYPO3\CMS\Core\Resource\ResourceFactory::getObjectFromCombinedIdentifier("1:/user_upload/testfolder3/")

/home/phil/t3-playground/t3-git/typo3/sysext/core/Classes/Resource/ResourceFactory.php:
00324:    if (\TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($prefix)) {
00325:     // path or folder in a valid storageUID
00326:     return $this->getObjectFromCombinedIdentifier($input);
00327:    } elseif ($prefix == 'EXT') {
00328:     $input = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($input);

26 TYPO3\CMS\Core\Resource\ResourceFactory::retrieveFileOrFolderObject("1:/user_upload/testfolder3/")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
05631:    if ($linkHandlerKeyword === 'file') {
05632:     try {
05633:      $fileOrFolderObject = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->retrieveFileOrFolderObject($linkHandlerValue);
05634:      // Link to a folder or file
05635:      if ($fileOrFolderObject instanceof \TYPO3\CMS\Core\Resource\ResourceInterface) {

25 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typoLink("Linked file without a real file", array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
03020:   */
03021:  public function stdWrap_typolink($content = '', $conf = array()) {
03022:   $content = $this->typolink($content, $conf['typolink.']);
03023:   return $content;
03024:  }

24 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::stdWrap_typolink("Linked file without a real file", array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
02015:       // Call the function with the prefix stdWrap_ to make sure nobody can execute functions just by adding their name to the TS Array
02016:       $functionName = 'stdWrap_' . $functionName;
02017:       $content = $this->{$functionName}($content, $singleConf);
02018:      } elseif ($functionType == 'boolean' && !$conf[$functionName]) {
02019:       $isExecuted[$functionName] = TRUE;

23 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::stdWrap("", array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/TextContentObject.php:
00049:   }
00050:   if (count($conf)) {
00051:    $content = $this->cObj->stdWrap($content, $conf);
00052:   }
00053:   return $content;

22 TYPO3\CMS\Frontend\ContentObject\TextContentObject::render(array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00738:      $contentObject = $this->getContentObject($name);
00739:      if ($contentObject) {
00740:       $content .= $contentObject->render($conf);
00741:      } else {
00742:       // Call hook functions for extra processing

21 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGetSingle("TEXT", array, "/parseFunc/.tags.link")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
04828:       }
04829:       $this->data[$this->currentValKey] = $contentAccum[$contentAccumP];
04830:       $newInput = $this->cObjGetSingle($theName, $theConf, '/parseFunc/.tags.' . $tag[0]);
04831:       // fetch the content object
04832:       $contentAccum[$contentAccumP] = $newInput;

20 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::_parseFunc("<link file:1:/user_upload/testfolder3/ - download …e download">Linked file without a real file</link>", array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
04646:      }
04647:     } else {
04648:      $parts[$k] = $this->_parseFunc($parts[$k], $conf);
04649:     }
04650:    }

19 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::parseFunc("<link file:1:/user_upload/testfolder3/ - download …e download">Linked file without a real file</link>", NULL, "< lib.parseFunc_RTE")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
02478:   */
02479:  public function stdWrap_parseFunc($content = '', $conf = array()) {
02480:   $content = $this->parseFunc($content, $conf['parseFunc.'], $conf['parseFunc']);
02481:   return $content;
02482:  }

18 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::stdWrap_parseFunc("<link file:1:/user_upload/testfolder3/ - download …e download">Linked file without a real file</link>", array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
02015:       // Call the function with the prefix stdWrap_ to make sure nobody can execute functions just by adding their name to the TS Array
02016:       $functionName = 'stdWrap_' . $functionName;
02017:       $content = $this->{$functionName}($content, $singleConf);
02018:      } elseif ($functionType == 'boolean' && !$conf[$functionName]) {
02019:       $isExecuted[$functionName] = TRUE;

17 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::stdWrap("", array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/TextContentObject.php:
00049:   }
00050:   if (count($conf)) {
00051:    $content = $this->cObj->stdWrap($content, $conf);
00052:   }
00053:   return $content;

16 TYPO3\CMS\Frontend\ContentObject\TextContentObject::render(array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00738:      $contentObject = $this->getContentObject($name);
00739:      if ($contentObject) {
00740:       $content .= $contentObject->render($conf);
00741:      } else {
00742:       // Call hook functions for extra processing

15 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGetSingle("TEXT", array, "20")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00686:     if (intval($theKey) && !strstr($theKey, '.')) {
00687:      $conf = $setup[$theKey . '.'];
00688:      $content .= $this->cObjGetSingle($theValue, $conf, $addKey . $theKey);
00689:     }
00690:    }

14 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGet(array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectArrayContentObject.php:
00047:    if ($this->cObj->checkIf($conf['if.'])) {
00048:     $this->cObj->includeLibs($conf);
00049:     $content = $this->cObj->cObjGet($conf);
00050:     $wrap = isset($conf['wrap.']) ? $this->cObj->stdWrap($conf['wrap'], $conf['wrap.']) : $conf['wrap'];
00051:     if ($wrap) {

13 TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayContentObject::render(array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00738:      $contentObject = $this->getContentObject($name);
00739:      if ($contentObject) {
00740:       $content .= $contentObject->render($conf);
00741:      } else {
00742:       // Call hook functions for extra processing

12 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGetSingle("COA", array, "text")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/CaseContentObject.php:
00051:    $key = strlen($conf[$key]) ? $key : 'default';
00052:    $name = $conf[$key];
00053:    $theValue = $this->cObj->cObjGetSingle($name, $conf[$key . '.'], $key);
00054:    if (isset($conf['stdWrap.'])) {
00055:     $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']);

11 TYPO3\CMS\Frontend\ContentObject\CaseContentObject::render(array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00738:      $contentObject = $this->getContentObject($name);
00739:      if ($contentObject) {
00740:       $content .= $contentObject->render($conf);
00741:      } else {
00742:       // Call hook functions for extra processing

10 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGetSingle("CASE", array, "tt_content")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00724:     // Getting the cObject
00725:     $GLOBALS['TT']->incStackPointer();
00726:     $content .= $this->cObjGetSingle($name, $conf, $key);
00727:     $GLOBALS['TT']->decStackPointer();
00728:    } else {

9 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGetSingle("<tt_content", NULL, "")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentContentObject.php:
00115:         $this->cObj->lastChanged($row['tstamp']);
00116:         $cObj->start($row, $conf['table']);
00117:         $tmpValue = $cObj->cObjGetSingle($renderObjName, $renderObjConf, $renderObjKey);
00118:         $cobjValue .= $tmpValue;
00119:        }

8 TYPO3\CMS\Frontend\ContentObject\ContentContentObject::render(array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00738:      $contentObject = $this->getContentObject($name);
00739:      if ($contentObject) {
00740:       $content .= $contentObject->render($conf);
00741:      } else {
00742:       // Call hook functions for extra processing

7 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGetSingle("CONTENT", array, "subparts.mainContent")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/TemplateContentObject.php:
00140:      $this->cObj->data[$this->cObj->currentValKey] = $GLOBALS['TSFE']->register['SUBPART_' . $theKey];
00141:      // Get subpart cObject and substitute it!
00142:      $subpartArray[$PRE . $theKey . $POST] = $this->cObj->cObjGetSingle($theValue['name'], $theValue['conf'], 'subparts.' . $theKey);
00143:     }
00144:     // Reset current to empty

6 TYPO3\CMS\Frontend\ContentObject\TemplateContentObject::render(array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00738:      $contentObject = $this->getContentObject($name);
00739:      if ($contentObject) {
00740:       $content .= $contentObject->render($conf);
00741:      } else {
00742:       // Call hook functions for extra processing

5 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGetSingle("TEMPLATE", array, "10")

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php:
00686:     if (intval($theKey) && !strstr($theKey, '.')) {
00687:      $conf = $setup[$theKey . '.'];
00688:      $content .= $this->cObjGetSingle($theValue, $conf, $addKey . $theKey);
00689:     }
00690:    }

4 TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::cObjGet(array)

/home/phil/t3-playground/t3-git/typo3/sysext/frontend/Classes/Page/PageGenerator.php:
00229:   $GLOBALS['TT']->incStackPointer();
00230:   $GLOBALS['TT']->push($GLOBALS['TSFE']->sPre, 'PAGE');
00231:   $pageContent = $GLOBALS['TSFE']->cObj->cObjGet($GLOBALS['TSFE']->pSetup);
00232:   if ($GLOBALS['TSFE']->pSetup['wrap']) {
00233:    $pageContent = $GLOBALS['TSFE']->cObj->wrap($pageContent, $GLOBALS['TSFE']->pSetup['wrap']);

3 TYPO3\CMS\Frontend\Page\PageGenerator::renderContent()

/home/phil/t3-playground/t3-git/typo3/sysext/cms/tslib/pagegen.php:
00050: if (!$GLOBALS['TSFE']->isINTincScript()) {
00051:  $TT->push('pagegen.php, render');
00052:  \TYPO3\CMS\Frontend\Page\PageGenerator::renderContent();
00053:  $GLOBALS['TSFE']->setAbsRefPrefix();
00054:  $TT->pull();

2 include("/home/phil/t3-playground/t3-git/typo3/sysext/cms/tslib/pagegen.php")

/home/phil/t3-playground/t3-git/typo3/sysext/cms/tslib/index_ts.php:
00192:   include $temp_theScript;
00193:  } else {
00194:   include PATH_tslib . 'pagegen.php';
00195:  }
00196:  $TSFE->generatePage_postProcessing();

1 require("/home/phil/t3-playground/t3-git/typo3/sysext/cms/tslib/index_ts.php")

/home/phil/t3-playground/t3-git/index.php:
00039:  ->redirectToInstallToolIfLocalConfigurationFileDoesNotExist();
00040: 
00041: require(PATH_tslib . 'index_ts.php');
00042: ?>
#1

Updated by Gerrit Code Review about 8 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master has been pushed to the review server.
It is available at https://review.typo3.org/20926

#2

Updated by Gerrit Code Review about 8 years ago

Patch set 1 for branch TYPO3_6-1 has been pushed to the review server.
It is available at https://review.typo3.org/21043

#3

Updated by Gerrit Code Review about 8 years ago

Patch set 1 for branch TYPO3_6-0 has been pushed to the review server.
It is available at https://review.typo3.org/21044

#4

Updated by Philipp Gampe about 8 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
#5

Updated by Benni Mack over 2 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF