Hello community,

here is the log from the commit of package libqt5-qtremoteobjects for 
openSUSE:Factory checked in at 2019-04-26 22:53:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtremoteobjects (Old)
 and      /work/SRC/openSUSE:Factory/.libqt5-qtremoteobjects.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libqt5-qtremoteobjects"

Fri Apr 26 22:53:05 2019 rev:11 rq:697070 version:5.12.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/libqt5-qtremoteobjects/libqt5-qtremoteobjects.changes
    2019-03-22 15:06:47.021524827 +0100
+++ 
/work/SRC/openSUSE:Factory/.libqt5-qtremoteobjects.new.5536/libqt5-qtremoteobjects.changes
  2019-04-26 22:53:21.545357319 +0200
@@ -1,0 +2,8 @@
+Thu Apr 18 07:27:25 UTC 2019 - [email protected]
+
+- Update to 5.12.3:
+  * New bugfix release
+  * For more details please see:
+  * 
http://code.qt.io/cgit/qt/qtremoteobjects.git/plain/dist/changes-5.12.3/?h=v5.12.3
+
+-------------------------------------------------------------------

Old:
----
  qtremoteobjects-everywhere-src-5.12.2.tar.xz

New:
----
  qtremoteobjects-everywhere-src-5.12.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libqt5-qtremoteobjects.spec ++++++
--- /var/tmp/diff_new_pack.NqMHP8/_old  2019-04-26 22:53:21.989357033 +0200
+++ /var/tmp/diff_new_pack.NqMHP8/_new  2019-04-26 22:53:21.989357033 +0200
@@ -19,11 +19,11 @@
 %define qt5_snapshot 0
 %define libname libQt5RemoteObjects5
 %define base_name libqt5
-%define real_version 5.12.2
-%define so_version 5.12.2
-%define tar_version qtremoteobjects-everywhere-src-5.12.2
+%define real_version 5.12.3
+%define so_version 5.12.3
+%define tar_version qtremoteobjects-everywhere-src-5.12.3
 Name:           libqt5-qtremoteobjects
-Version:        5.12.2
+Version:        5.12.3
 Release:        0
 Summary:        Qt 5 RemoteObjects Library
 License:        LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only

++++++ qtremoteobjects-everywhere-src-5.12.2.tar.xz -> 
qtremoteobjects-everywhere-src-5.12.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtremoteobjects-everywhere-src-5.12.2/.qmake.conf 
new/qtremoteobjects-everywhere-src-5.12.3/.qmake.conf
--- old/qtremoteobjects-everywhere-src-5.12.2/.qmake.conf       2019-02-21 
13:41:06.000000000 +0100
+++ new/qtremoteobjects-everywhere-src-5.12.3/.qmake.conf       2019-04-10 
14:01:43.000000000 +0200
@@ -1,6 +1,6 @@
 load(qt_build_config)
 CONFIG += qt_example_installs
 
-MODULE_VERSION = 5.12.2
+MODULE_VERSION = 5.12.3
 
 QTRO_SOURCE_TREE = $$PWD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtremoteobjects-everywhere-src-5.12.2/.tag 
