fix for bug 2471: accept null as boat class name and using default values for the boat class in this case

This commit is contained in:
Axel Uhl committed 2014-11-14 17:14:48 +01:00
1 parent a1abcd704c
commit e6e146a2d4
3 files changed
+29 -6

No files matched your search

@@ -89,12 +89,10 @@ public enum BoatClassMasterdata {
public static BoatClassMasterdata resolveBoatClass(String boatClassName) {
String boatClassNameToResolve = unifyBoatClassName(boatClassName);
for (BoatClassMasterdata boatClass : values()) {
if (unifyBoatClassName(boatClass.displayName).equals(boatClassNameToResolve)) {
return boatClass;
}
if(boatClass.alternativeNames != null) {
} else if (boatClass.alternativeNames != null) {
for (String name : boatClass.alternativeNames) {
if (unifyBoatClassName(name).equals(boatClassNameToResolve)) {
return boatClass;
@@ -272,9 +272,9 @@ public class SharedDomainFactoryImpl implements SharedDomainFactory {
public BoatClass getOrCreateBoatClass(String name, boolean typicallyStartsUpwind) {
synchronized (boatClassCache) {
BoatClass result = boatClassCache.get(name);
if(result == null) {
if (result == null && name != null) {
BoatClassMasterdata boatClassMasterdata = BoatClassMasterdata.resolveBoatClass(name);
if(boatClassMasterdata != null) {
if (boatClassMasterdata != null) {
result = new BoatClassImpl(name, boatClassMasterdata);
boatClassCache.put(name, result);
}
@@ -289,7 +289,7 @@ public class SharedDomainFactoryImpl implements SharedDomainFactory {
@Override
public BoatClass getOrCreateBoatClass(String name) {
return getOrCreateBoatClass(name, /* typicallyStartsUpwind */!mayStartWithNoUpwindLeg.contains(name.toLowerCase()));
return getOrCreateBoatClass(name, name == null || /* typicallyStartsUpwind */!mayStartWithNoUpwindLeg.contains(name.toLowerCase()));
}
@Override
@@ -0,0 +1,25 @@
package com.sap.sailing.domain.common;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import org.junit.Test;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.DomainFactory;
public class BoatClassWithNullNameTest {
/**
* See bug 2471
*/
@Test
public void testCreatingBoatClassWithNullName() {
DomainFactory domainFactory = DomainFactory.INSTANCE;
BoatClass boatClass = domainFactory.getOrCreateBoatClass(null);
assertNotNull(boatClass);
assertNull(boatClass.getName());
BoatClass boatClass2 = domainFactory.getOrCreateBoatClass(null);
assertSame(boatClass, boatClass2);
}
}