public synchronized void syncSigId()
{
RDHKey key = getKey();
if (key == null)
{
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Bitte w�hlen Sie eine Schl�sseldatei aus"),StatusBarMessage.TYPE_ERROR));
return;
}
HBCIPassport passport = null;
HBCIHandler handler = null;
try
{
String s = i18n.tr("Sind Sie sicher?");
if (!Application.getCallback().askUser(s))
return;
passport = key.load();
passport.syncSigId();
QueryMessage msg = new QueryMessage(passport);
Application.getMessagingFactory().getMessagingQueue("hibiscus.passport.rdh.hbciversion").sendSyncMessage(msg);
Object data = msg.getData();
if (data == null || !(data instanceof String))
throw new ApplicationException(i18n.tr("HBCI-Version nicht ermittelbar"));
String version = (String)msg.getData();
Logger.info("using hbci version: " + version);
handler = new HBCIHandler(version,passport);
handler.close();
handler = null;
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Signatur-ID erfolgreich synchronisiert"), StatusBarMessage.TYPE_SUCCESS));
}
catch (ApplicationException ae)
{
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Fehler beim Synchronisieren der Signatur: {0}",ae.getMessage()), StatusBarMessage.TYPE_ERROR));
}
catch (OperationCanceledException oce)
{
Logger.warn("operation cancelled");
}
catch (Exception e)
{
Throwable current = e;
for (int i=0;i<10;++i)
{
if (current == null)
break;
if (current instanceof NeedKeyAckException)
{
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Schl�ssel noch nicht freigegeben"), StatusBarMessage.TYPE_ERROR));
return;
}
current = current.getCause();
}
Logger.error("unable to sync key ",e);
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Fehler beim Synchronisieren der Signatur: {0}",e.getMessage()), StatusBarMessage.TYPE_ERROR));
}
finally
{
try
{