new/qtremoteobjects-everywhere-src-5.12.3/.tag
--- old/qtremoteobjects-everywhere-src-5.12.2/.tag      2019-02-21 
13:41:06.000000000 +0100
+++ new/qtremoteobjects-everywhere-src-5.12.3/.tag      2019-04-10 
14:01:43.000000000 +0200
@@ -1 +1 @@
-1c19349a28a75eec386b84af142fc571e492a3c3
+043f7582bb2f611120a7693fbe75fa866d046fff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/dist/changes-5.12.3 
new/qtremoteobjects-everywhere-src-5.12.3/dist/changes-5.12.3
--- old/qtremoteobjects-everywhere-src-5.12.2/dist/changes-5.12.3       
1970-01-01 01:00:00.000000000 +0100
+++ new/qtremoteobjects-everywhere-src-5.12.3/dist/changes-5.12.3       
2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,29 @@
+Qt 5.12.3 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.12.0 through 5.12.2.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qt-5/index.html
+
+Note: Tech Preview modules are able to change APIs to refine or enhance the
+module's functionality.  Thus Qt's binary compatibility quarantees aren't
+applicable.  Code switching to 5.12 (when Remote Objects "graduated" from
+Tech Preview) from earlier versions of Qt Remote Objects will need to be
+recompiled.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+*                            Qt 5.12.1 Changes                             *
+****************************************************************************
+ - General
+   * [QTBUG-74221] Fix restart/nullptr crash
+   * [QTBUG-73962] Fix crash with AllowExternalRegistration and QtRO schema
+   * Doc: Add link from index page to  QML Types
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_local_backend_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_local_backend_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_local_backend_p.h
      2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_local_backend_p.h
      1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qconnection_local_backend_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_backend_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_backend_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_backend_p.h
        2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_backend_p.h
        1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qconnection_qnx_backend_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_global_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_global_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_global_p.h
 2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_global_p.h
 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qconnection_qnx_global_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_qiodevices_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_qiodevices_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_qiodevices_p.h
     2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_qiodevices_p.h
     1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qconnection_qnx_qiodevices_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_server_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_server_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_server_p.h
 2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_qnx_server_p.h
 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qconnection_qnx_server_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_tcpip_backend_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_tcpip_backend_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_tcpip_backend_p.h
      2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnection_tcpip_backend_p.h
      1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qconnection_tcpip_backend_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnectionfactories_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnectionfactories_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnectionfactories_p.h
   2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qconnectionfactories_p.h
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qconnectionfactories_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectabstractitemmodeladapter_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectabstractitemmodeladapter_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectabstractitemmodeladapter_p.h
  2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectabstractitemmodeladapter_p.h
  1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include 
"../../../../../src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectabstractitemmodelreplica_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectabstractitemmodelreplica_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectabstractitemmodelreplica_p.h
  2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectabstractitemmodelreplica_p.h
  1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include 
"../../../../../src/remoteobjects/qremoteobjectabstractitemmodelreplica_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectnode_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectnode_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectnode_p.h
      2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectnode_p.h
      1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qremoteobjectnode_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectpacket_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectpacket_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectpacket_p.h
    2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectpacket_p.h
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qremoteobjectpacket_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectpendingcall_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectpendingcall_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectpendingcall_p.h
       2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectpendingcall_p.h
       1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qremoteobjectpendingcall_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectregistrysource_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectregistrysource_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectregistrysource_p.h
    2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectregistrysource_p.h
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qremoteobjectregistrysource_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectreplica_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectreplica_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectreplica_p.h
   2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectreplica_p.h
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qremoteobjectreplica_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectsource_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectsource_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectsource_p.h
    2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectsource_p.h
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qremoteobjectsource_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectsourceio_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectsourceio_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectsourceio_p.h
  2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.2/QtRemoteObjects/private/qremoteobjectsourceio_p.h
  1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/remoteobjects/qremoteobjectsourceio_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_local_backend_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_local_backend_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_local_backend_p.h
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_local_backend_p.h
      2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qconnection_local_backend_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_backend_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_backend_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_backend_p.h
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_backend_p.h
        2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qconnection_qnx_backend_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_global_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_global_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_global_p.h
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_global_p.h
 2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qconnection_qnx_global_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_qiodevices_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_qiodevices_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_qiodevices_p.h
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_qiodevices_p.h
     2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qconnection_qnx_qiodevices_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_server_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_server_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_server_p.h
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_qnx_server_p.h
 2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qconnection_qnx_server_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_tcpip_backend_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_tcpip_backend_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_tcpip_backend_p.h
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnection_tcpip_backend_p.h
      2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qconnection_tcpip_backend_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnectionfactories_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnectionfactories_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnectionfactories_p.h
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qconnectionfactories_p.h
   2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qconnectionfactories_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectabstractitemmodeladapter_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectabstractitemmodeladapter_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectabstractitemmodeladapter_p.h
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectabstractitemmodeladapter_p.h
  2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include 
"../../../../../src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectabstractitemmodelreplica_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectabstractitemmodelreplica_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectabstractitemmodelreplica_p.h
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectabstractitemmodelreplica_p.h
  2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include 
