https://www.mediawiki.org/wiki/Special:Code/MediaWiki/106400
Revision: 106400
Author: jeroendedauw
Date: 2011-12-16 00:18:55 +0000 (Fri, 16 Dec 2011)
Log Message:
-----------
bug 29438
Modified Paths:
--------------
trunk/extensions/SemanticMediaWiki/includes/SMW_ParseData.php
trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DataValue.php
Modified: trunk/extensions/SemanticMediaWiki/includes/SMW_ParseData.php
===================================================================
--- trunk/extensions/SemanticMediaWiki/includes/SMW_ParseData.php
2011-12-16 00:10:05 UTC (rev 106399)
+++ trunk/extensions/SemanticMediaWiki/includes/SMW_ParseData.php
2011-12-16 00:18:55 UTC (rev 106400)
@@ -104,22 +104,38 @@
// See if this property is a special one, such as e.g. "has
type".
$propertyDv = SMWPropertyValue::makeUserProperty( $propertyName
);
- if ( !$propertyDv->isValid() ) return $propertyDv;
+
+ if ( !$propertyDv->isValid() ) {
+ return $propertyDv;
+ }
+
$propertyDi = $propertyDv->getDataItem();
-
+
+ // FIXME: this solves the issue of bug 29438, but is probably
not what we want to do.
+ if ( $propertyDi instanceof SMWDIError ) {
+ return $propertyDv;
+ }
+
$semandticData = self::getSMWData( $parser );
- $result = SMWDataValueFactory::newPropertyObjectValue(
$propertyDi,
- $value, $caption, $semandticData->getSubject() );
+ $result = SMWDataValueFactory::newPropertyObjectValue(
+ $propertyDi,
+ $value,
+ $caption,
+ $semandticData->getSubject()
+ );
if ( $propertyDi->isInverse() ) {
$result->addError( wfMsgForContent( 'smw_noinvannot' )
);
} elseif ( $storeAnnotation && !is_null( self::getSMWData(
$parser ) ) ) {
$semandticData->addPropertyObjectValue( $propertyDi,
$result->getDataItem() );
+
// Take note of the error for storage (do this here and
not in storage, thus avoiding duplicates).
if ( !$result->isValid() ) {
- $semandticData->addPropertyObjectValue( new
SMWDIProperty( '_ERRP' ),
- $propertyDi->getDiWikiPage() );
+ $semandticData->addPropertyObjectValue(
+ new SMWDIProperty( '_ERRP' ),
+ $propertyDi->getDiWikiPage()
+ );
}
}
Modified:
trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DataValue.php
===================================================================
--- trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DataValue.php
2011-12-16 00:10:05 UTC (rev 106399)
+++ trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DataValue.php
2011-12-16 00:18:55 UTC (rev 106400)
@@ -445,7 +445,7 @@
*
* @since 1.6
*
- * @return SMWDataItem
+ * @return SMWDataItem|SMWDIError
*/
public function getDataItem() {
if ( $this->isValid() ) {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs