Author: simoneg
Date: Fri Jan 29 11:24:28 2010
New Revision: 904466

URL: http://svn.apache.org/viewvc?rev=904466&view=rev
Log:
Fixes on image validation and prevention of NPE when conversion or validation 
errors occur

Modified:
    
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/beans/image/ImageUtil.java
    
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/conversion/image/ImageConverterToString.java
    
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/validation/validators/MagUploadImageValidator.java
    
labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/MagmaException.java
    
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj
    
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/ConversionException.java
    
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormattingInHandler.aj
    
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj
    
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/ValidationError.java
    
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/BeanFormProducer.java

Modified: 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/beans/image/ImageUtil.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/beans-image/src/main/java/org/apache/magma/beans/image/ImageUtil.java?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/beans/image/ImageUtil.java
 (original)
+++ 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/beans/image/ImageUtil.java
 Fri Jan 29 11:24:28 2010
@@ -35,7 +35,7 @@
                this.data = data;
        }
        
-       protected void load() {
+       public void load() {
                if (img != null) return;
                try {
                        img = ImageIO.read(data);

Modified: 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/conversion/image/ImageConverterToString.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/beans-image/src/main/java/org/apache/magma/conversion/image/ImageConverterToString.java?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/conversion/image/ImageConverterToString.java
 (original)
+++ 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/conversion/image/ImageConverterToString.java
 Fri Jan 29 11:24:28 2010
@@ -78,7 +78,7 @@
                        } catch (MagmaException e) {
                                Throwable inner = 
ExceptionUtils.findInnerException(e);
                                if (inner instanceof IIOException) {
-                                       throw new ConversionException(e, "File 
is not a supported image format : {0}", inner.getMessage());
+                                       throw new ConversionException("File is 
not a supported image format : {0}", inner.getMessage());
                                } else {
                                        throw e;
                                }

Modified: 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/validation/validators/MagUploadImageValidator.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/beans-image/src/main/java/org/apache/magma/validation/validators/MagUploadImageValidator.java?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/validation/validators/MagUploadImageValidator.java
 (original)
+++ 
labs/magma/trunk/beans-image/src/main/java/org/apache/magma/validation/validators/MagUploadImageValidator.java
 Fri Jan 29 11:24:28 2010
@@ -70,15 +70,17 @@
                }
                ImageUtil iu = null;
                try {
+                       // Always load image, so we check for it being a real 
image,
+                       // and us being able to parse it.
+                       iu = new ImageUtil(value);
+                       iu.load();
                        if (this.maxFormat != null) {
-                               if (iu == null) iu = new ImageUtil(value);
                                if (iu.isBiggerThan(this.maxFormat)) {
                                        if (messages == null) messages = new 
ArrayList<LocalizableString>();
                                        messages.add(new 
LocalizableString("Image too big, it is {0}x{1}, while should be smaller than 
{2}x{3}", iu.getWidth(), iu.getHeight(), maxFormat.getWidth(), 
maxFormat.getHeight()));                          
                                }
                        }
                        if (this.minFormat != null) {
-                               if (iu == null) iu = new ImageUtil(value);
                                if (iu.isSmallerThan(this.minFormat)) {
                                        if (messages == null) messages = new 
ArrayList<LocalizableString>();
                                        messages.add(new 
LocalizableString("Image too small, it is {0}x{1}, while should be bigger than 
{2}x{3}", iu.getWidth(), iu.getHeight(), minFormat.getWidth(), 
minFormat.getHeight()));                         
@@ -87,6 +89,7 @@
                } catch (MagmaException e) {
                        Throwable inner = ExceptionUtils.findInnerException(e);
                        if (inner instanceof IIOException) {
+                               if (messages == null) messages = new 
ArrayList<LocalizableString>();                            
                                messages.add(new LocalizableString("File is not 
a supported image format : {0}", inner.getMessage()));                          
                                
                        } else {
                                throw e;

Modified: 
labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/MagmaException.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/MagmaException.java?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/MagmaException.java
 (original)
+++ 
labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/MagmaException.java
 Fri Jan 29 11:24:28 2010
@@ -34,6 +34,8 @@
        
        private List<LocalizableString> messages = null;
        
+       protected MagmaException() {}
+       
        public MagmaException(List<LocalizableString> messages) {
                this.messages = messages;
        }

Modified: 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj
 (original)
+++ 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj
 Fri Jan 29 11:24:28 2010
@@ -167,11 +167,8 @@
                                        setValue(name, conv.from(val));
                                } catch (ConversionException e) {
                                        e.setSubject(property);
-                                       if (exc == null) {
-                                               exc = e;
-                                       } else {
-                                               exc.join(e);
-                                       }
+                                       if (exc == null) exc = new 
ConversionException();
+                                       exc.join(e);
                                }
                        } else {
                                if (property.getType().equals(String.class)) {

Modified: 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/ConversionException.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/ConversionException.java?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/ConversionException.java
 (original)
+++ 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/ConversionException.java
 Fri Jan 29 11:24:28 2010
@@ -31,6 +31,10 @@
         */
        private static final long serialVersionUID = -7607421936823485674L;
 
+       public ConversionException() {
+               super();
+       }
+       
        /**
         * @param message the basic message
         * @param args the arguments for expansion

Modified: 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormattingInHandler.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormattingInHandler.aj?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormattingInHandler.aj
 (original)
+++ 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormattingInHandler.aj
 Fri Jan 29 11:24:28 2010
@@ -107,11 +107,8 @@
                                        setValue(name, form.from(val));
                                } catch (ConversionException e) {
                                        e.setSubject(property);
-                                       if (exc == null) {
-                                               exc = e;
-                                       } else {
-                                               exc.join(e);
-                                       }
+                                       if (exc == null) exc = new 
ConversionException();
+                                       exc.join(e);
                                }
                        } else {
                                setStringValue(name, val);

Modified: 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj
 (original)
+++ 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj
 Fri Jan 29 11:24:28 2010
@@ -23,6 +23,7 @@
 import org.apache.magma.beans.BeanHandler;
 import org.apache.magma.basics.MagmaException;
 import org.apache.magma.beans.PropertyInfo;
+import org.apache.magma.conversion.ConversionException;
 import org.apache.magma.view.MagDefaultLayers;
 
 public privileged aspect AddValidationInHandler {
@@ -71,11 +72,8 @@
                        try {
                                validate(name, layers);
                        } catch (ValidationError e) {
-                               if (err == null) {
-                                       err = e;
-                               } else {
-                                       err.join(e);
-                               }
+                               if (err == null) err = new ValidationError();
+                               err.join(e);
                        }
                }
                if (err != null) throw err;

Modified: 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/ValidationError.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/ValidationError.java?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/ValidationError.java
 (original)
+++ 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/ValidationError.java
 Fri Jan 29 11:24:28 2010
@@ -24,6 +24,10 @@
 
 public class ValidationError extends MagmaException {
 
+       public ValidationError() {
+               super();
+       }
+       
        public ValidationError(LocalizableString error) {
                super(error);
        }

Modified: 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/BeanFormProducer.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/BeanFormProducer.java?rev=904466&r1=904465&r2=904466&view=diff
==============================================================================
--- 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/BeanFormProducer.java
 (original)
+++ 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/BeanFormProducer.java
 Fri Jan 29 11:24:28 2010
@@ -129,12 +129,14 @@
                                        out.write("<li>");
                                        if (errmsg instanceof 
LocalizableStringWithSubject) {
                                                Object subject = 
((LocalizableStringWithSubject)errmsg).getSubject();
-                                               if (subject instanceof 
PropertyInfo) {
-                                                       out.write(new 
LocalizableString(((PropertyInfo)subject).getName()).toString());
-                                               } else {
-                                                       
out.write(subject.toString());
+                                               if (subject != null) {
+                                                       if (subject instanceof 
PropertyInfo) {
+                                                               out.write(new 
LocalizableString(((PropertyInfo)subject).getName()).toString());
+                                                       } else {
+                                                               
out.write(subject.toString());
+                                                       }
+                                                       out.write(" : ");
                                                }
-                                               out.write(" : ");
                                                out.write(errmsg.toString());
                                        } else {
                                                out.write(errmsg.toString());
@@ -214,7 +216,8 @@
        protected List<LocalizableString> findErrors(PropertyInfo property) {
                List<LocalizableString> errs = new 
ArrayList<LocalizableString>();
                for (LocalizableStringWithSubject acerr : this.errors) {
-                       if (acerr.getSubject().equals(property)) 
errs.add(acerr);
+                       Object subject = acerr.getSubject();
+                       if (subject != null && subject.equals(property)) 
errs.add(acerr);
                }
                return errs;
        }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to