[sip-comm-dev] password storage exception


#1

Hey Dmitri,

I am getting the following on startup:

     [java] 13:47:31.160 SEVERE: impl.protocol.AccountManagerImpl.doLoadStoredAccounts().205 Failed to load account {SERVER_PORT=5060, PROXY_PORT=5060, KEEP_ALIVE_METHOD=REGISTER, SUBSCRIPTION_EXPIRATION=3600, DISPLAY_NAME=??? ???, ACCOUNT_UID=SIP:emcho@, IS_PRESENCE_ENABLED=true, USER_ID=emcho, FORCE_P2P_MODE=false, DEFAULT_SIPZRTP_ATTRIBUTE=true, DEFAULT_ENCRYPTION=true, PREFERRED_TRANSPORT=UDP, PROTOCOL_NAME=SIP, ENCRYPTED_PASSWORD=j32mP2UYwgwq7J7ErdndEg==, KEEP_ALIVE_INTERVAL=25, PASSWORD=, POLLING_PERIOD=30}
     [java] java.lang.NullPointerException
     [java] at net.java.sip.communicator.impl.credentialsstorage.CredentialsStorageServiceImpl.showPasswordPrompt(CredentialsStorageServiceImpl.java:439)
     [java] at net.java.sip.communicator.impl.credentialsstorage.CredentialsStorageServiceImpl.createCrypto(CredentialsStorageServiceImpl.java:395)
     [java] at net.java.sip.communicator.impl.credentialsstorage.CredentialsStorageServiceImpl.storePassword(CredentialsStorageServiceImpl.java:109)
     [java] at net.java.sip.communicator.impl.protocol.AccountManagerImpl.storeAccount(AccountManagerImpl.java:604)
     [java] at net.java.sip.communicator.service.protocol.ProtocolProviderFactory.storeAccount(ProtocolProviderFactory.java:453)
     [java] at net.java.sip.communicator.impl.protocol.sip.ProtocolProviderFactorySipImpl.createService(ProtocolProviderFactorySipImpl.java:233)
     [java] at net.java.sip.communicator.service.protocol.ProtocolProviderFactory.loadAccount(ProtocolProviderFactory.java:624)
     [java] at net.java.sip.communicator.impl.protocol.AccountManagerImpl.doLoadStoredAccounts(AccountManagerImpl.java:195)
     [java] at net.java.sip.communicator.impl.protocol.AccountManagerImpl.loadStoredAccounts(AccountManagerImpl.java:346)
     [java] at net.java.sip.communicator.impl.protocol.AccountManagerImpl.runInLoadStoredAccountsThread(AccountManagerImpl.java:459)
     [java] at net.java.sip.communicator.impl.protocol.AccountManagerImpl.access$100(AccountManagerImpl.java:26)
     [java] at net.java.sip.communicator.impl.protocol.AccountManagerImpl$2.run(AccountManagerImpl.java:386)

Also, it would now happen quite often that SC would ask me to re-enter
passwords I've previously saved. I'll look further these days but
thought I'd mention it in case you have any ideas.

Cheers,
Emil

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#2

Hi Emil,
Thanks for reporting this.

Hey Dmitri,

