[Tickets #11775] Re: syncml fails - unable to find dtd...

bugs at horde.org bugs at horde.org
Fri Nov 30 15:26:12 UTC 2012


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/11775
------------------------------------------------------------------------------
  Ticket             | 11775
  Updated By         | delrio at mie.utoronto.ca
  Summary            | syncml fails - unable to find dtd...
  Queue              | Synchronization
  Version            | Git master
  Type               | Bug
  State              | Unconfirmed
  Priority           | 2. Medium
  Milestone          | 5.0.2
  Patch              |
  Owners             |
------------------------------------------------------------------------------


delrio at mie.utoronto.ca (2012-11-30 15:26) wrote:

> Message from syslogd at host at Nov 28 20:49:46 ...
>  HORDE: [horde] Unable to find dtd for syncml:syncml1.11.2 [pid 2291  
> on line 110
>  of "/usr/share/php/Horde/Xml/Wbxml/Encoder.php"]

I get the same error using SyncJE for Blackberry.
It seems to be a bug parsing wbxmlVersion in Encoder.php, function  
writeHeader($uri).
In some cases, it would add "1.2" to the $uri when it already has  
"1.1", resulting in an invalid "1.11.2" version.

The following patches should seems to fix it:

--- Horde/Xml/Wbxml/Encoder.php.orig    Wed Oct 31 10:24:43 2012
+++ Horde/Xml/Wbxml/Encoder.php Fri Nov 30 10:02:21 2012
@@ -95,15 +95,8 @@
      public function writeHeader($uri)
      {
          // @todo: this is a hack!
-        if ($this->_wbxmlVersion == 2 && !preg_match('/1\.2$/', $uri)) {
-            $uri .= '1.2';
-        }
-        if ($this->_wbxmlVersion == 1 && !preg_match('/1\.1$/', $uri)) {
-            $uri .= '1.1';
-        }
-        if ($this->_wbxmlVersion == 0 && !preg_match('/1\.0$/', $uri)) {
-            $uri .= '1.0';
-        }
+        if (!preg_match('/1\.[0-9]$/', $uri))
+            $uri .= '1.' . $this->_wbxmlVersion;

          $this->_dtd = $this->_dtdManager->getInstanceURI($uri);



Also, I'm not sure why ContentHandler.php forces wbxmlVersion = 2.

--- Horde/Xml/Wbxml/ContentHandler.php.orig     Wed Oct 31 10:24:43 2012
+++ Horde/Xml/Wbxml/ContentHandler.php  Fri Nov 30 09:58:31 2012
@@ -51,7 +51,7 @@

      public function setVersion($v)
      {
-        $this->_wbxmlVersion = 2;
+        $this->_wbxmlVersion = $v;
      }


Hope that helps.
Oscar





More information about the bugs mailing list