Page MenuHomePhabricator

Uncaught exception DataValues\IllegalValueException
Closed, ResolvedPublic

Description

I am processing a wikidata dump with the new internal (de)serializers.

It failed to deserialize https://www.wikidata.org/wiki/Q4964796 due to an invalid time value. This should be converted to a bad value or something so that it's still possible to handle / deserialize the entity.

I don't know yet how often this occurs with the dump. if just one item, it can be fixed.

Fatal error: Uncaught exception 'DataValues\IllegalValueException' with message '$time needs to be a valid ISO 8601 date, given +00000002001-09-001T00:00:00Z' in /Users/katie/src/wikibot/vendor/data-values/serialization/src/Deserializers/DataValueDeserializer.php on line 109

DataValues\IllegalValueException: $time needs to be a valid ISO 8601 date, given +00000002001-09-001T00:00:00Z in /Users/katie/src/wikibot/vendor/data-values/time/src/DataValues/TimeValue.php on line 108

Wikibase\InternalSerialization\Deserializers\EntityDeserializer->deserialize() /Users/katie/src/wikibot/src/Wikibot/Wikibase/Dump/EntityFetcher.php:33

6.0667    6573232   6. Wikibase\InternalSerialization\Deserializers\EntityDeserializer->fromLegacySerialization() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/EntityDeserializer.php:35
6.0667    6573232   7. Wikibase\InternalSerialization\Deserializers\LegacyEntityDeserializer->deserialize() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/EntityDeserializer.php:54
6.0667    6573232   8. Wikibase\InternalSerialization\Deserializers\LegacyItemDeserializer->deserialize() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacyEntityDeserializer.php:34
6.0670    6577472   9. Wikibase\InternalSerialization\Deserializers\LegacyItemDeserializer->addClaims() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacyItemDeserializer.php:53
6.0676    6586784  10. Wikibase\InternalSerialization\Deserializers\LegacyClaimDeserializer->deserialize() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacyItemDeserializer.php:83
6.0676    6586784  11. Wikibase\InternalSerialization\Deserializers\LegacyClaimDeserializer->newClaimFormSerialization() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacyClaimDeserializer.php:44
6.0676    6586784  12. Wikibase\InternalSerialization\Deserializers\LegacyClaimDeserializer->newClaimOrStatement() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacyClaimDeserializer.php:60
6.0676    6586784  13. Wikibase\InternalSerialization\Deserializers\LegacyClaimDeserializer->getStatement() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacyClaimDeserializer.php:69
6.0676    6587544  14. Wikibase\InternalSerialization\Deserializers\LegacyClaimDeserializer->getMainSnak() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacyClaimDeserializer.php:89
6.0676    6587544  15. Wikibase\InternalSerialization\Deserializers\LegacySnakDeserializer->deserialize() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacyClaimDeserializer.php:109
6.0676    6587544  16. Wikibase\InternalSerialization\Deserializers\LegacySnakDeserializer->deserializeValueSnak() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacySnakDeserializer.php:42
6.0676    6587952  17. DataValues\Deserializers\DataValueDeserializer->deserialize() /Users/katie/src/wikibot/vendor/wikibase/internal-serialization/src/Deserializers/LegacySnakDeserializer.php:56
6.0676    6587544  18. DataValues\Deserializers\DataValueDeserializer->getDeserialization() /Users/katie/src/wikibot/vendor/data-values/serialization/src/Deserializers/DataValueDeserializer.php:70
6.0677    6587544  19. DataValues\TimeValue::newFromArray() /Users/katie/src/wikibot/vendor/data-values/serialization/src/Deserializers/DataValueDeserializer.php:106
6.0677    6588408  20. DataValues\TimeValue->__construct() /Users/katie/src/wikibot/vendor/data-values/time/src/DataValues/TimeValue.php:314

Deserializers\Exceptions\DeserializationException: $time needs to be a valid ISO 8601 date, given +00000002001-09-001T00:00:00Z in /Users/katie/src/wikibot/vendor/data-values/serialization/src/Deserializers/DataValueDeserializer.php on line 109


Version: unspecified
Severity: normal
Whiteboard: u=dev c=backend p=0

Details

Reference
bz66636

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 3:12 AM
bzimport set Reference to bz66636.
bzimport added a subscriber: Unknown Object (MLST).

https://www.wikidata.org/wiki/Q5110134

when using new internal deserializers, I get:

Fatal error: Uncaught exception 'DataValues\IllegalValueException' with message '$time needs to be a valid ISO 8601 date, given +00000001874-03-012T00:00:00Z' in /Users/katie/src/wikibot/vendor/data-values/serialization/src/Deserializers/DataValueDeserializer.php on line 109

DataValues\IllegalValueException: $time needs to be a valid ISO 8601 date, given +00000001874-03-012T00:00:00Z in /Users/katie/src/wikibot/vendor/data-values/time/src/DataValues/TimeValue.php on line 108

should be a "bad" value or such.