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

Reply via email to