Version: 12.0.0-rc-23-10
Build #: 29782
Build Date: 2012-Oct-17 11:35:01 AM
Operating Environment: Linux (3.2.0-29-generic, amd64) / UTF-8 / en / US / Sun Microsystems Inc. 1.6.0_35-b10
Memory: Max=3,819,634,688; Total=358,481,920; Free=255,294,616; CPUs=8
1. Connect to PostgreSQL server 8.1+
2. Navigate to Security-->Users and try to create a new user by entering a username, ID and password
3. Click on the Create Icon
The user is created but the dialog does NOT close. If you click on the Create button again, you will see a message ERROR: role " " already exists
Note: This does not occur for PostgreSQL 8.0 but occurs for all other versions of PostgreSQL
|
68 KB
The reason that the User dialog did not close is because the following call in CommonSchemaTab::onOk() method returns a 'false' value:
line #812 boolean success = CommonSchemaUtil.executeDDL(this, _connSettings, _conn, bRunInTransaction, result._sqlStatements, false, executeUpdate(), false, bSemiColonSep, this, result);
if 'success' is false, the dialog won't close.
The reason that 'success' has a return value of false is because a warning message is generated:
'SYSID can no longer be specified'
and since the User dialog did not offer a Message tab, hence, you won't see that warning message.
Reassign to Niels so that he can decide how to fix this problem.
SYSID is no longer allowed as of version 8.1 and is now removed from the create new user dialog. The fact that we set success to false when a warning is returned means we require a warning message tab and its functionality. The error that caused us to open this issue will no longer accur but others errors like this can happen if we don't have a way to handle warnings.
SYSID is no longer allowed as of version 8.1 and is now removed from the create new user dialog. The fact that we set success to false when a warning is returned means we require a warning message tab and its functionality. The error that caused us to open this issue will no longer accur but others errors like this can happen if we don't have a way to handle warnings.
All of visual editing dialog classes are derived from the CommonSchemaTab class which offers two constructors; these 2 constructors take exactly the same arguments except one of them has an addition boolean flag at the end. That additional boolean flag is used to control whether the Message tab should be displayed.
C1 - construct 1 with message tab disabled
C2 - construct 2 with message tab enabled
All of schema related visual editing dialogs are derived from the C2 constructor. There are many visual editing dialogs that are derived from the C1 constructor, for examples, some DBA-Tool/Manage/Security related dialogs, the PostgreSQL User dialog is one of these dialogs.
Reassign this issue to Niels so that he can decided whether to enable the Message tab in these dialogs, and if yes, when.
All of visual editing dialog classes are derived from the CommonSchemaTab class which offers two constructors; these 2 constructors take exactly the same arguments except one of them has an addition boolean flag at the end. That additional boolean flag is used to control whether the Message tab should be displayed.
C1 - construct 1 with message tab disabled
C2 - construct 2 with message tab enabled
All of schema related visual editing dialogs are derived from the C2 constructor. There are many visual editing dialogs that are derived from the C1 constructor, for examples, some DBA-Tool/Manage/Security related dialogs, the PostgreSQL User dialog is one of these dialogs.
Reassign this issue to Niels so that he can decided whether to enable the Message tab in these dialogs, and if yes, when.
Issue #7813 |
Closed |
Fixed |
Resolved |
Completion |
No due date |
Fixed Build 12.0.0-rc-23-16 |
No time estimate |
The reason that the User dialog did not close is because the following call in CommonSchemaTab::onOk() method returns a 'false' value:
line #812 boolean success = CommonSchemaUtil.executeDDL(this, _connSettings, _conn, bRunInTransaction, result._sqlStatements, false, executeUpdate(), false, bSemiColonSep, this, result);
if 'success' is false, the dialog won't close.
The reason that 'success' has a return value of false is because a warning message is generated:
'SYSID can no longer be specified'
and since the User dialog did not offer a Message tab, hence, you won't see that warning message.
Reassign to Niels so that he can decide how to fix this problem.