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