Skip to content

Commit 85f71a3

Browse files
committed
fix for GRAILS-6463 "Adding a method containing an 'int' parameter within a domain class throws exception"
1 parent 146cc11 commit 85f71a3

File tree

1 file changed

+17
-24
lines changed

1 file changed

+17
-24
lines changed

src/java/org/codehaus/groovy/grails/commons/DefaultGrailsDomainClass.java

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,16 @@
1616

1717
import grails.util.GrailsNameUtils;
1818
import groovy.lang.GroovyObject;
19-
20-
import java.beans.PropertyDescriptor;
21-
import java.lang.reflect.Modifier;
22-
import java.util.ArrayList;
23-
import java.util.Collection;
24-
import java.util.Collections;
25-
import java.util.HashMap;
26-
import java.util.HashSet;
27-
import java.util.LinkedHashMap;
28-
import java.util.List;
29-
import java.util.Map;
30-
import java.util.Set;
31-
3219
import org.apache.commons.lang.ClassUtils;
3320
import org.apache.commons.lang.StringUtils;
3421
import org.codehaus.groovy.grails.exceptions.GrailsDomainException;
3522
import org.codehaus.groovy.grails.exceptions.InvalidPropertyException;
3623
import org.springframework.validation.Validator;
3724

25+
import java.beans.PropertyDescriptor;
26+
import java.lang.reflect.Modifier;
27+
import java.util.*;
28+
3829
/**
3930
* @author Graeme Rocher
4031
*/
@@ -248,20 +239,22 @@ private void establishRelationships() {
248239
DefaultGrailsDomainClassProperty currentProp = (DefaultGrailsDomainClassProperty) o;
249240
if (!currentProp.isPersistent()) continue;
250241

251-
Class<?> currentPropType = currentProp.getType();
242+
Class currentPropType = currentProp.getType();
252243
// establish if the property is a one-to-many
253244
// if it is a Set and there are relationships defined
254245
// and it is defined as persistent
255-
if (Collection.class.isAssignableFrom(currentPropType) || Map.class.isAssignableFrom(currentPropType)) {
256-
establishRelationshipForCollection(currentProp);
257-
}
258-
// otherwise if the type is a domain class establish relationship
259-
else if (DomainClassArtefactHandler.isDomainClass(currentPropType) &&
260-
currentProp.isPersistent()) {
261-
establishDomainClassRelationship(currentProp);
262-
}
263-
else if (embedded.contains(currentProp.getName())) {
264-
establishDomainClassRelationship(currentProp);
246+
if(currentPropType != null) {
247+
if (Collection.class.isAssignableFrom(currentPropType) || Map.class.isAssignableFrom(currentPropType)) {
248+
establishRelationshipForCollection(currentProp);
249+
}
250+
// otherwise if the type is a domain class establish relationship
251+
else if (DomainClassArtefactHandler.isDomainClass(currentPropType) &&
252+
currentProp.isPersistent()) {
253+
establishDomainClassRelationship(currentProp);
254+
}
255+
else if (embedded.contains(currentProp.getName())) {
256+
establishDomainClassRelationship(currentProp);
257+
}
265258
}
266259
}
267260
}

0 commit comments

Comments
 (0)