Alexander Wels has uploaded a new change for review.

Change subject: engine,userportal,webadmin: Various code fixes
......................................................................

engine,userportal,webadmin: Various code fixes

- Fixed various Coverity issues, including:
  - Several getBytes() missing encoding.
  - Some potential null pointer dereferences.

Change-Id: I759bfd3176b25731a5150ae690a9838e0ab63ce8
Signed-off-by: Alexander Wels <aw...@redhat.com>
---
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GwtDynamicHostPageServlet.java
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServlet.java
M 
frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/VdcOperationManagerTest.java
M 
frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/AbstractGwtDynamicHostPageServletTest.java
M 
frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServletTest.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCustomPreviewPopupWidget.java
M 
frontend/webadmin/modules/gwt-common/src/test/java/org/ovirt/engine/ui/common/GwtMessagesValidator.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/AlertListModel.java
8 files changed, 76 insertions(+), 50 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/34905/1

diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GwtDynamicHostPageServlet.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GwtDynamicHostPageServlet.java
index 3594f7c..c1eed4c 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GwtDynamicHostPageServlet.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GwtDynamicHostPageServlet.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.frontend.server.gwt;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.Locale;
@@ -79,6 +80,7 @@
 
     private static final String HOST_JSP = "/GwtHostPage.jsp"; //$NON-NLS-1$
     private static final String UTF_CONTENT_TYPE = "text/html; charset=UTF-8"; 
//$NON-NLS-1$
+    protected static final String UTF8 = "UTF-8"; //$NON-NLS-1$
 
     private BackendLocal backend;
 
@@ -259,7 +261,8 @@
         return obj;
     }
 