"../../../../../src/remoteobjects/qremoteobjectabstractitemmodelreplica_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectnode_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectnode_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectnode_p.h
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectnode_p.h
      2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qremoteobjectnode_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectpacket_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectpacket_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectpacket_p.h
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectpacket_p.h
    2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qremoteobjectpacket_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectpendingcall_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectpendingcall_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectpendingcall_p.h
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectpendingcall_p.h
       2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qremoteobjectpendingcall_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectregistrysource_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectregistrysource_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectregistrysource_p.h
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectregistrysource_p.h
    2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qremoteobjectregistrysource_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectreplica_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectreplica_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectreplica_p.h
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectreplica_p.h
   2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qremoteobjectreplica_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectsource_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectsource_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectsource_p.h
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectsource_p.h
    2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qremoteobjectsource_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectsourceio_p.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectsourceio_p.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectsourceio_p.h
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/5.12.3/QtRemoteObjects/private/qremoteobjectsourceio_p.h
  2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1 @@
+#include "../../../../../src/remoteobjects/qremoteobjectsourceio_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/qtremoteobjectsversion.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/qtremoteobjectsversion.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRemoteObjects/qtremoteobjectsversion.h
  2019-03-11 14:59:17.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRemoteObjects/qtremoteobjectsversion.h
  2019-04-11 20:41:32.000000000 +0200
@@ -2,8 +2,8 @@
 #ifndef QT_QTREMOTEOBJECTS_VERSION_H
 #define QT_QTREMOTEOBJECTS_VERSION_H
 
-#define QTREMOTEOBJECTS_VERSION_STR "5.12.2"
+#define QTREMOTEOBJECTS_VERSION_STR "5.12.3"
 
-#define QTREMOTEOBJECTS_VERSION 0x050C02
+#define QTREMOTEOBJECTS_VERSION 0x050C03
 
 #endif // QT_QTREMOTEOBJECTS_VERSION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRepParser/qtrepparserversion.h
 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRepParser/qtrepparserversion.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/include/QtRepParser/qtrepparserversion.h
  2019-03-11 14:59:17.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/include/QtRepParser/qtrepparserversion.h
  2019-04-11 20:41:32.000000000 +0200
@@ -2,8 +2,8 @@
 #ifndef QT_QTREPPARSER_VERSION_H
 #define QT_QTREPPARSER_VERSION_H
 
-#define QTREPPARSER_VERSION_STR "5.12.2"
+#define QTREPPARSER_VERSION_STR "5.12.3"
 
-#define QTREPPARSER_VERSION 0x050C02
+#define QTREPPARSER_VERSION 0x050C03
 
 #endif // QT_QTREPPARSER_VERSION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/src/remoteobjects/doc/src/remoteobjects-index.qdoc
 
new/qtremoteobjects-everywhere-src-5.12.3/src/remoteobjects/doc/src/remoteobjects-index.qdoc
--- 
old/qtremoteobjects-everywhere-src-5.12.2/src/remoteobjects/doc/src/remoteobjects-index.qdoc
        2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/src/remoteobjects/doc/src/remoteobjects-index.qdoc
        2019-04-10 14:01:43.000000000 +0200
@@ -107,5 +107,6 @@
 \section2 Reference
 
 \l {Qt Remote Objects C++ Classes}
+\l {Qt Remote Objects QML Types}
 
 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/src/remoteobjects/qremoteobjectnode.cpp
 
new/qtremoteobjects-everywhere-src-5.12.3/src/remoteobjects/qremoteobjectnode.cpp
--- 
old/qtremoteobjects-everywhere-src-5.12.2/src/remoteobjects/qremoteobjectnode.cpp
   2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/src/remoteobjects/qremoteobjectnode.cpp
   2019-04-10 14:01:43.000000000 +0200
@@ -1597,6 +1597,12 @@
         d->setLastError(HostUrlInvalid);
         return false;
     }
