DXCMS-57: Work-around for misbehaving fopen().
In some cases, an fopen() of a URL will not result in an error messsage, but in a silent failure. Thus, instead of having a silent failure produce a plain Exception, we now have it generating a FileNotFoundException.
This commit is contained in:
parent
87794f697e
commit
febebd4b94
@ -75,7 +75,11 @@ class PHPStreamTransport implements Transporter {
|
|||||||
$err = error_get_last();
|
$err = error_get_last();
|
||||||
|
|
||||||
if (empty($err['message'])) {
|
if (empty($err['message'])) {
|
||||||
throw new \HPCloud\Exception("An unknown exception occurred while sending a request.");
|
// FIXME: Under certain circumstances, all this really means is that
|
||||||
|
// there is a 404. So we pretend that it's always a 404.
|
||||||
|
// throw new \HPCloud\Exception("An unknown exception occurred while sending a request.");
|
||||||
|
$msg = "File not found, perhaps due to a network failure.";
|
||||||
|
throw new \HPCloud\Transport\FileNotFoundException($msg);
|
||||||
}
|
}
|
||||||
$this->guessError($err['message'], $uri, $method);
|
$this->guessError($err['message'], $uri, $method);
|
||||||
|
|
||||||
|
@ -190,6 +190,14 @@ class ContainerTest extends \HPCloud\Tests\TestCase {
|
|||||||
// Overwrite the copy:
|
// Overwrite the copy:
|
||||||
$object->setContent('HI');
|
$object->setContent('HI');
|
||||||
$this->assertEquals('HI', $object->content());
|
$this->assertEquals('HI', $object->content());
|
||||||
|
|
||||||
|
// Make sure this throws a 404.
|
||||||
|
try {
|
||||||
|
$foo = $container->object('no/such');
|
||||||
|
}
|
||||||
|
catch (\HPCloud\Exception $e) {
|
||||||
|
$this->assertInstanceOf('\HPCloud\Transport\FileNotFoundException', $e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user