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]