+
+    if (allowedSchemas == AllowedSchemas::AllowExternalRegistration && 
QtROServerFactory::instance()->isValid(hostAddress)) {
+        qWarning() << qPrintable(objectName()) << "Overriding a valid QtRO url 
(" << hostAddress << ") with AllowExternalRegistration is not allowed.";
+        d->setLastError(HostUrlInvalid);
+        return false;
+    }
     d->remoteObjectIo = new QRemoteObjectSourceIo(hostAddress, this);
 
     if (allowedSchemas == AllowedSchemas::BuiltInSchemasOnly && 
!d->remoteObjectIo->startListening()) {
@@ -1757,9 +1763,10 @@
     Q_ASSERT(property.canConvert<QRO_>());
     QRO_ childInfo = property.value<QRO_>();
     qROPrivDebug() << "QRO_:" << childInfo.name << 
replicas.contains(childInfo.name) << replicas.keys();
-    if (replicas.contains(childInfo.name) && childInfo.isNull) {
+    if (childInfo.isNull) {
         // Either the source has changed the pointer and we need to update it, 
or the source pointer is a nullptr
-        replicas.remove(childInfo.name);
+        if (replicas.contains(childInfo.name))
+            replicas.remove(childInfo.name);
         if (childInfo.type == ObjectType::CLASS)
             retval = 
QVariant::fromValue<QRemoteObjectDynamicReplica*>(nullptr);
         else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/auto.pro 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/auto.pro
--- old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/auto.pro       
2019-02-21 13:41:06.000000000 +0100
+++ new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/auto.pro       
2019-04-10 14:01:43.000000000 +0200
@@ -24,4 +24,4 @@
 contains(QT_CONFIG, ssl): SUBDIRS += external_IODevice
 
 qtHaveModule(qml): SUBDIRS += qml
-qtConfig(process): SUBDIRS += integration_multiprocess integration_external
+qtConfig(process): SUBDIRS += integration_multiprocess integration_external 
restart
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/integration/tst_integration.cpp
 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/integration/tst_integration.cpp
--- 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/integration/tst_integration.cpp
        2019-02-21 13:41:06.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/integration/tst_integration.cpp
        2019-04-10 14:01:43.000000000 +0200
@@ -1384,6 +1384,20 @@
 
     }
 
+    void invalidExternalTest()
+    {
+        QFETCH_GLOBAL(QUrl, hostUrl);
+        if (hostUrl.scheme() != QRemoteObjectStringLiterals::tcp())
+            QSKIP("Skipping test for tcp and external backends.");
+        QRemoteObjectHost srcNode;
+        QTest::ignoreMessage(QtWarningMsg, " Overriding a valid QtRO url ( 
QUrl(\"tcp://127.0.0.1:65511\") ) with AllowExternalRegistration is not 
allowed.");
+        srcNode.setHostUrl(hostUrl, 
QRemoteObjectHost::AllowExternalRegistration);
+        QCOMPARE(srcNode.lastError(), QRemoteObjectNode::HostUrlInvalid);
+        Engine e;
+        bool res = srcNode.enableRemoting(&e);
+        QVERIFY(res == false);
+    }
+
 };
 
 QTEST_MAIN(tst_Integration)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/client/client.pro 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/client/client.pro
--- 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/client/client.pro  
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/client/client.pro  
    2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,16 @@
+TEMPLATE = app
+QT       += remoteobjects core testlib
+QT       -= gui
+
+TARGET = client
+DESTDIR = ./
+CONFIG   += c++11
+CONFIG   -= app_bundle
+
+REPC_REPLICA = ../subclass.rep
+
+SOURCES += main.cpp \
+
+HEADERS += \
+
+INCLUDEPATH += $$PWD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/client/main.cpp 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/client/main.cpp
--- 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/client/main.cpp    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/client/main.cpp    
    2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 Ford Motor Company
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtRemoteObjects module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "rep_subclass_replica.h"
+
+#include <QCoreApplication>
+#include <QtRemoteObjects/qremoteobjectnode.h>
+#include <QtTest/QtTest>
+
+class tst_Client_Process : public QObject
+{
+    Q_OBJECT
+
+private Q_SLOTS:
+    void initTestCase()
+    {
+        QLoggingCategory::setFilterRules("qt.remoteobjects.warning=true");
+        m_repNode.reset(new QRemoteObjectNode);
+        
m_repNode->connectToNode(QUrl(QStringLiteral("tcp://127.0.0.1:65217")));
+        m_rep.reset(m_repNode->acquire<ParentClassReplica>());
+        connect(m_rep.data(), &QRemoteObjectReplica::stateChanged, 
[this](QRemoteObjectReplica::State state, QRemoteObjectReplica::State 
previousState) {
+            qDebug() << "**** stateChanged" << state << previousState;
+            if (state == QRemoteObjectReplica::Suspect) {
+                qWarning() << "Replica suspect";
+                this->serverRestarted = true;
+            } else if (state == QRemoteObjectReplica::Valid) {
+                if (this->serverRestarted) {
+                    qWarning() << "Replica valid again";
+                    auto reply = m_rep->start();
+                }
+            }
+        });
+        QVERIFY(m_rep->waitForSource());
+    }
+
+    void testRun()
+    {
+        const auto objectMode = qEnvironmentVariable("ObjectMode");
+
+        qWarning() << "From client";
+        const MyPOD initialValue(42, 3.14f, QStringLiteral("SubClass"));
+        if (objectMode == QLatin1Literal("ObjectPointer")) {
+            QSignalSpy tracksSpy(m_rep->tracks(), 
&QAbstractItemModelReplica::initialized);
+            QVERIFY(m_rep->subClass() != nullptr);
+            QCOMPARE(m_rep->subClass()->myPOD(), initialValue);
+            QVERIFY(m_rep->tracks() != nullptr);
+            QVERIFY(tracksSpy.count() || tracksSpy.wait());
+        } else {
+            QVERIFY(m_rep->subClass() == nullptr);
+            QVERIFY(m_rep->tracks() == nullptr);
+        }
+        auto reply = m_rep->start();
+        QVERIFY(reply.waitForFinished());
+
+        QSignalSpy advanceSpy(m_rep.data(), SIGNAL(advance()));
+        QVERIFY(advanceSpy.wait());
+        if (objectMode == QLatin1Literal("ObjectPointer")) {
+            QVERIFY(m_rep->subClass() != nullptr);
+            QCOMPARE(m_rep->subClass()->myPOD(), initialValue);
+            QVERIFY(m_rep->tracks() != nullptr);
+        } else {
+            QVERIFY(m_rep->subClass() == nullptr);
+            QVERIFY(m_rep->tracks() == nullptr);
+        }
+    }
+
+    void cleanupTestCase()
+    {
+        auto reply = m_rep->quit();
+        QVERIFY(reply.waitForFinished());
+    }
+
+private:
+    QScopedPointer<QRemoteObjectNode> m_repNode;
+    QScopedPointer<ParentClassReplica> m_rep;
+    bool serverRestarted = false;
+};
+
+QTEST_MAIN(tst_Client_Process)
+
+#include "main.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/restart.pro 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/restart.pro
--- old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/restart.pro    
1970-01-01 01:00:00.000000000 +0100
+++ new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/restart.pro    
2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = client server tst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/server/main.cpp 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/server/main.cpp
--- 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/server/main.cpp    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/server/main.cpp    
    2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 Ford Motor Company
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtRemoteObjects module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mytestserver.h"
+#include "rep_subclass_source.h"
+
+#include <QCoreApplication>
+#include <QtTest/QtTest>
+
+class tst_Server_Process : public QObject
+{
+    Q_OBJECT
+
+private Q_SLOTS:
+    void testRun()
+    {
+        const auto runMode = qEnvironmentVariable("RunMode");
+        const auto objectMode = qEnvironmentVariable("ObjectMode");
+
+        QRemoteObjectHost 
srcNode(QUrl(QStringLiteral("tcp://127.0.0.1:65217")));
+        MyTestServer myTestServer;
+        SubClassSimpleSource subclass;
+        QStringListModel model;
+        const MyPOD initialValue(42, 3.14f, QStringLiteral("SubClass"));
+        if (objectMode == QLatin1Literal("ObjectPointer")) {
+            subclass.setMyPOD(initialValue);
+            model.setStringList(QStringList() << "Track1" << "Track2" << 
"Track3");
+            myTestServer.setSubClass(&subclass);
+            myTestServer.setTracks(&model);
+        }
+        srcNode.enableRemoting(&myTestServer);
+
+        qDebug() << "Waiting for incoming connections";
+
+        QSignalSpy waitForStartedSpy(&myTestServer, 
SIGNAL(startedChanged(bool)));
+        QVERIFY(waitForStartedSpy.isValid());
+        QVERIFY(waitForStartedSpy.wait());
+        QCOMPARE(waitForStartedSpy.value(0).value(0).toBool(), true);
+
+        // wait for delivery of events
+        QTest::qWait(200);
+
+        qDebug() << "Client connected";
+        if (runMode != QLatin1Literal("Baseline")) {
+            qDebug() << "Server quitting" << runMode;
+            if (runMode == QLatin1Literal("ServerRestartFatal"))
+                qFatal("Fatal");
+            QCoreApplication::exit();
+            return;
+        }
+        emit myTestServer.advance();
+
+        // wait for quit
+        bool quit = false;
+        connect(&myTestServer, &MyTestServer::quitApp, [&quit]{quit = true;});
+        QTRY_VERIFY_WITH_TIMEOUT(quit, 5000);
+
+        // wait for delivery of events
+        QTest::qWait(200);
+
+        qDebug() << "Done. Shutting down.";
+    }
+};
+
+QTEST_MAIN(tst_Server_Process)
+
+#include "main.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/server/mytestserver.cpp
 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/server/mytestserver.cpp
--- 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/server/mytestserver.cpp
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/server/mytestserver.cpp
        2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 Ford Motor Company
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtRemoteObjects module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qdebug.h>
+
+#include "mytestserver.h"
+#include "rep_subclass_source.h"
+
+MyTestServer::MyTestServer(QObject *parent)
+    : ParentClassSimpleSource(parent)
+{
+    qDebug() << "Server started";
+}
+
+MyTestServer::~MyTestServer()
+{
+    qDebug() << "Server stopped";
+}
+
+bool MyTestServer::start()
+{
+    setStarted(true);
+    return true;
+}
+
+bool MyTestServer::quit()
+{
+    emit quitApp();
+    return true;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/server/mytestserver.h
 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/server/mytestserver.h
--- 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/server/mytestserver.h
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/server/mytestserver.h
  2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 Ford Motor Company
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtRemoteObjects module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MYTESTSERVER_H
+#define MYTESTSERVER_H
+
+#include <QTimer>
+
+#include <QtRemoteObjects/qremoteobjectnode.h>
+#include <QtRemoteObjects/qremoteobjectsource.h>
+
+#include "rep_subclass_source.h"
+
+class MyTestServer : public ParentClassSimpleSource
+{
+    Q_OBJECT
+
+public:
+    MyTestServer(QObject *parent = nullptr);
+    ~MyTestServer() override;
+
+public Q_SLOTS:
+    bool start() override;
+    bool quit() override;
+
+Q_SIGNALS:
+    void quitApp();
+};
+
+#endif // MYTESTSERVER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/server/server.pro 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/server/server.pro
--- 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/server/server.pro  
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/server/server.pro  
    2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,19 @@
+TEMPLATE = app
+QT       += remoteobjects core testlib
+QT       -= gui
+
+TARGET = server
+DESTDIR = ./
+CONFIG   += c++11
+CONFIG   -= app_bundle
+
+REPC_SOURCE = $$PWD/../subclass.rep
+
+SOURCES += main.cpp \
+    mytestserver.cpp
+
+HEADERS += \
+    mytestserver.h
+    $$OUT_PWD/rep_subclass_source.h
+
+INCLUDEPATH += $$PWD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/subclass.rep 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/subclass.rep
--- old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/subclass.rep   
1970-01-01 01:00:00.000000000 +0100
+++ new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/subclass.rep   
2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,19 @@
+POD MyPOD(int i, float f, QString s)
+
+class SubClass
+{
+    PROP(MyPOD myPOD)
+}
+
+class ParentClass
+{
+    PROP(bool started = false)
+
+    SLOT(bool start())
+    SLOT(bool quit())
+    SIGNAL(advance())
+
+    CLASS subClass(SubClass)
+    MODEL tracks(display)
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/tst/tst.pro 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/tst/tst.pro
--- old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/tst/tst.pro    
1970-01-01 01:00:00.000000000 +0100
+++ new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/tst/tst.pro    
2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,8 @@
+CONFIG += testcase c++11
+CONFIG -= app_bundle
+TARGET = tst_restart
+DESTDIR = ./
+QT += testlib remoteobjects
+QT -= gui
+
+SOURCES += tst_restart.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/tst/tst_restart.cpp
 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/tst/tst_restart.cpp
--- 
old/qtremoteobjects-everywhere-src-5.12.2/tests/auto/restart/tst/tst_restart.cpp
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtremoteobjects-everywhere-src-5.12.3/tests/auto/restart/tst/tst_restart.cpp
    2019-04-10 14:01:43.000000000 +0200
@@ -0,0 +1,142 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 Ford Motor Company
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtRemoteObjects module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+#include <QMetaType>
+#include <QProcess>
+#include <QStandardPaths>
+
+namespace {
+
+QString findExecutable(const QString &executableName, const QStringList &paths)
+{
+    const auto path = QStandardPaths::findExecutable(executableName, paths);
+    if (!path.isEmpty()) {
+        return path;
+    }
+
+    qWarning() << "Could not find executable:" << executableName << "in any 
of" << paths;
+    return QString();
+}
+
+}
+
+class tst_Restart: public QObject
+{
+    Q_OBJECT
+
+public:
+    enum RunMode { Baseline, ServerRestartGraceful, ServerRestartFatal };
+    enum ObjectMode { NullPointer, ObjectPointer };
+    Q_ENUM(RunMode)
+    Q_ENUM(ObjectMode)
+
+private slots:
+    void initTestCase()
+    {
+        QLoggingCategory::setFilterRules("qt.remoteobjects.warning=false");
+    }
+
+    void cleanup()
+    {
+        // wait for delivery of RemoveObject events to the source
+        QTest::qWait(200);
+    }
+
+    void testRun_data()
+    {
+        QTest::addColumn<RunMode>("runMode");
+        QTest::addColumn<ObjectMode>("objectMode");
+        auto runModeMeta = QMetaEnum::fromType<RunMode>();
+        auto objectModeMeta = QMetaEnum::fromType<ObjectMode>();
+        for (int i = 0; i < runModeMeta.keyCount(); i++) {
+            for (int j = 0; j < objectModeMeta.keyCount(); j++) {
+                auto ba = QByteArray(runModeMeta.valueToKey(i));
+                ba = ba.append("_").append(objectModeMeta.valueToKey(j));
+                QTest::newRow(ba.data()) << static_cast<RunMode>(i) << 
static_cast<ObjectMode>(j);
+            }
+        }
+    }
+
+    void testRun()
+    {
+        QFETCH(RunMode, runMode);
+        QFETCH(ObjectMode, objectMode);
+
+        qDebug() << "Starting server process" << runMode;
+        bool serverRestart = runMode == ServerRestartFatal || runMode == 
ServerRestartGraceful;
+        QProcess serverProc;
+        serverProc.setProcessChannelMode(QProcess::ForwardedChannels);
+        QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
+        env.insert("RunMode", QVariant::fromValue(runMode).toString());
+        env.insert("ObjectMode", QVariant::fromValue(objectMode).toString());
+        serverProc.setProcessEnvironment(env);
+        serverProc.start(findExecutable("server", {
+            QCoreApplication::applicationDirPath() + "/../server/"
+        }));
+        QVERIFY(serverProc.waitForStarted());
+
+        // wait for server start
+        QTest::qWait(200);
+
+        qDebug() << "Starting client process";
+        QProcess clientProc;
+        clientProc.setProcessChannelMode(QProcess::ForwardedChannels);
+        clientProc.setProcessEnvironment(env);
+        clientProc.start(findExecutable("client", {
+            QCoreApplication::applicationDirPath() + "/../client/"
+        }));
+        QVERIFY(clientProc.waitForStarted());
+
+        if (serverRestart) {
+            env.insert("RunMode", QVariant::fromValue(Baseline).toString()); 
// Don't include ServerRestart environment variable this time
+            qDebug() << "Waiting for server exit";
+            QVERIFY(serverProc.waitForFinished());
+            if (runMode == ServerRestartFatal)
+                QVERIFY(serverProc.exitCode() != 0);
+            else
+                QCOMPARE(serverProc.exitCode(), 0);
+            qDebug() << "Restarting server";
+            serverProc.setProcessEnvironment(env);
+            serverProc.start(findExecutable("server", {
+                QCoreApplication::applicationDirPath() + "/../server/"
+            }));
+            QVERIFY(serverProc.waitForStarted());
+        }
+
+        QVERIFY(clientProc.waitForFinished());
+        QVERIFY(serverProc.waitForFinished());
+
+        QCOMPARE(serverProc.exitCode(), 0);
+        QCOMPARE(clientProc.exitCode(), 0);
+    }
+};
+
+QTEST_MAIN(tst_Restart)
+
+#include "tst_restart.moc"


Reply via email to