From 0d4b0be53224afce5c8a3a754dd4841aeff44818 Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Sun, 14 Apr 2013 12:04:38 +0200 Subject: [PATCH] I removed the synchronized modificators at most of the bean's methods; Under normal circumstances it should not be possible that two tabs or browsers share the same view scoped bean. --- .../webgui/web/beans/session/UserBean.java | 54 +++++++-------- .../beans/view/CurrentAnalysisEditorBean.java | 62 ++++++++--------- .../view/CurrentAnalysisEditorGraphBean.java | 66 +++++++++---------- .../web/beans/view/CurrentCockpitBean.java | 28 ++++---- .../beans/view/CurrentCockpitEditorBean.java | 56 ++++++++-------- .../web/beans/view/CurrentControllerBean.java | 30 ++++----- .../beans/view/CurrentUserManagementBean.java | 22 +++---- Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml | 2 +- 8 files changed, 158 insertions(+), 162 deletions(-) diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/UserBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/UserBean.java index f1bd5c93..62f839b5 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/UserBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/session/UserBean.java @@ -175,41 +175,37 @@ public class UserBean implements Serializable { /** * This method tries to load the default values of the properties from the {@link GlobalPropertiesBean} and the faces context. */ - private void loadDefaultValues() { - synchronized (this) { - // Get the parameters within the current context. - final Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); // NOPMD (No concurrent access) - // Try to find the default theme within the parameters. - if (params.containsKey(this.globalPropertiesBean.getFacesContextThemeKey())) { - this.lookAndFeel = params.get(this.globalPropertiesBean.getFacesContextThemeKey()); - } else { - // Use the default theme. - this.lookAndFeel = this.globalPropertiesBean.getDefaultTheme(); - } - - this.gridColor = this.globalPropertiesBean.getAnalysisEditorDefaultGridColor(); - this.gridSize = Integer.parseInt(this.globalPropertiesBean.getAnalysisEditorDefaultGridSize()); + private synchronized void loadDefaultValues() { + // Get the parameters within the current context. + final Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); // NOPMD (No concurrent access) + // Try to find the default theme within the parameters. + if (params.containsKey(this.globalPropertiesBean.getFacesContextThemeKey())) { + this.lookAndFeel = params.get(this.globalPropertiesBean.getFacesContextThemeKey()); + } else { + // Use the default theme. + this.lookAndFeel = this.globalPropertiesBean.getDefaultTheme(); } + + this.gridColor = this.globalPropertiesBean.getAnalysisEditorDefaultGridColor(); + this.gridSize = Integer.parseInt(this.globalPropertiesBean.getAnalysisEditorDefaultGridSize()); } /** * This method tries to load the values of the properties from the user's cookies. */ - private void loadValuesFromCookies() { - synchronized (this) { - // Get the available cookies - final Map<String, Object> cookies = FacesContext.getCurrentInstance().getExternalContext().getRequestCookieMap(); // NOPMD (No concurrent access) - - // Now load the values if available - if (cookies.containsKey(this.globalPropertiesBean.getThemeCookieName())) { - this.lookAndFeel = ((Cookie) cookies.get(this.globalPropertiesBean.getThemeCookieName())).getValue(); - } - if (cookies.containsKey(this.globalPropertiesBean.getAnalysisEditorGridColorCookieName())) { - this.gridColor = ((Cookie) cookies.get(this.globalPropertiesBean.getAnalysisEditorGridColorCookieName())).getValue(); - } - if (cookies.containsKey(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName())) { - this.gridSize = Integer.parseInt(((Cookie) cookies.get(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName())).getValue()); - } + private synchronized void loadValuesFromCookies() { + // Get the available cookies + final Map<String, Object> cookies = FacesContext.getCurrentInstance().getExternalContext().getRequestCookieMap(); // NOPMD (No concurrent access) + + // Now load the values if available + if (cookies.containsKey(this.globalPropertiesBean.getThemeCookieName())) { + this.lookAndFeel = ((Cookie) cookies.get(this.globalPropertiesBean.getThemeCookieName())).getValue(); + } + if (cookies.containsKey(this.globalPropertiesBean.getAnalysisEditorGridColorCookieName())) { + this.gridColor = ((Cookie) cookies.get(this.globalPropertiesBean.getAnalysisEditorGridColorCookieName())).getValue(); + } + if (cookies.containsKey(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName())) { + this.gridSize = Integer.parseInt(((Cookie) cookies.get(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName())).getValue()); } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java index 995ba20a..e7f93568 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java @@ -108,7 +108,7 @@ public class CurrentAnalysisEditorBean { * This method initializes the bean by using the current project name to load the project. <b>Do not call this method manually. It will only be accessed by * Spring.</b> */ - public synchronized void initialize() { + public void initialize() { try { // Make sure that the initialization will only be done for the init request. During all other requests, the method call have to be ignored. if (!FacesContext.getCurrentInstance().isPostback()) { @@ -143,7 +143,7 @@ public class CurrentAnalysisEditorBean { * @throws ProjectLoadException * If something went wrong during the loading of the libraries. */ - private synchronized void initializeModelLibraries() throws ProjectLoadException { + private void initializeModelLibraries() throws ProjectLoadException { try { final List<String> libs = this.projectService.listAllLibraries(this.projectName); // Add them, but remove all existing dependencies so far to avoid double entries. This also makes sure that the model - after it has been opened - @@ -165,7 +165,7 @@ public class CurrentAnalysisEditorBean { * @param event * The upload event. */ - public synchronized void handleFileUpload(final FileUploadEvent event) { + public void handleFileUpload(final FileUploadEvent event) { // Get the file from the event final UploadedFile file = event.getFile(); @@ -205,7 +205,7 @@ public class CurrentAnalysisEditorBean { * @param name * The name of the library to be removed. */ - public synchronized void deleteLibrary(final String name) { + public void deleteLibrary(final String name) { try { if (this.projectService.deleteLibrary(this.projectName, name)) { // We have to reinitialize the tool palette completely! This is necessary as some of the already existing classes could need the newly loaded @@ -223,39 +223,39 @@ public class CurrentAnalysisEditorBean { /** * This method loads the list of available readers, filters and repositories, using the current libraries within the model. */ - private synchronized void reloadAvailableComponents() { + private void reloadAvailableComponents() { this.availableComponents = this.projectService.getAvailableComponents(this.projectName); } - public synchronized MIProject getProject() { + public MIProject getProject() { return this.project; } - public synchronized void setProjectName(final String newName) { + public void setProjectName(final String newName) { // Remember the given parameters this.projectName = newName; } - public synchronized String getProjectName() { + public String getProjectName() { return this.projectName; } - public synchronized ComponentListContainer getAvailableComponents() { + public ComponentListContainer getAvailableComponents() { return this.availableComponents; } /** * This method sets the time stamp to the current system time. */ - public synchronized void resetTimeStamp() { + public void resetTimeStamp() { this.timeStamp = System.currentTimeMillis(); } - public synchronized long getTimeStamp() { + public long getTimeStamp() { return this.timeStamp; } - public synchronized MIAnalysisComponent getSelectedPlugin() { + public MIAnalysisComponent getSelectedPlugin() { return this.selectedComponent; } @@ -264,7 +264,7 @@ public class CurrentAnalysisEditorBean { * * @return The available libraries. */ - public synchronized List<String> getLibraries() { + public List<String> getLibraries() { try { final List<String> result = this.projectService.listAllLibraries(this.projectName); result.add(0, "Kieker"); @@ -283,7 +283,7 @@ public class CurrentAnalysisEditorBean { * This method tries to save the current project and informs the user about success or fail. There should be two parameters within the request parameter map * (layoutString and overwriteNewerProject) as this method is called via javascript. */ - public synchronized void saveProject() { + public void saveProject() { // Get the parameters final Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); this.currentLayout = paramMap.get("layoutString"); @@ -317,7 +317,7 @@ public class CurrentAnalysisEditorBean { * @param container * The container which delivers the copy of the repository. */ - public synchronized void addRepository(final RepositoryContainer container) { + public void addRepository(final RepositoryContainer container) { // Create a new instance for the model final MIRepository repository = container.newInstance(CurrentAnalysisEditorBean.FACTORY); @@ -334,7 +334,7 @@ public class CurrentAnalysisEditorBean { * @param container * The container which delivers the copy of the plugin. */ - public synchronized void addPlugin(final PluginContainer container) { + public void addPlugin(final PluginContainer container) { // Create a new instance for the model final MIPlugin plugin = container.newInstance(CurrentAnalysisEditorBean.FACTORY); @@ -351,9 +351,9 @@ public class CurrentAnalysisEditorBean { /** * This method sets the property {@link CurrentAnalysisEditorBean#unsavedModifications} to false and refreshes the necessary components within the analysis - * editor * to make this visible. + * editor to make this visible. */ - private synchronized void clearModificationsFlag() { + private void clearModificationsFlag() { this.unsavedModifications = false; RequestContext.getCurrentInstance().update("menuForm"); } @@ -362,7 +362,7 @@ public class CurrentAnalysisEditorBean { * This method sets the property {@link CurrentAnalysisEditorBean#unsavedModifications} to true and refreshes the necessary components within the analysis editor * to make this visible. */ - private synchronized void setModificationsFlag() { + private void setModificationsFlag() { this.unsavedModifications = true; RequestContext.getCurrentInstance().update("menuForm"); } @@ -372,7 +372,7 @@ public class CurrentAnalysisEditorBean { * * @return The current value of the property. */ - public synchronized boolean isUnsavedModification() { + public boolean isUnsavedModification() { return this.unsavedModifications; } @@ -383,7 +383,7 @@ public class CurrentAnalysisEditorBean { * @return A list with all properties of the plugin plus the name- and class-properties. If no plugin is selected, the list of the selected repository is * delivered. */ - public synchronized List<Object> getAdvancedPluginProperties() { + public List<Object> getAdvancedPluginProperties() { final List<Object> result = new ArrayList<Object>(); // Add the properties as strings @@ -409,7 +409,7 @@ public class CurrentAnalysisEditorBean { * The property name. * @return A human readable description and a substitution if there is no description. */ - public synchronized String getDescription(final MIAnalysisComponent component, final String property) { + public String getDescription(final MIAnalysisComponent component, final String property) { IComponentContainer container = null; // Find the container which contains the component @@ -454,7 +454,7 @@ public class CurrentAnalysisEditorBean { * @param event * The change event. */ - public synchronized void gridColorListener(final ValueChangeEvent event) { + public void gridColorListener(final ValueChangeEvent event) { this.currentAnalysisEditorGraphBean.setGridColor((String) event.getNewValue()); } @@ -464,7 +464,7 @@ public class CurrentAnalysisEditorBean { * @param event * The change event. */ - public synchronized void gridSizeListener(final ValueChangeEvent event) { + public void gridSizeListener(final ValueChangeEvent event) { this.currentAnalysisEditorGraphBean.setGridSize((Integer) event.getNewValue()); } @@ -472,7 +472,7 @@ public class CurrentAnalysisEditorBean { * This method initializes the modified jit-graph by delivering the necessary javascript commands to the client. It prints all current existing plugins, * repositories and their connections. All further components will be added mostly by other methods. */ - public synchronized void initializeGraph() { + public void initializeGraph() { // Make sure that the currentAnalysisEditorGraphBean knows "this" as well. this.currentAnalysisEditorGraphBean.setCurrentAnalysisEditorBean(this); @@ -536,7 +536,7 @@ public class CurrentAnalysisEditorBean { * @param node * The new node to be selected. */ - public synchronized void nodeSelected(final MIAnalysisComponent node) { + public void nodeSelected(final MIAnalysisComponent node) { this.selectedComponent = node; } @@ -546,7 +546,7 @@ public class CurrentAnalysisEditorBean { * @param node * The new node to be removed. */ - public synchronized void nodeRemoved(final MIAnalysisComponent node) { + public void nodeRemoved(final MIAnalysisComponent node) { // Remove the component from the project if (node instanceof MIPlugin) { this.project.getPlugins().remove(node); @@ -593,7 +593,7 @@ public class CurrentAnalysisEditorBean { * @param targetPort * The target port. */ - public synchronized void edgeCreated(final MIOutputPort sourcePort, final MIInputPort targetPort) { + public void edgeCreated(final MIOutputPort sourcePort, final MIInputPort targetPort) { sourcePort.getSubscribers().add(targetPort); this.setModificationsFlag(); @@ -607,7 +607,7 @@ public class CurrentAnalysisEditorBean { * @param targetPort * The target port. */ - public synchronized void edgeRemoved(final MIOutputPort sourcePort, final MIInputPort targetPort) { + public void edgeRemoved(final MIOutputPort sourcePort, final MIInputPort targetPort) { sourcePort.getSubscribers().remove(targetPort); this.setModificationsFlag(); @@ -621,7 +621,7 @@ public class CurrentAnalysisEditorBean { * @param target * The target repository. */ - public synchronized void edgeCreated(final MIRepositoryConnector sourcePort, final MIRepository target) { + public void edgeCreated(final MIRepositoryConnector sourcePort, final MIRepository target) { sourcePort.setRepository(target); this.setModificationsFlag(); @@ -635,7 +635,7 @@ public class CurrentAnalysisEditorBean { * @param target * The target repository. */ - public synchronized void edgeRemoved(final MIRepositoryConnector sourcePort, final MIRepository target) { + public void edgeRemoved(final MIRepositoryConnector sourcePort, final MIRepository target) { sourcePort.setRepository(null); this.setModificationsFlag(); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java index 1c836f60..7d616f5b 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java @@ -127,7 +127,7 @@ public class CurrentAnalysisEditorGraphBean { /** * Declares the the graph variable. */ - public synchronized void declareGraph() { + public void declareGraph() { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_CREATE_GRAPH_VAR); RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_SET_FILTER_ICON); @@ -138,7 +138,7 @@ public class CurrentAnalysisEditorGraphBean { /** * Initializes the listeners for the graph. */ - public synchronized void initListeners() { + public void initListeners() { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_CLICK_NODE_LISTENER); RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_AUTO_LAYOUT_LISTENER); RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_REMOVE_NODE_LISTENER); @@ -151,14 +151,14 @@ public class CurrentAnalysisEditorGraphBean { /** * This method initializes the auto layout of the graph, resulting in a javascript event, delivering the necessary information about the graph. */ - public synchronized void startAutoLayout() { + public void startAutoLayout() { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_START_AUTO_LAYOUT); } /** * This method uses the given parameters (via request parameter map) to calculate a new layout for the graph and use this layout. */ - public synchronized void autoLayout() { + public void autoLayout() { try { // Get the parameters final Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); @@ -179,7 +179,7 @@ public class CurrentAnalysisEditorGraphBean { /** * Adds the edge constraints to the graph. */ - public synchronized void addEdgeConstraints() { + public void addEdgeConstraints() { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_EDGE_CONSTRAINTS); } @@ -189,7 +189,7 @@ public class CurrentAnalysisEditorGraphBean { * @param filter * The filter which should be added to the graph. */ - public synchronized void addFilter(final MIFilter filter) { + public void addFilter(final MIFilter filter) { RequestContext.getCurrentInstance().execute( String.format(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_FILTER, 0, 0, this.assembleGraphString(filter), this.assembleGraphRepositoryPortString(filter.getRepositories()), this.assembleGraphInputPortString(filter), @@ -202,7 +202,7 @@ public class CurrentAnalysisEditorGraphBean { * @param reader * The reader which should be added to the graph. */ - public synchronized void addReader(final MIReader reader) { + public void addReader(final MIReader reader) { RequestContext.getCurrentInstance().execute(String.format(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_READER, 0, 0, this.assembleGraphString(reader), this.assembleGraphRepositoryPortString(reader.getRepositories()), this.assembleGraphOutputPortString(reader))); } @@ -213,7 +213,7 @@ public class CurrentAnalysisEditorGraphBean { * @param repository * The repository which should be added to the graph. */ - public synchronized void addRepository(final MIRepository repository) { + public void addRepository(final MIRepository repository) { final String repoPort = String.format(CurrentAnalysisEditorGraphBean.JS_CMD_PORT, CurrentAnalysisEditorGraphBean.JS_CMD_PORT_TYPE_INPUT, CurrentAnalysisEditorGraphBean.REPOSITORY_INPUT_PORT, "N/A"); RequestContext.getCurrentInstance().execute(String.format(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_REPOSITORY, 0, 0, @@ -232,7 +232,7 @@ public class CurrentAnalysisEditorGraphBean { * @param inputPort * The input port. */ - public synchronized void addConnection(final MIPlugin source, final MIPlugin destination, final MIOutputPort outputPort, final MIInputPort inputPort) { + public void addConnection(final MIPlugin source, final MIPlugin destination, final MIOutputPort outputPort, final MIInputPort inputPort) { RequestContext.getCurrentInstance().execute(String.format(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_EDGE, this.assembleGraphPortID(source, outputPort), this.assembleGraphPortID(destination, inputPort), "")); } @@ -247,7 +247,7 @@ public class CurrentAnalysisEditorGraphBean { * @param port * The repository port. */ - public synchronized void addConnection(final MIPlugin source, final MIRepository destination, final MIRepositoryConnector port) { + public void addConnection(final MIPlugin source, final MIRepository destination, final MIRepositoryConnector port) { RequestContext.getCurrentInstance().execute(String.format(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_EDGE, this.assembleGraphPortID(source, port), this.assembleGraphPortID(destination), "")); } @@ -259,7 +259,7 @@ public class CurrentAnalysisEditorGraphBean { * The ports to be used within the string command. * @return A string containing the JS commands to create the ports. */ - private synchronized String assembleGraphPortString(final EList<? extends MIPort> ports) { + private String assembleGraphPortString(final EList<? extends MIPort> ports) { final StringBuilder builder = new StringBuilder(); final int len = ports.size(); @@ -285,7 +285,7 @@ public class CurrentAnalysisEditorGraphBean { * The ports which will be used. * @return A string containing the JS commands to create the repository ports. */ - private synchronized String assembleGraphRepositoryPortString(final EList<MIRepositoryConnector> ports) { + private String assembleGraphRepositoryPortString(final EList<MIRepositoryConnector> ports) { final StringBuilder builder = new StringBuilder(); final int len = ports.size(); @@ -310,7 +310,7 @@ public class CurrentAnalysisEditorGraphBean { * The filter whose input ports will be used. * @return A string containing the JS commands to create the input ports. */ - private synchronized String assembleGraphInputPortString(final MIFilter filter) { + private String assembleGraphInputPortString(final MIFilter filter) { return this.assembleGraphPortString(filter.getInputPorts()); } @@ -321,7 +321,7 @@ public class CurrentAnalysisEditorGraphBean { * The plugin whose output ports will be used. * @return A string containing the JS commands to create the output ports. */ - private synchronized String assembleGraphOutputPortString(final MIPlugin plugin) { + private String assembleGraphOutputPortString(final MIPlugin plugin) { return this.assembleGraphPortString(plugin.getOutputPorts()); } @@ -334,7 +334,7 @@ public class CurrentAnalysisEditorGraphBean { * The port itself. * @return The ID for the port within the graph */ - private synchronized String assembleGraphPortID(final MIPlugin plugin, final MIPort port) { + private String assembleGraphPortID(final MIPlugin plugin, final MIPort port) { return "id" + this.componentMap.get(plugin) + "." + this.portMap.get(port); } @@ -347,7 +347,7 @@ public class CurrentAnalysisEditorGraphBean { * The port itself. * @return The ID for the port within the graph */ - private synchronized Object assembleGraphPortID(final MIPlugin plugin, final MIRepositoryConnector port) { + private Object assembleGraphPortID(final MIPlugin plugin, final MIRepositoryConnector port) { return "id" + this.componentMap.get(plugin) + "." + this.repositoryPortMap.get(port); } @@ -358,7 +358,7 @@ public class CurrentAnalysisEditorGraphBean { * The parent repository of the port. * @return The ID for the port within the graph */ - private synchronized Object assembleGraphPortID(final MIRepository repository) { + private Object assembleGraphPortID(final MIRepository repository) { return "id" + this.componentMap.get(repository) + "." + CurrentAnalysisEditorGraphBean.REPOSITORY_INPUT_PORT; } @@ -369,7 +369,7 @@ public class CurrentAnalysisEditorGraphBean { * The component whose ID should be delivered. * @return A human readable ID. */ - private synchronized String assembleGraphString(final MIAnalysisComponent component) { + private String assembleGraphString(final MIAnalysisComponent component) { final String name = component.getName(); final String className = component.getClassname(); final String shortName = className.substring(className.lastIndexOf('.') + 1); @@ -383,7 +383,7 @@ public class CurrentAnalysisEditorGraphBean { * This is the action which can be called from the javascript code to show that a node has been clicked. It informs the connected * {@link CurrentAnalysisEditorBean} about this. */ - public synchronized void nodeClicked() { + public void nodeClicked() { // Get the parameters final Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); final String clickedNodeID = paramMap.get(CurrentAnalysisEditorGraphBean.PARAM_NAME_ID); @@ -404,7 +404,7 @@ public class CurrentAnalysisEditorGraphBean { * This is the action which can be called from the javascript code to show that a node has been removed. It informs the connected * {@link CurrentAnalysisEditorBean} about this. */ - public synchronized void nodeRemoved() { + public void nodeRemoved() { // Get the parameters final Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); final String clickedNodeID = paramMap.get(CurrentAnalysisEditorGraphBean.PARAM_NAME_ID); @@ -424,7 +424,7 @@ public class CurrentAnalysisEditorGraphBean { * This is the action which can be called from the javascript code to show that an edge has been created. It informs the connected * {@link CurrentAnalysisEditorBean} about this. */ - public synchronized void edgeCreated() { + public void edgeCreated() { // Get the parameters final Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); @@ -461,7 +461,7 @@ public class CurrentAnalysisEditorGraphBean { * This is the action which can be called from the javascript code to show that an edge has been removed. It informs the connected * {@link CurrentAnalysisEditorBean} about this. */ - public synchronized void edgeRemoved() { + public void edgeRemoved() { // Get the parameters final Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); @@ -499,7 +499,7 @@ public class CurrentAnalysisEditorGraphBean { * @param color * The new color as a HTML color (FF0080 e.g.). */ - public synchronized void setGridColor(final String color) { + public void setGridColor(final String color) { final String cmd = String.format(CurrentAnalysisEditorGraphBean.JS_CMD_SET_GRID_COLOR, "#" + color); RequestContext.getCurrentInstance().execute(cmd); } @@ -510,7 +510,7 @@ public class CurrentAnalysisEditorGraphBean { * @param size * The new grid size. */ - public synchronized void setGridSize(final int size) { + public void setGridSize(final int size) { final String cmd = String.format(CurrentAnalysisEditorGraphBean.JS_CMD_SET_GRID_SIZE, size); RequestContext.getCurrentInstance().execute(cmd); } @@ -518,14 +518,14 @@ public class CurrentAnalysisEditorGraphBean { /** * This method scales the graph to fit the current view. After this method-call, all components of the graph should be visible. */ - public synchronized void scaleToFit() { + public void scaleToFit() { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_SCALE_TO_FIT); } /** * This method switches the visibility of the grid within the graph. */ - public synchronized void switchGrid() { + public void switchGrid() { if (this.gridEnabled) { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_DISABLE_GRID); } else { @@ -538,7 +538,7 @@ public class CurrentAnalysisEditorGraphBean { /** * This method switches the grid snap within the graph. */ - public synchronized void switchSnap() { + public void switchSnap() { if (this.snapEnabled) { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_DISABLE_SNAP); } else { @@ -556,7 +556,7 @@ public class CurrentAnalysisEditorGraphBean { * @param newName * The new name of the node. */ - public synchronized void renameNode(final MIAnalysisComponent node, final String newName) { + public void renameNode(final MIAnalysisComponent node, final String newName) { final String cmd = String.format(CurrentAnalysisEditorGraphBean.JS_CMD_RENAME_NODE, "id" + this.componentMap.get(node), CurrentAnalysisEditorGraphBean.simpleEscape(newName)); RequestContext.getCurrentInstance().execute(cmd); @@ -565,7 +565,7 @@ public class CurrentAnalysisEditorGraphBean { /** * This method checks whether the current user is a guest and activates the read only mode if necessary. */ - public synchronized void checkReadOnlyForGuests() { + public void checkReadOnlyForGuests() { if ("Guest".equals(this.userBean.getUserrole())) { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_SET_READ_ONLY); } @@ -586,15 +586,15 @@ public class CurrentAnalysisEditorGraphBean { } } - public synchronized boolean isGridEnabled() { + public boolean isGridEnabled() { return this.gridEnabled; } - public synchronized boolean isSnapEnabled() { + public boolean isSnapEnabled() { return this.snapEnabled; } - public synchronized void setCurrentAnalysisEditorBean(final CurrentAnalysisEditorBean currentAnalysisEditorBean) { + public void setCurrentAnalysisEditorBean(final CurrentAnalysisEditorBean currentAnalysisEditorBean) { this.currentAnalysisEditorBean = currentAnalysisEditorBean; } @@ -604,7 +604,7 @@ public class CurrentAnalysisEditorGraphBean { * @param layout * The new layout for the graph. */ - public synchronized void loadLayout(final String layout) { + public void loadLayout(final String layout) { RequestContext.getCurrentInstance().execute(String.format(CurrentAnalysisEditorGraphBean.JS_CMD_LOAD_FROM_LAYOUT, layout)); } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitBean.java index 9507edc1..4226352c 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitBean.java @@ -86,7 +86,7 @@ public class CurrentCockpitBean { /** * Creates the initial dashboard object. */ - private synchronized void createDashboard() { + private void createDashboard() { final FacesContext fc = FacesContext.getCurrentInstance(); final Application application = fc.getApplication(); @@ -106,7 +106,7 @@ public class CurrentCockpitBean { /** * Fills the initial dashboard object. */ - private synchronized void fillDashboard() { + private void fillDashboard() { // Dump the old entries this.clearDashboard(); @@ -140,7 +140,7 @@ public class CurrentCockpitBean { /** * Clears the dashboard and removes all children within it. */ - private synchronized void clearDashboard() { + private void clearDashboard() { // Run through all columns of the dashboard and remove the items final List<DashboardColumn> columns = this.dashboard.getModel().getColumns(); for (final DashboardColumn column : columns) { @@ -150,11 +150,11 @@ public class CurrentCockpitBean { this.dashboard.getChildren().clear(); } - public synchronized MIProject getProject() { + public MIProject getProject() { return this.project; } - public synchronized void setProjectName(final String newName) { + public void setProjectName(final String newName) { // Remember the given parameters this.projectName = newName; } @@ -163,7 +163,7 @@ public class CurrentCockpitBean { * This method initializes the bean by using the current project name to load the project. <b>Do not call this method manually. It will only be accessed by * Spring.</b> */ - public synchronized void initalize() { + public void initalize() { try { // Make sure that the initialization will only be done for the init request. if (!FacesContext.getCurrentInstance().isPostback()) { @@ -184,7 +184,7 @@ public class CurrentCockpitBean { } } - public synchronized String getProjectName() { + public String getProjectName() { return this.projectName; } @@ -196,7 +196,7 @@ public class CurrentCockpitBean { * @return The current content of the display, if it exists. If the display does not exist or the active view is not set 'N/A' will be returned. If an access to * the display fails, "Error" will be returned. */ - public synchronized String updatePlainTextDisplay(final String displayName) { + public String updatePlainTextDisplay(final String displayName) { if ((this.activeView != null) && (this.projectName != null)) { try { final Object displayObj = this.projectService.getDisplay(this.projectName, this.activeView.getName(), displayName); @@ -215,7 +215,7 @@ public class CurrentCockpitBean { * * @return Currently this method returns only N/A. */ - public synchronized String updateHtmlTextDisplay() { + public String updateHtmlTextDisplay() { return "N/A"; } @@ -224,11 +224,11 @@ public class CurrentCockpitBean { * * @return Currently this method returns only N/A. */ - public synchronized String updateImageDisplay() { + public String updateImageDisplay() { return "N/A"; } - public synchronized MIView getActiveView() { + public MIView getActiveView() { return this.activeView; } @@ -238,13 +238,13 @@ public class CurrentCockpitBean { * @param activeView * The new active view. */ - public synchronized void setActiveView(final MIView activeView) { + public void setActiveView(final MIView activeView) { this.activeView = activeView; this.fillDashboard(); } - public synchronized Dashboard getDashboard() { + public Dashboard getDashboard() { return this.dashboard; } @@ -254,7 +254,7 @@ public class CurrentCockpitBean { * @param dashboard * The new value for the property. */ - public synchronized void setDashboard(final Dashboard dashboard) { + public void setDashboard(final Dashboard dashboard) { this.dashboard = dashboard; this.dashboard.setModel(this.dashboardModel); } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java index b49c2c4c..37f2d079 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java @@ -113,14 +113,14 @@ public class CurrentCockpitEditorBean { * * @return The selected connector. */ - public synchronized MIDisplayConnector getSelectedNode() { + public MIDisplayConnector getSelectedNode() { return this.selectedNode; } /** * Creates the initial dashboard object. */ - private synchronized void createDashboard() { + private void createDashboard() { final FacesContext fc = FacesContext.getCurrentInstance(); final Application application = fc.getApplication(); @@ -137,14 +137,14 @@ public class CurrentCockpitEditorBean { this.dashboard.setModel(this.dashboardModel); } - public synchronized boolean isUnsavedModification() { + public boolean isUnsavedModification() { return this.unsavedModifications; } /** * Fills the initial dashboard object. */ - private synchronized void fillDashboard() { + private void fillDashboard() { // Dump the old entries this.clearDashboard(); @@ -178,7 +178,7 @@ public class CurrentCockpitEditorBean { /** * Clears the dashboard and removes all children within it. */ - private synchronized void clearDashboard() { + private void clearDashboard() { // Run through all columns of the dashboard and remove the items final List<DashboardColumn> columns = this.dashboard.getModel().getColumns(); for (final DashboardColumn column : columns) { @@ -192,7 +192,7 @@ public class CurrentCockpitEditorBean { * This method initializes the bean by using the current project name to load the project. <b>Do not call this method manually. It will only be accessed by * Spring.</b> */ - public synchronized void initalize() { + public void initalize() { try { // Make sure that the initialization will only be done for the init request. @@ -221,7 +221,7 @@ public class CurrentCockpitEditorBean { /** * Reloads the available components within this bean. */ - private synchronized void reloadComponents() { + private void reloadComponents() { this.availableComponents = this.projectService.getAvailableComponents(this.projectName); } @@ -230,7 +230,7 @@ public class CurrentCockpitEditorBean { * * @return The project for this user. */ - public synchronized MIProject getProject() { + public MIProject getProject() { return this.project; } @@ -239,7 +239,7 @@ public class CurrentCockpitEditorBean { * * @return A collection with two null objects. */ - public synchronized Collection<Object> getProperties() { + public Collection<Object> getProperties() { return Collections.nCopies(3, null); } @@ -249,7 +249,7 @@ public class CurrentCockpitEditorBean { * @param newName * The name of the project. */ - public synchronized void setProjectName(final String newName) { + public void setProjectName(final String newName) { this.projectName = newName; } @@ -258,7 +258,7 @@ public class CurrentCockpitEditorBean { * * @return The project name for this user. */ - public synchronized String getProjectName() { + public String getProjectName() { return this.projectName; } @@ -269,7 +269,7 @@ public class CurrentCockpitEditorBean { * The display whose description should be extracted. * @return The description for the display or a substitute if none is available. This is in either case human readable. */ - public synchronized String getDescription(final MIDisplay display) { + public String getDescription(final MIDisplay display) { final String parentClassname = display.getParent().getClassname(); PluginContainer parentContainer = null; @@ -304,7 +304,7 @@ public class CurrentCockpitEditorBean { * @param overwriteNewerProject * This flag determines whether a newer project should be overwritten. */ - public synchronized void saveProject(final boolean overwriteNewerProject) { + public void saveProject(final boolean overwriteNewerProject) { try { this.projectService.saveProject(this.projectName, this.project, this.timeStamp, overwriteNewerProject, this.userBean.getUsername(), null, this.projectService.getCockpitLayout(this.projectName)); @@ -331,7 +331,7 @@ public class CurrentCockpitEditorBean { * This method sets the property {@link CurrentCockpitEditorBean#unsavedModifications} to false and refreshes the necessary components within the editor to make * this visible. */ - private synchronized void clearModificationsFlag() { + private void clearModificationsFlag() { this.unsavedModifications = false; RequestContext.getCurrentInstance().update("menuForm"); } @@ -340,7 +340,7 @@ public class CurrentCockpitEditorBean { * This method sets the property {@link CurrentCockpitEditorBean#unsavedModifications} to true and refreshes the necessary components within the editor * to make this visible. */ - private synchronized void setModificationsFlag() { + private void setModificationsFlag() { this.unsavedModifications = true; RequestContext.getCurrentInstance().update("menuForm"); } @@ -348,7 +348,7 @@ public class CurrentCockpitEditorBean { /** * This method sets the time stamp to the current system time. */ - public synchronized void resetTimeStamp() { + public void resetTimeStamp() { this.timeStamp = System.currentTimeMillis(); } @@ -358,7 +358,7 @@ public class CurrentCockpitEditorBean { * @param viewName * The name of the new view. */ - public synchronized void addView(final String viewName) { + public void addView(final String viewName) { if (this.project != null) { // Create the view and add it to our project final MIView view = this.factory.createView(); @@ -370,7 +370,7 @@ public class CurrentCockpitEditorBean { } } - public synchronized MIView getActiveView() { + public MIView getActiveView() { return this.activeView; } @@ -380,7 +380,7 @@ public class CurrentCockpitEditorBean { * @param view * The new view. */ - public synchronized void setActiveView(final MIView view) { + public void setActiveView(final MIView view) { this.activeView = view; this.fillDashboard(); @@ -393,7 +393,7 @@ public class CurrentCockpitEditorBean { * The view to be removed. * */ - public synchronized void deleteView(final MIView view) { + public void deleteView(final MIView view) { this.project.getViews().remove(view); this.setModificationsFlag(); @@ -405,7 +405,7 @@ public class CurrentCockpitEditorBean { * @param display * The display which should be added to the current view. */ - public synchronized void addDisplayToView(final MIDisplay display) { + public void addDisplayToView(final MIDisplay display) { if (this.activeView != null) { final MIDisplayConnector connector = this.factory.createDisplayConnector(); connector.setDisplay(display); @@ -441,7 +441,7 @@ public class CurrentCockpitEditorBean { * @param event * The onChange-event. */ - public synchronized void onChange(final TabChangeEvent event) { + public void onChange(final TabChangeEvent event) { if (event.getData() instanceof MIView) { this.setActiveView((MIView) event.getData()); } @@ -450,7 +450,7 @@ public class CurrentCockpitEditorBean { /** * This is the event if a node has been clicked and should be selected. */ - public synchronized void nodeSelected() { + public void nodeSelected() { final Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); final String fullID = paramMap.get("id"); @@ -469,7 +469,7 @@ public class CurrentCockpitEditorBean { * The name to be checked. * @return true iff the name exists already. */ - private synchronized boolean existsDisplayConnectorName(final String name) { + private boolean existsDisplayConnectorName(final String name) { // Make sure a view is selected if (this.activeView == null) { return false; @@ -498,7 +498,7 @@ public class CurrentCockpitEditorBean { * @param value * The new value. */ - public synchronized void validateDisplayConnectorName(final FacesContext context, final UIComponent toValidate, final Object value) { + public void validateDisplayConnectorName(final FacesContext context, final UIComponent toValidate, final Object value) { if ((value instanceof String) && (toValidate instanceof UIInput)) { final boolean nameExists = this.existsDisplayConnectorName((String) value); ((UIInput) toValidate).setValid(!nameExists); @@ -510,7 +510,7 @@ public class CurrentCockpitEditorBean { * * @return The current value of the property. */ - public synchronized Dashboard getDashboard() { + public Dashboard getDashboard() { return this.dashboard; } @@ -520,7 +520,7 @@ public class CurrentCockpitEditorBean { * @param dashboard * The new value for the property. */ - public synchronized void setDashboard(final Dashboard dashboard) { + public void setDashboard(final Dashboard dashboard) { this.dashboard = dashboard; this.dashboard.setModel(this.dashboardModel); } @@ -530,7 +530,7 @@ public class CurrentCockpitEditorBean { * * @return A list with the available components. */ - public synchronized ComponentListContainer getAvailableComponents() { + public ComponentListContainer getAvailableComponents() { return this.availableComponents; } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentControllerBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentControllerBean.java index 5208ef05..ccd34501 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentControllerBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentControllerBean.java @@ -62,20 +62,20 @@ public class CurrentControllerBean { // No code necessary } - public synchronized void setProjectName(final String newName) { + public void setProjectName(final String newName) { // Remember the given parameters this.projectName = newName; } - public synchronized String getProjectName() { + public String getProjectName() { return this.projectName; } /** * This method starts the current analysis and informs the user about a fail. */ - public synchronized void startAnalysis() { + public void startAnalysis() { this.addLogEntry("Starting Analysis for project '" + this.projectName + "'"); try { this.projectService.startAnalysis(this.projectName); @@ -92,7 +92,7 @@ public class CurrentControllerBean { /** * This method stops the current analysis and informs the user about a fail. */ - public synchronized void stopAnalysis() { + public void stopAnalysis() { try { this.addLogEntry("Stopping Analysis for project '" + this.projectName + "'"); synchronized (this) { @@ -110,7 +110,7 @@ public class CurrentControllerBean { /** * This method initializes the current analysis and informs the user about a fail. */ - public synchronized void instantiateAnalysis() { + public void instantiateAnalysis() { this.addLogEntry("Instantiating Analysis for project '" + this.projectName + "'"); try { this.projectService.initializeAnalysis(this.projectName, this.projectService.getClassLoader(this.projectName, this)); // NOPMD (ClassLoader) @@ -132,7 +132,7 @@ public class CurrentControllerBean { /** * This method cleans the current analysis instance. */ - public synchronized void cleanAnalysis() { + public void cleanAnalysis() { this.addLogEntry("Cleaning Analysis for project '" + this.projectName + "'"); try { this.projectService.cleanAnalysis(this.projectName); @@ -151,7 +151,7 @@ public class CurrentControllerBean { * * @return true if and only if the analysis is running. */ - public synchronized boolean isAnalysisRunning() { + public boolean isAnalysisRunning() { try { return this.projectService.getCurrentState(this.projectName) == AnalysisController.STATE.RUNNING; } catch (final ProjectNotExistingException ex) { @@ -168,7 +168,7 @@ public class CurrentControllerBean { * * @return true if and only if the analysis is ready to be started. */ - public synchronized boolean isAnalysisReady() { + public boolean isAnalysisReady() { try { return this.projectService.getCurrentState(this.projectName) == AnalysisController.STATE.READY; } catch (final ProjectNotExistingException ex) { @@ -185,7 +185,7 @@ public class CurrentControllerBean { * * @return true if and only if the analysis is <b>not</b> available. */ - public synchronized boolean isAnalysisNotAvailable() { + public boolean isAnalysisNotAvailable() { try { return this.projectService.getCurrentState(this.projectName) == null; } catch (final ProjectNotExistingException ex) { @@ -202,7 +202,7 @@ public class CurrentControllerBean { * * @return true if and only if the analysis has been terminated. */ - public synchronized boolean isAnalysisTerminated() { + public boolean isAnalysisTerminated() { try { return this.projectService.getCurrentState(this.projectName) == AnalysisController.STATE.TERMINATED; } catch (final ProjectNotExistingException ex) { @@ -219,7 +219,7 @@ public class CurrentControllerBean { * * @return true if and only if the analysis has failed. */ - public synchronized boolean isAnalysisFailed() { + public boolean isAnalysisFailed() { try { return this.projectService.getCurrentState(this.projectName) == AnalysisController.STATE.FAILED; } catch (final ProjectNotExistingException ex) { @@ -236,7 +236,7 @@ public class CurrentControllerBean { * * @return The current log entries. */ - public synchronized Object[] getAnalysisLog() { + public Object[] getAnalysisLog() { try { return this.projectService.getLogEntries(this.projectName); } catch (final AnalysisStateException ex) { @@ -252,7 +252,7 @@ public class CurrentControllerBean { * * @return The current log entries. */ - public synchronized Collection<String> getViewLog() { + public Collection<String> getViewLog() { return this.logEntries; } @@ -262,7 +262,7 @@ public class CurrentControllerBean { * @param cause * The element to be added. */ - private synchronized void addLogEntry(final Throwable cause) { + private void addLogEntry(final Throwable cause) { final Writer result = new StringWriter(); final PrintWriter printWriter = new PrintWriter(result); cause.printStackTrace(printWriter); @@ -275,7 +275,7 @@ public class CurrentControllerBean { * @param msg * The log message. */ - private synchronized void addLogEntry(final String msg) { + private void addLogEntry(final String msg) { final String finalMsg = new Date().toString() + " : " + msg; if (this.logEntries.size() > 50) { this.logEntries.remove(0); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentUserManagementBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentUserManagementBean.java index d0e05c64..548a0b48 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentUserManagementBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentUserManagementBean.java @@ -65,7 +65,7 @@ public class CurrentUserManagementBean { * This method initializes the bean. <b>Do not call this method manually. It will only be accessed by Spring.</b> */ @PostConstruct - protected synchronized void initialialize() { + protected void initialialize() { this.updateList(); } @@ -81,7 +81,7 @@ public class CurrentUserManagementBean { * @param isEnabled * Determines whether the user is enabled already or not. */ - public synchronized void addUser(final String username, final String password, final Role role, final boolean isEnabled) { + public void addUser(final String username, final String password, final Role role, final boolean isEnabled) { final User user = new User(username, password, role, isEnabled); try { // Add the user to the database and - if that didn't fail - to our list. @@ -97,7 +97,7 @@ public class CurrentUserManagementBean { /** * This method removes the currently selected user from the database and informs about success via the growl component. */ - public synchronized void deleteUser() { + public void deleteUser() { try { this.userService.deleteUser(this.selectedUser); this.availableUsers.remove(this.selectedUser); @@ -111,7 +111,7 @@ public class CurrentUserManagementBean { /** * This method edits the currently selected user within the database and informs about success via the growl component. The password will not be changed. */ - public synchronized void editUser() { + public void editUser() { try { // This is the "normal" edit - make sure that the password won't be changed this.selectedUserCopy.setPassword(null); @@ -129,7 +129,7 @@ public class CurrentUserManagementBean { /** * This method edits the currently selected user within the database and informs about success via the growl component. The password will be changed. */ - public synchronized void editUserWithPassword() { + public void editUserWithPassword() { try { // Edit the user completely and replace the entry within our list this.userService.editUser(this.selectedUserCopy); @@ -148,7 +148,7 @@ public class CurrentUserManagementBean { * @param user * The user whose state should be changed. */ - public synchronized void changeUserEnableState(final User user) { + public void changeUserEnableState(final User user) { try { this.setSelectedUser(user); this.selectedUserCopy.setEnabled(!this.selectedUserCopy.isEnabled()); @@ -166,7 +166,7 @@ public class CurrentUserManagementBean { /** * Updates the list containing the available users. */ - public synchronized void updateList() { + public void updateList() { try { this.availableUsers = this.userService.getUsers(); } catch (final DataAccessException ex) { @@ -175,15 +175,15 @@ public class CurrentUserManagementBean { } } - public synchronized List<User> getUsers() { + public List<User> getUsers() { return this.availableUsers; } - public synchronized User getSelectedUser() { + public User getSelectedUser() { return this.selectedUser; } - public synchronized User getSelectedUserCopy() { + public User getSelectedUserCopy() { return this.selectedUserCopy; } @@ -193,7 +193,7 @@ public class CurrentUserManagementBean { * @param selectedUser * The new value of the property. */ - public synchronized void setSelectedUser(final User selectedUser) { + public void setSelectedUser(final User selectedUser) { // We remember the selected user, but we make also a copy. This is necessary, because otherwise we would have to do something like a rollback, if for example // an edit within the DB fails. this.selectedUser = selectedUser; diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml index 4d6cb20d..720357f1 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml @@ -114,7 +114,7 @@ </listener> <!-- Begin: Integration of Kieker's SessionAndTraceRegistrationFilter --> - <!-- <filter> + <!-- <filter> <filter-name>sessionAndTraceRegistrationFilter</filter-name> <filter-class>kieker.monitoring.probe.servlet.SessionAndTraceRegistrationFilter</filter-class> <init-param> -- GitLab