I am getting the following on startup:

 \[java\] 13:47:31\.160 SEVERE: impl\.protocol\.AccountManagerImpl\.doLoadStoredAccounts\(\)\.205 Failed to load account \{SERVER\_PORT=5060, PROXY\_PORT=5060, KEEP\_ALIVE\_METHOD=REGISTER, SUBSCRIPTION\_EXPIRATION=3600, DISPLAY\_NAME=???? ????, ACCOUNT\_UID=SIP:emcho@, IS\_PRESENCE\_ENABLED=true, USER\_ID=emcho, FORCE\_P2P\_MODE=false, DEFAULT\_SIPZRTP\_ATTRIBUTE=true, DEFAULT\_ENCRYPTION=true, PREFERRED\_TRANSPORT=UDP, PROTOCOL\_NAME=SIP, ENCRYPTED\_PASSWORD=j32mP2UYwgwq7J7ErdndEg==, KEEP\_ALIVE\_INTERVAL=25, PASSWORD=, POLLING\_PERIOD=30\}
 \[java\] java\.lang\.NullPointerException
 \[java\]   at net\.java\.sip\.communicator\.impl\.credentialsstorage\.CredentialsStorageServiceImpl\.showPasswordPrompt\(CredentialsStorageServiceImpl\.java:439\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.credentialsstorage\.CredentialsStorageServiceImpl\.createCrypto\(CredentialsStorageServiceImpl\.java:395\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.credentialsstorage\.CredentialsStorageServiceImpl\.storePassword\(CredentialsStorageServiceImpl\.java:109\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.protocol\.AccountManagerImpl\.storeAccount\(AccountManagerImpl\.java:604\)
 \[java\]   at net\.java\.sip\.communicator\.service\.protocol\.ProtocolProviderFactory\.storeAccount\(ProtocolProviderFactory\.java:453\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.protocol\.sip\.ProtocolProviderFactorySipImpl\.createService\(ProtocolProviderFactorySipImpl\.java:233\)
 \[java\]   at net\.java\.sip\.communicator\.service\.protocol\.ProtocolProviderFactory\.loadAccount\(ProtocolProviderFactory\.java:624\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.protocol\.AccountManagerImpl\.doLoadStoredAccounts\(AccountManagerImpl\.java:195\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.protocol\.AccountManagerImpl\.loadStoredAccounts\(AccountManagerImpl\.java:346\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.protocol\.AccountManagerImpl\.runInLoadStoredAccountsThread\(AccountManagerImpl\.java:459\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.protocol\.AccountManagerImpl\.access$100\(AccountManagerImpl\.java:26\)
 \[java\]   at net\.java\.sip\.communicator\.impl\.protocol\.AccountManagerImpl$2\.run\(AccountManagerImpl\.java:386\)

It seems that you have an empty ...PASSWORD= property in your
configuration. This causes the execution of an if condition in
AccountManagerImpl.storeAccount. However since we are using a new
approach to password migration, this condition is unnecessary and can
be removed. A similar condition in doLoadStoredAccounts() can also be
removed. With these 2 blocks of code deleted the exception should not
happen.
I also tested the migration code with an empty PASSWORD property and
it causes a nullpointer in Base64.decode, so I fixed that too.
With this patch applied you can unset the master password, restart SC
and all empty old PASSWORD properties will be removed and non-empty
ones migrated.

Also, it would now happen quite often that SC would ask me to re-enter
passwords I've previously saved. I'll look further these days but
thought I'd mention it in case you have any ideas.

More information on this would be great. I'll try to do some
experimenting as well.

Cheers,
Dmitri

fix.patch (3.98 KB)

···

2010/7/25 Emil Ivov <emcho@sip-communicator.org>:


#3

Just to share my opinion that I don't like making users follow such
out-of-the-ordinary-usage procedures. Dmitri, could you please explain
why it's at all necessary. As far as Emil's stacktrace shows, he has
an ENCRYPTED_PASSWORD so couldn't you just ignore/remove PASSWORD in
the case?

···

On Sun, Jul 25, 2010 at 4:29 PM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

With this patch applied you can unset the master password, restart SC
and all empty old PASSWORD properties will be removed and non-empty
ones migrated.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#4

Re: fix.patch, I committed a part of it in r7506 in order to try to
remedy the NullPointerExceptions reported by Emil and Yana. I wasn't
completely satisfied with the broken compatibility which seemed to
have sneaked in past me so I didn't commit the part which removed code
from AccountManagerImpl and instead tried to protect it with
!CredentialsStorageService.isStoredEncrypted. Dmitri, please examine
my commit and let me know if there are (potential) problems.

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#5

Hi,

With this patch applied you can unset the master password, restart SC
and all empty old PASSWORD properties will be removed and non-empty
ones migrated.

Just to share my opinion that I don't like making users follow such
out-of-the-ordinary-usage procedures. Dmitri, could you please explain
why it's at all necessary.

Because the migration happens on credentialsservice startup and if
there are old properties
in the configuration to migrate AND there is a MP set, the migration
cannot happen since it requires the graphical MP input, but that would
fail during bundle startup.

As far as Emil's stacktrace shows, he has
an ENCRYPTED_PASSWORD so couldn't you just ignore/remove PASSWORD in
the case?

Yes, exactly, when those 2 blocks of code (that check for PASSWORD)
from AccountManagerImpl are removed, the PASSWORD property would be
ignored.

Cheers,
Dmitri

···

On Sun, Jul 25, 2010 at 4:47 PM, Lubomir Marinov <lubo@sip-communicator.org> wrote:

On Sun, Jul 25, 2010 at 4:29 PM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#6

storeAccount() is ok, since that can be called when saving a new
account with the in-memory PASSWORD property set (I forgot about that
earlier). But I'm not so sure about why we need that code in
doLoadStoredAccounts(). After migration happens there should not be
any PASSWORD properties in the configuration, and it's expected to
happen before doLoadStoredAccounts().

···

On Mon, Jul 26, 2010 at 12:15 PM, Lubomir Marinov <lubo@sip-communicator.org> wrote:

Re: fix.patch, I committed a part of it in r7506 in order to try to
remedy the NullPointerExceptions reported by Emil and Yana. I wasn't
completely satisfied with the broken compatibility which seemed to
have sneaked in past me so I didn't commit the part which removed code
from AccountManagerImpl and instead tried to protect it with
!CredentialsStorageService.isStoredEncrypted. Dmitri, please examine
my commit and let me know if there are (potential) problems.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#7

As far as I understand, the scenario in which you have properties to
migrate and there is a master password set isn't really expected. But
Emil has shown us that it's indeed a possible scenario. I believe in
the case it is possible to wait for the UIService to be registered in
order to do the migration after asking for the password.

···

On Sun, Jul 25, 2010 at 5:44 PM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

On Sun, Jul 25, 2010 at 4:47 PM, Lubomir Marinov > <lubo@sip-communicator.org> wrote:

On Sun, Jul 25, 2010 at 4:29 PM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

With this patch applied you can unset the master password, restart SC
and all empty old PASSWORD properties will be removed and non-empty
ones migrated.

Just to share my opinion that I don't like making users follow such
out-of-the-ordinary-usage procedures. Dmitri, could you please explain
why it's at all necessary.

Because the migration happens on credentialsservice startup and if
there are old properties
in the configuration to migrate AND there is a MP set, the migration
cannot happen since it requires the graphical MP input, but that would
fail during bundle startup.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#8

Hi,
I tried calling the migration code not on credentialsservice startup,
but in GuiActivator.start, after UIService is registered (like Lubomir
suggested). In this case the MP input is shown nicely and the
migration can proceed. If you think this is a good idea to put it
there, then I can provide a patch.

Cheers,
Dmitri

···

On Sun, Jul 25, 2010 at 6:39 PM, Lubomir Marinov <lubo@sip-communicator.org> wrote:

On Sun, Jul 25, 2010 at 5:44 PM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

On Sun, Jul 25, 2010 at 4:47 PM, Lubomir Marinov >> <lubo@sip-communicator.org> wrote:

On Sun, Jul 25, 2010 at 4:29 PM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

With this patch applied you can unset the master password, restart SC
and all empty old PASSWORD properties will be removed and non-empty
ones migrated.

Just to share my opinion that I don't like making users follow such
out-of-the-ordinary-usage procedures. Dmitri, could you please explain
why it's at all necessary.

Because the migration happens on credentialsservice startup and if
there are old properties
in the configuration to migrate AND there is a MP set, the migration
cannot happen since it requires the graphical MP input, but that would
fail during bundle startup.

As far as I understand, the scenario in which you have properties to
migrate and there is a master password set isn't really expected. But
Emil has shown us that it's indeed a possible scenario. I believe in
the case it is possible to wait for the UIService to be registered in
order to do the migration after asking for the password.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#9

You don't have to put it in GuiActivator.start. Migrate whatever you
can in your CredentialsStorageActivator and if it turns out that you
need the UIService for a certain migration at this time, listen to
your BundleContext for an event which notifies you that a UIService
has been registered into it and execute the migration in question.

···

On Mon, Jul 26, 2010 at 11:54 AM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

I tried calling the migration code not on credentialsservice startup,
but in GuiActivator.start, after UIService is registered (like Lubomir
suggested). In this case the MP input is shown nicely and the
migration can proceed. If you think this is a good idea to put it
there, then I can provide a patch.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#10

Ok, this seems a good solution, just one question. Does account
loading begin after all the services are registered or during that
time? If during, then the migration might happen after the account is
loaded. If after, then it's fine.

···

On Mon, Jul 26, 2010 at 11:58 AM, Lubomir Marinov <lubo@sip-communicator.org> wrote:

On Mon, Jul 26, 2010 at 11:54 AM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

I tried calling the migration code not on credentialsservice startup,
but in GuiActivator.start, after UIService is registered (like Lubomir
suggested). In this case the MP input is shown nicely and the
migration can proceed. If you think this is a good idea to put it
there, then I can provide a patch.

You don't have to put it in GuiActivator.start. Migrate whatever you
can in your CredentialsStorageActivator and if it turns out that you
need the UIService for a certain migration at this time, listen to
your BundleContext for an event which notifies you that a UIService
has been registered into it and execute the migration in question.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#11

Hey Dmitri,

One quick comment

На 26.07.10 11:12, Dmitri Melnikov написа:

Ok, this seems a good solution, just one question. Does account
loading begin after all the services are registered or during that
time? If during, then the migration might happen after the account is
loaded. If after, then it's fine.

We may want to cover all cases here, and just make sure that we
synchronize migration and password queries.

Cheers,
Emil

···

On Mon, Jul 26, 2010 at 11:58 AM, Lubomir Marinov > <lubo@sip-communicator.org> wrote:

On Mon, Jul 26, 2010 at 11:54 AM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

I tried calling the migration code not on credentialsservice startup,
but in GuiActivator.start, after UIService is registered (like Lubomir
suggested). In this case the MP input is shown nicely and the
migration can proceed. If you think this is a good idea to put it
there, then I can provide a patch.

You don't have to put it in GuiActivator.start. Migrate whatever you
can in your CredentialsStorageActivator and if it turns out that you
need the UIService for a certain migration at this time, listen to
your BundleContext for an event which notifies you that a UIService
has been registered into it and execute the migration in question.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

--
Emil Ivov, Ph.D. 67000 Strasbourg,
Project Lead France
SIP Communicator
emcho@sip-communicator.org PHONE: +33.1.77.62.43.30
http://sip-communicator.org FAX: +33.1.77.62.47.31

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#12

Hi,

I made a patch that makes CredentialsStorageServiceImpl implement
ServiceListener and the password migration now happens upon UIService
registration. Password storing and loading also wait for that event to
happen and only then proceed. With this patch the password migration
can happen with MP set.

Cheers,
Dmitri

uiRegistration.patch (4.64 KB)


#13

Re: uiRegistration.patch, I'm afraid I cannot commit it because of the
moving of UIServiceImpl#loadApplicationGui() before the registration
of the UIService in the BundleContext - too much is happening in
loadApplicationGui for me to be comfortable with such a modification.
I tried not moving loadApplicationGui but then the master password
prompt appears before the L&F of SIP Communicator is set, an
OperationFailedException occurs and the MainFrame doesn't appear until
the master password prompt is dismissed. I wander what may be an
appropriate way to wait for the UIService to finish its
loadApplicationGui...

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#14

Dear Dmitri,

We're trying to tie up the loose ends of your Google Summer of Code
2010 projects for the purposes of preparing your evaluation and Emil
noted that the uiRegistration.patch has not been committed. Please
consult my reason for not committing the uiRegistration.patch
modifications and offer a new solution which overcomes my reservation.

Regards,
Lubomir

···

On Sat, Aug 7, 2010 at 1:57 AM, Lubomir Marinov <lubo@sip-communicator.org> wrote:

Re: uiRegistration.patch, I'm afraid I cannot commit it because of the
moving of UIServiceImpl#loadApplicationGui() before the registration
of the UIService in the BundleContext - too much is happening in
loadApplicationGui for me to be comfortable with such a modification.
I tried not moving loadApplicationGui but then the master password
prompt appears before the L&F of SIP Communicator is set, an
OperationFailedException occurs and the MainFrame doesn't appear until
the master password prompt is dismissed. I wander what may be an
appropriate way to wait for the UIService to finish its
loadApplicationGui...

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#15

Hi,

We had a small discussion with Lubomir about this and we both have a
question about moving of the UIServiceImpl#loadApplicationGui() in
GuiActivator as done in uiRegistration.patch. Perhaps Yana or other UI
developers could answer.
My argument is that when a bundle sends a registration complete event
to its listeners they can assume that it's fully functional and use
it, but this is not the case with UIService since it does not have the
L&F yet if loadApplicationGui() is where it is right now - after the
service is registered. When moved L&F becomes OK. I noticed that I had
this change was made in my code and there do not seem to be any
problems, but of course I haven't tested everything.

Cheers,
Dmitri

···

On Mon, Aug 16, 2010 at 3:01 PM, Lubomir Marinov <lubo@sip-communicator.org> wrote:

On Sat, Aug 7, 2010 at 1:57 AM, Lubomir Marinov > <lubo@sip-communicator.org> wrote:

Re: uiRegistration.patch, I'm afraid I cannot commit it because of the
moving of UIServiceImpl#loadApplicationGui() before the registration
of the UIService in the BundleContext - too much is happening in
loadApplicationGui for me to be comfortable with such a modification.
I tried not moving loadApplicationGui but then the master password
prompt appears before the L&F of SIP Communicator is set, an
OperationFailedException occurs and the MainFrame doesn't appear until
the master password prompt is dismissed. I wander what may be an
appropriate way to wait for the UIService to finish its
loadApplicationGui...

Dear Dmitri,

We're trying to tie up the loose ends of your Google Summer of Code
2010 projects for the purposes of preparing your evaluation and Emil
noted that the uiRegistration.patch has not been committed. Please
consult my reason for not committing the uiRegistration.patch
modifications and offer a new solution which overcomes my reservation.

Regards,
Lubomir

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#16

Hi Dmitri,

I completely agree with you and Lubomir. You can move the uiService.loadApplicationGui(); before the service registration. I don't think there should be any problems, but even if something appears this is the right way to do it, so we should fix them as they appear. So, go ahead with the change.

Cheers,
Yana

···

On Aug 16, 2010, at 3:20 PM, Dmitri Melnikov wrote:

Hi,

We had a small discussion with Lubomir about this and we both have a
question about moving of the UIServiceImpl#loadApplicationGui() in
GuiActivator as done in uiRegistration.patch. Perhaps Yana or other UI
developers could answer.
My argument is that when a bundle sends a registration complete event
to its listeners they can assume that it's fully functional and use
it, but this is not the case with UIService since it does not have the
L&F yet if loadApplicationGui() is where it is right now - after the
service is registered. When moved L&F becomes OK. I noticed that I had
this change was made in my code and there do not seem to be any
problems, but of course I haven't tested everything.

Cheers,
Dmitri

On Mon, Aug 16, 2010 at 3:01 PM, Lubomir Marinov > <lubo@sip-communicator.org> wrote:

On Sat, Aug 7, 2010 at 1:57 AM, Lubomir Marinov >> <lubo@sip-communicator.org> wrote:

Re: uiRegistration.patch, I'm afraid I cannot commit it because of the
moving of UIServiceImpl#loadApplicationGui() before the registration
of the UIService in the BundleContext - too much is happening in
loadApplicationGui for me to be comfortable with such a modification.
I tried not moving loadApplicationGui but then the master password
prompt appears before the L&F of SIP Communicator is set, an
OperationFailedException occurs and the MainFrame doesn't appear until
the master password prompt is dismissed. I wander what may be an
appropriate way to wait for the UIService to finish its
loadApplicationGui...

Dear Dmitri,

We're trying to tie up the loose ends of your Google Summer of Code
2010 projects for the purposes of preparing your evaluation and Emil
noted that the uiRegistration.patch has not been committed. Please
consult my reason for not committing the uiRegistration.patch
modifications and offer a new solution which overcomes my reservation.

Regards,
Lubomir

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#17

Yana, thank you very much for the fast response!

Dmitri, with Yana's blessing of the move of
UIServiceImpl#loadApplicationGui(), I committed uiRegistration.patch
as r7591. The changes of the patch caused a race condition manifesting
itself as two master password prompts showing consecutively on
application start-up and I had to further modify your code before I
could go on with the commit.

···

On Mon, Aug 16, 2010 at 4:36 PM, Yana Stamcheva <yana@sip-communicator.org> wrote:

You can move the uiService.loadApplicationGui(); before the service registration.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#18

Hi, Lubomir!

Thanks for making the necessary fixes and integrating the patch!

Cheers,
Dmitri

···

On Mon, Aug 16, 2010 at 8:36 PM, Lubomir Marinov <lubo@sip-communicator.org> wrote:

On Mon, Aug 16, 2010 at 4:36 PM, Yana Stamcheva > <yana@sip-communicator.org> wrote:

You can move the uiService.loadApplicationGui(); before the service registration.

Yana, thank you very much for the fast response!

Dmitri, with Yana's blessing of the move of
UIServiceImpl#loadApplicationGui(), I committed uiRegistration.patch
as r7591. The changes of the patch caused a race condition manifesting
itself as two master password prompts showing consecutively on
application start-up and I had to further modify your code before I
could go on with the commit.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net