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); | ... | ... |