-    protected String getMd5Sum(HttpServletRequest request) throws 
NoSuchAlgorithmException {
+    protected String getMd5Sum(HttpServletRequest request) throws 
NoSuchAlgorithmException,
+        UnsupportedEncodingException {
         return (new 
HexBinaryAdapter()).marshal(getMd5Digest(request).digest());
     }
 
@@ -274,14 +277,15 @@
      * string representation of the MD5 sum.
      * @throws NoSuchAlgorithmException If the method cannot create the digest
      * object.
+     * @throws UnsupportedEncodingException
      */
     protected MessageDigest getMd5Digest(final HttpServletRequest request)
-            throws NoSuchAlgorithmException {
+            throws NoSuchAlgorithmException, UnsupportedEncodingException {
         MessageDigest digest = createMd5Digest();
         for (MD5Attributes attribute: MD5Attributes.values()) {
             if (request.getAttribute(attribute.getKey()) != null) {
                 digest.update(request.getAttribute(attribute.getKey()).
-                        toString().getBytes());
+                        toString().getBytes(UTF8));
             }
         }
         return digest;
diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServlet.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServlet.java
index 9259930..83f0373 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServlet.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServlet.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.frontend.server.gwt;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -63,17 +64,18 @@
     }
 
     @Override
-    protected MessageDigest getMd5Digest(HttpServletRequest request) throws 
NoSuchAlgorithmException {
+    protected MessageDigest getMd5Digest(HttpServletRequest request) throws 
NoSuchAlgorithmException,
+        UnsupportedEncodingException {
         MessageDigest digest = super.getMd5Digest(request);
 
         // Update based on applicationMode object
-        
digest.update(request.getAttribute(ATTR_APPLICATION_MODE).toString().getBytes());
+        
digest.update(request.getAttribute(ATTR_APPLICATION_MODE).toString().getBytes(UTF8));
 
         // Update based on pluginDefinitions array
-        
digest.update(request.getAttribute(ATTR_PLUGIN_DEFS).toString().getBytes());
+        
digest.update(request.getAttribute(ATTR_PLUGIN_DEFS).toString().getBytes(UTF8));
 
         // Update based on engineSessionTimeout object
-        
digest.update(request.getAttribute(ATTR_ENGINE_SESSION_TIMEOUT).toString().getBytes());
+        
digest.update(request.getAttribute(ATTR_ENGINE_SESSION_TIMEOUT).toString().getBytes(UTF8));
 
         return digest;
     }
diff --git 
a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/VdcOperationManagerTest.java
 
b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/VdcOperationManagerTest.java
index 6fa0b92..f1ed07a 100644
--- 
a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/VdcOperationManagerTest.java
+++ 
b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/VdcOperationManagerTest.java
@@ -35,7 +35,6 @@
     @SuppressWarnings("unchecked")
     @Before
     public void setUp() throws Exception {
-        final VdcReturnValueBase result = new VdcReturnValueBase();
         testManager = new VdcOperationManager(mockOperationProcessor);
         final VdcReturnValueBase loginResult = new VdcReturnValueBase();
         LoginUserParameters params = new LoginUserParameters("test", "test", 
//$NON-NLS-1$ //$NON-NLS-2$
diff --git 
a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/AbstractGwtDynamicHostPageServletTest.java
 
b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/AbstractGwtDynamicHostPageServletTest.java
index 95f0e62..a9ddff4 100644
--- 
a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/AbstractGwtDynamicHostPageServletTest.java
+++ 
b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/AbstractGwtDynamicHostPageServletTest.java
@@ -17,6 +17,7 @@
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -208,7 +209,7 @@
     }
 
     @Test
-    public void testGetMd5Digest_WithoutUserInfoObject() throws 
NoSuchAlgorithmException {
+    public void testGetMd5Digest_WithoutUserInfoObject() throws 
NoSuchAlgorithmException, UnsupportedEncodingException {
         MessageDigest result = testServlet.getMd5Digest(mockRequest);
         assertEquals(result, mockDigest);
         verify(mockDigest, atLeast(1)).update(byteArrayCaptor.capture());
@@ -216,7 +217,7 @@
     }
 
     @Test
-    public void testGetMd5Digest_WithUserInfoObject() throws 
NoSuchAlgorithmException {
+    public void testGetMd5Digest_WithUserInfoObject() throws 
NoSuchAlgorithmException, UnsupportedEncodingException {
         String userInfo = "{ \"foo\": \"bar\" }"; //$NON-NLS-1$
         when(mockUserInfoObject.toString()).thenReturn(userInfo);
         when(mockRequest.getAttribute(GwtDynamicHostPageServlet.
diff --git 
a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServletTest.java
 
b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServletTest.java
index 5227e14..84ba1a9 100644
--- 
a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServletTest.java
+++ 
b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/server/gwt/WebAdminHostPageServletTest.java
@@ -15,6 +15,7 @@
 import static org.ovirt.engine.core.utils.MockConfigRule.mockConfig;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -101,13 +102,14 @@
     }
 
     @Test
-    public void testGetMd5Digest_WithExtraObjects_WithoutUserInfoObject() 
throws NoSuchAlgorithmException {
+    public void testGetMd5Digest_WithExtraObjects_WithoutUserInfoObject() 
throws NoSuchAlgorithmException,
+        UnsupportedEncodingException {
         MessageDigest result = testServlet.getMd5Digest(mockRequest);
         assertEquals(result, mockDigest);
         verify(mockDigest, atLeast(3)).update(byteArrayCaptor.capture());
-        assertArrayEquals(SELECTOR_SCRIPT.getBytes(), 
byteArrayCaptor.getAllValues().get(0));
-        assertArrayEquals(APPLICATION_MODE.getBytes(), 
byteArrayCaptor.getAllValues().get(1));
-        assertArrayEquals(mockPluginDefinitionsArray.toString().getBytes(), 
byteArrayCaptor.getAllValues().get(2));
+        
assertArrayEquals(SELECTOR_SCRIPT.getBytes(GwtDynamicHostPageServlet.UTF8), 
byteArrayCaptor.getAllValues().get(0));
+        
assertArrayEquals(APPLICATION_MODE.getBytes(GwtDynamicHostPageServlet.UTF8), 
byteArrayCaptor.getAllValues().get(1));
+        
assertArrayEquals(mockPluginDefinitionsArray.toString().getBytes(GwtDynamicHostPageServlet.UTF8),
 byteArrayCaptor.getAllValues().get(2));
     }
 
     @Test
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCustomPreviewPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCustomPreviewPopupWidget.java
index 6a1a7ca..0052c92 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCustomPreviewPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCustomPreviewPopupWidget.java
@@ -1,26 +1,10 @@
 package org.ovirt.engine.ui.common.widget.uicommon.popup.vm;
 
-import com.google.gwt.cell.client.Cell.Context;
-import com.google.gwt.cell.client.FieldUpdater;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.BrowserEvents;
-import com.google.gwt.dom.client.NativeEvent;
-import com.google.gwt.editor.client.SimpleBeanEditorDriver;
-import com.google.gwt.resources.client.ImageResource;
-import com.google.gwt.safehtml.shared.SafeHtml;
-import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
-import com.google.gwt.safehtml.shared.SafeHtmlUtils;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.cellview.client.Column;
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.SplitLayoutPanel;
-import com.google.gwt.view.client.CellPreviewEvent;
-import com.google.gwt.view.client.NoSelectionModel;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
 import org.ovirt.engine.core.common.businessentities.Snapshot;
@@ -46,10 +30,27 @@
 import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.IEventListener;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import com.google.gwt.cell.client.Cell.Context;
+import com.google.gwt.cell.client.FieldUpdater;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.BrowserEvents;
+import com.google.gwt.dom.client.NativeEvent;
+import com.google.gwt.editor.client.SimpleBeanEditorDriver;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.cellview.client.Column;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.SplitLayoutPanel;
+import com.google.gwt.view.client.CellPreviewEvent;
+import com.google.gwt.view.client.NoSelectionModel;
 
 public class VmSnapshotCustomPreviewPopupWidget extends 
AbstractModelBoundPopupWidget<PreviewSnapshotModel> {
 
@@ -175,6 +176,7 @@
                 constants.vmConfiguration()), "30px"); //$NON-NLS-1$
 
         previewTable.addColumn(new CheckboxColumn<SnapshotModel>(new 
FieldUpdater<SnapshotModel, Boolean>() {
+            @Override
             public void update(int index, SnapshotModel snapshotModel, Boolean 
value) {
                 
previewSnapshotModel.getSnapshotModel().getMemory().setEntity(value);
                 refreshTable(previewTable);
@@ -183,7 +185,7 @@
         }) {
             @Override
             public Boolean getValue(SnapshotModel snapshotModel) {
-                return (Boolean) snapshotModel.getMemory().getEntity();
+                return snapshotModel.getMemory().getEntity();
 
             }
 
@@ -284,7 +286,12 @@
     private void updateWarnings() {
         List<DiskImage> selectedDisks = 
previewSnapshotModel.getSelectedDisks();
         List<DiskImage> disksOfSelectedSnapshot = 
previewSnapshotModel.getSnapshotModel().getEntity().getDiskImages();
-        List<DiskImage> disksOfActiveSnapshot = 
previewSnapshotModel.getActiveSnapshotModel().getEntity().getDiskImages();
+        List<DiskImage> disksOfActiveSnapshot;
+        if (previewSnapshotModel.getActiveSnapshotModel() != null) {
+            disksOfActiveSnapshot = 
previewSnapshotModel.getActiveSnapshotModel().getEntity().getDiskImages();
+        } else {
+            disksOfActiveSnapshot = Collections.emptyList();
+        }
 
         boolean isIncludeAllDisksOfSnapshot = 
selectedDisks.containsAll(disksOfSelectedSnapshot);
         boolean isIncludeMemory = 
previewSnapshotModel.getSnapshotModel().getMemory().getEntity();
diff --git 
a/frontend/webadmin/modules/gwt-common/src/test/java/org/ovirt/engine/ui/common/GwtMessagesValidator.java
 
b/frontend/webadmin/modules/gwt-common/src/test/java/org/ovirt/engine/ui/common/GwtMessagesValidator.java
index f24ee79..09da793 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/test/java/org/ovirt/engine/ui/common/GwtMessagesValidator.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/test/java/org/ovirt/engine/ui/common/GwtMessagesValidator.java
@@ -1,9 +1,11 @@
 package org.ovirt.engine.ui.common;
 
 import java.io.File;
-import java.io.FileReader;
+import java.io.FileInputStream;
 import java.io.FilenameFilter;
 import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.net.URISyntaxException;
@@ -46,13 +48,16 @@
                     .toURI().toASCIIString().replaceAll("file:", ""));
             List<Method> messagesMethods = 
Arrays.asList(classUnderTest.getMethods());
 
-            for (File localeFile : getMessagesPropertiesFiles(messagesDir, 
classUnderTest.getSimpleName())) {
-                PropertiesFileInfo.properties = loadProperties(localeFile);
-                PropertiesFileInfo.fileName = localeFile.getName();
+            File[] propertiesFiles = getMessagesPropertiesFiles(messagesDir, 
classUnderTest.getSimpleName());
+            if (propertiesFiles != null) {
+                for (File localeFile : propertiesFiles) {
+                    PropertiesFileInfo.properties = loadProperties(localeFile);
+                    PropertiesFileInfo.fileName = localeFile.getName();
 
-                for (Method method : messagesMethods) {
-                    checkForMissingDefault(method, errors);
-                    checkPlaceHolders(method, errors);
+                    for (Method method : messagesMethods) {
+                        checkForMissingDefault(method, errors);
+                        checkPlaceHolders(method, errors);
+                    }
                 }
             }
         } else {
@@ -137,11 +142,16 @@
 
     private static Properties loadProperties(File localeFile) throws 
IOException {
         Properties properties = new Properties();
-        FileReader fr = null;
+        Reader fr = null;
+        FileInputStream fis = null;
         try {
-            fr = new FileReader(localeFile);
+            fis = new FileInputStream(localeFile);
+            fr = new InputStreamReader(fis, "UTF-8");
             properties.load(fr);
         } finally {
+            if (fis != null) {
+                fis.close();
+            }
             if (fr != null) {
                 fr.close();
             }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/AlertListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/AlertListModel.java
index e22e1a8..59bdf97 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/AlertListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/AlertListModel.java
@@ -50,6 +50,7 @@
 
     @Override
     public void executeCommand(UICommand command) {
+        super.executeCommand(command);
         if (command == getDismissCommand())
         {
             dismissAlert();


-- 
To view, visit http://gerrit.ovirt.org/34905
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I759bfd3176b25731a5150ae690a9838e0ab63ce8
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alexander Wels <aw...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to