- Connection connection = null;
- boolean deadlock = false;
- ISFSObject outData = null;
- int retries = 0;
- int userId = sender.getVariable("userId").getIntValue();
- PreparedStatement psSelectUsersSettings = null;
- ResultSet rsSelectUsersSettings = null;
- do
- {
- deadlock = false;
- outData = new SFSObject();
- try
- {
- connection = this.getParentExtension().getParentZone().getDBManager().getConnection();
- connection.setAutoCommit(true);
- psSelectUsersSettings = connection.prepareStatement("SELECT * FROM users_settings WHERE user_id = ?");
- psSelectUsersSettings.setInt(1, userId);
- rsSelectUsersSettings = psSelectUsersSettings.executeQuery();
- if(rsSelectUsersSettings.first())
- {
- outData.putUtfString("icon_bar_order", rsSelectUsersSettings.getString("icon_bar_order"));
- }
- else
- {
- this.trace(ExtensionLogLevel.ERROR, "User settings do not exist for user id: " + userId);
- return;
- }
- this.send(ClientRequestHandlerID.USER_SETTINGS, outData, sender);
- }
- catch(SQLException e)
- {
- this.trace(ExtensionLogLevel.ERROR, e.getMessage());
- if(e.getErrorCode() == MySQLExceptionErrorCode.ER_LOCK_DEADLOCK.getErrorCode())
- {
- deadlock = true;
- }
- }
- finally
- {
- if(rsSelectUsersSettings != null)
- {
- try
- {
- rsSelectUsersSettings.close();
- }
- catch (SQLException e)
- {
- this.trace(ExtensionLogLevel.ERROR, e.getMessage());
- }
- }
- if(psSelectUsersSettings != null)
- {
- try
- {
- psSelectUsersSettings.close();
- }
- catch (SQLException e)
- {
- this.trace(ExtensionLogLevel.ERROR, e.getMessage());
- }
- }
- if(connection != null)
- {
- try
- {
- connection.close();
- }
- catch (SQLException e)
- {
- this.trace(ExtensionLogLevel.ERROR, e.getMessage());
- }
- }
- }
- }
- while(deadlock && retries++ < 3);
- if(retries == 3)
- {
- this.trace(ExtensionLogLevel.ERROR, "Maximum MySQL transaction retries reached");
- }