Commit ebfa69d78e47243b984a674d28e77919bd80c537

Authored by perry.werneck@gmail.com
1 parent 858ac02b

Incluindo excessao quando a inicialização falhar

src/oxt/main.cxx
@@ -301,6 +301,8 @@ void pw3270::uno_impl::failed(const char *fmt, ...) throw( ::com::sun::star::uno @@ -301,6 +301,8 @@ void pw3270::uno_impl::failed(const char *fmt, ...) throw( ::com::sun::star::uno
301 closelog(); 301 closelog();
302 #endif // HAVE_SYSLOG 302 #endif // HAVE_SYSLOG
303 303
  304 + trace("%s: %s",__FUNCTION__,msg);
  305 +
304 ::rtl::OUString str = OUString(msg, strlen(msg), RTL_TEXTENCODING_UTF8, RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); 306 ::rtl::OUString str = OUString(msg, strlen(msg), RTL_TEXTENCODING_UTF8, RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE);
305 307
306 free(msg); 308 free(msg);
src/oxt/remote.cxx
@@ -224,8 +224,11 @@ pw3270::ipc3270_session::ipc3270_session(uno_impl *obj, const char *name) throw( @@ -224,8 +224,11 @@ pw3270::ipc3270_session::ipc3270_session(uno_impl *obj, const char *name) throw(
224 224
225 conn = dbus_bus_get(DBUS_BUS_SESSION, &err); 225 conn = dbus_bus_get(DBUS_BUS_SESSION, &err);
226 226
  227 + trace("conn=%p",conn);
  228 +
227 if (dbus_error_is_set(&err)) 229 if (dbus_error_is_set(&err))
228 { 230 {
  231 + trace("DBUS Connection Error (%s)", err.message);
229 obj->failed("DBUS Connection Error (%s)", err.message); 232 obj->failed("DBUS Connection Error (%s)", err.message);
230 dbus_error_free(&err); 233 dbus_error_free(&err);
231 return; 234 return;
@@ -253,7 +256,27 @@ pw3270::ipc3270_session::ipc3270_session(uno_impl *obj, const char *name) throw( @@ -253,7 +256,27 @@ pw3270::ipc3270_session::ipc3270_session(uno_impl *obj, const char *name) throw(
253 conn = NULL; 256 conn = NULL;
254 return; 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 #else 280 #else
258 281
259 #endif // HAVE_DBUS 282 #endif // HAVE_DBUS
src/oxt/testprogram.cxx
@@ -107,8 +107,19 @@ int SAL_CALL main(int argc, char **argv) @@ -107,8 +107,19 @@ int SAL_CALL main(int argc, char **argv)
107 char buffer[4096]; 107 char buffer[4096];
108 OString str; 108 OString str;
109 109
  110 + try
  111 + {
  112 +
110 srv->setSession(OUString::createFromAscii("pw3270:a")); 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 printf("Revision:\t%d\n",srv->getRevision()); 123 printf("Revision:\t%d\n",srv->getRevision());
113 124
114 srv->dsTrace(true); 125 srv->dsTrace(true);