Commit ebfa69d78e47243b984a674d28e77919bd80c537
1 parent
858ac02b
Exists in
master
and in
5 other branches
Incluindo excessao quando a inicialização falhar
Showing
3 changed files
with
36 additions
and
0 deletions
Show diff stats
src/oxt/main.cxx
| ... | ... | @@ -301,6 +301,8 @@ void pw3270::uno_impl::failed(const char *fmt, ...) throw( ::com::sun::star::uno |
| 301 | 301 | closelog(); |
| 302 | 302 | #endif // HAVE_SYSLOG |
| 303 | 303 | |
| 304 | + trace("%s: %s",__FUNCTION__,msg); | |
| 305 | + | |
| 304 | 306 | ::rtl::OUString str = OUString(msg, strlen(msg), RTL_TEXTENCODING_UTF8, RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); |
| 305 | 307 | |
| 306 | 308 | free(msg); | ... | ... |
src/oxt/remote.cxx
| ... | ... | @@ -224,8 +224,11 @@ pw3270::ipc3270_session::ipc3270_session(uno_impl *obj, const char *name) throw( |
| 224 | 224 | |
| 225 | 225 | conn = dbus_bus_get(DBUS_BUS_SESSION, &err); |
| 226 | 226 | |
| 227 | + trace("conn=%p",conn); | |
| 228 | + | |
| 227 | 229 | if (dbus_error_is_set(&err)) |
| 228 | 230 | { |
| 231 | + trace("DBUS Connection Error (%s)", err.message); | |
| 229 | 232 | obj->failed("DBUS Connection Error (%s)", err.message); |
| 230 | 233 | dbus_error_free(&err); |
| 231 | 234 | return; |
| ... | ... | @@ -253,7 +256,27 @@ pw3270::ipc3270_session::ipc3270_session(uno_impl *obj, const char *name) throw( |
| 253 | 256 | conn = NULL; |
| 254 | 257 | return; |
| 255 | 258 | } |
| 259 | + else | |
| 260 | + { | |
| 261 | + DBusMessage * reply; | |
| 262 | + DBusMessage * msg = create_message("getRevision"); | |
| 263 | + DBusError error; | |
| 264 | + | |
| 265 | + dbus_error_init(&error); | |
| 266 | + reply = dbus_connection_send_with_reply_and_block(conn,msg,10000,&error); | |
| 267 | + dbus_message_unref(msg); | |
| 256 | 268 | |
| 269 | + if(reply) | |
| 270 | + { | |
| 271 | + log("%s","PW3270 DBus object found"); | |
| 272 | + dbus_message_unref(reply); | |
| 273 | + } | |
| 274 | + else | |
| 275 | + { | |
| 276 | + obj->failed("DBUS error: %s",error.message); | |
| 277 | + dbus_error_free(&error); | |
| 278 | + } | |
| 279 | + } | |
| 257 | 280 | #else |
| 258 | 281 | |
| 259 | 282 | #endif // HAVE_DBUS | ... | ... |
src/oxt/testprogram.cxx
| ... | ... | @@ -107,8 +107,19 @@ int SAL_CALL main(int argc, char **argv) |
| 107 | 107 | char buffer[4096]; |
| 108 | 108 | OString str; |
| 109 | 109 | |
| 110 | + try | |
| 111 | + { | |
| 112 | + | |
| 110 | 113 | srv->setSession(OUString::createFromAscii("pw3270:a")); |
| 111 | 114 | |
| 115 | + } | |
| 116 | + catch( RuntimeException & e ) | |
| 117 | + { | |
| 118 | + OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ); | |
| 119 | + fprintf( stderr, "%s\n", o.pData->buffer ); | |
| 120 | + exit(-1); | |
| 121 | + } | |
| 122 | + | |
| 112 | 123 | printf("Revision:\t%d\n",srv->getRevision()); |
| 113 | 124 | |
| 114 | 125 | srv->dsTrace(true); | ... | ... |