Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 Mon Apr  4 05:45:45 2016
@@ -30,6 +30,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
 
@@ -41,14 +42,12 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.GroupUser;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.CalendarPatterns;
 import org.apache.openmeetings.util.OmException;
@@ -68,8 +67,6 @@ public class MobileService {
        @Autowired
        private UserDao userDao;
        @Autowired
-       private StateDao stateDao;
-       @Autowired
        private IUserManager userManager;
        @Autowired
        private SessiondataDao sessionDao;
@@ -94,10 +91,10 @@ public class MobileService {
                return result;
        }
        
-       public Map<Long, String> getStates() {
-               Map<Long, String> result = new Hashtable<>();
-               for (State s : stateDao.get()) {
-                       result.put(s.getId(), s.getName());
+       public Map<String, String> getStates() {
+               Map<String, String> result = new Hashtable<>();
+               for (String code : Locale.getISOCountries()) {
+                       result.put(code, new 
Locale.Builder().setRegion(code).build().getDisplayCountry());
                }
                return result;
        }
@@ -135,7 +132,7 @@ public class MobileService {
                                }
                                String password = umap.get("password");
                                String tzId = umap.get("tzId");
-                               Long stateId = 
Long.valueOf(umap.get("stateId"));
+                               String country = umap.get("stateId");
                                Long langId = Long.valueOf(umap.get("langId"));
                                
                                //FIXME TODO unify with Register dialog
@@ -147,7 +144,7 @@ public class MobileService {
                                                && 1 == 
cfgDao.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
                                Long userId = 
userManager.registerUserInit(UserDao.getDefaultRights(), login, password, 
lastname
                                                , firstname, email, null /* 
age/birthday */, "" /* street */
-                                               , "" /* additionalname */, "" 
/* fax */, "" /* zip */, stateId
+                                               , "" /* additionalname */, "" 
/* fax */, "" /* zip */, country
                                                , "" /* town */, langId, true 
/* sendWelcomeMessage */
                                                , 
Arrays.asList(cfgDao.getConfValue(CONFIG_DEFAULT_GROUP_ID, Long.class, null)),
                                                "" /* phone */, false, 
sendConfirmation, TimeZone.getTimeZone(tzId),

Modified: 
openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
 Mon Apr  4 05:45:45 2016
@@ -100,6 +100,7 @@ public class AsfCopyRightReplace {
        private void scanFolder(File folder) {
 
                for (File javaFile : folder.listFiles(new FilenameFilter() {
+                       @Override
                        public boolean accept(File b, String name) {
                                return name.endsWith(".java") || 
name.endsWith(".vm");
                        }
@@ -108,6 +109,7 @@ public class AsfCopyRightReplace {
                }
 
                for (File javaFile : folder.listFiles(new FilenameFilter() {
+                       @Override
                        public boolean accept(File b, String name) {
                                return name.endsWith(".xml") || 
name.endsWith(".lzx");
                        }
@@ -116,6 +118,7 @@ public class AsfCopyRightReplace {
                }
 
                for (File folderFile : folder.listFiles(new FilenameFilter() {
+                       @Override
                        public boolean accept(File b, String name) {
                                File f = new File(b, name);
                                return f.isDirectory();
@@ -126,15 +129,12 @@ public class AsfCopyRightReplace {
        }
 
        private void scanAndWriteXMLFile(File javaFile) {
-               try {
-                       System.out.println("Processing " + 
javaFile.getCanonicalPath());
-
-                       BufferedReader is = new BufferedReader(new 
InputStreamReader(
-                                       new FileInputStream(javaFile), 
StandardCharsets.UTF_8));
+               StringWriter strWriter = new StringWriter();
+               try (BufferedReader is = new BufferedReader(new 
InputStreamReader(new FileInputStream(javaFile), StandardCharsets.UTF_8))) {
+                       log.debug("Processing " + javaFile.getCanonicalPath());
 
                        String line;
                        String firstline = "";
-                       StringWriter strWriter = new StringWriter();
                        int i = 0;
 
                        while ((line = is.readLine()) != null) {
@@ -146,8 +146,6 @@ public class AsfCopyRightReplace {
                                        } else if 
(firstline.startsWith("<library")) {
                                                
strWriter.append(asf_xml_copyright);
                                        }
-                                                       
-                                       
                                } else if (i == 1) {
                                        if (firstline.startsWith("<?xml ")
                                                        && 
!line.startsWith("<!--")) {
@@ -163,29 +161,24 @@ public class AsfCopyRightReplace {
                                strWriter.append(line + "\n");
                                i++;
                        }
-                       is.close();
-
-                       OutputStreamWriter out = new OutputStreamWriter(
-                                       new 
FileOutputStream(javaFile.getCanonicalPath()), StandardCharsets.UTF_8);
 
+               } catch (Exception err) {
+                       log.error("Error while scanAndWriteXMLFile", err);
+               }
+               try (OutputStreamWriter out = new OutputStreamWriter(new 
FileOutputStream(javaFile), StandardCharsets.UTF_8)) {
                        out.write(strWriter.toString());
                        out.flush();
-                       out.close();
-
                } catch (Exception err) {
                        log.error("Error while scanAndWriteXMLFile", err);
                }
        }
 
        private void scanAndWriteJavaFile(File javaFile) {
-               try {
-                       System.out.println("Processing " + 
javaFile.getCanonicalPath());
-
-                       BufferedReader is = new BufferedReader(new 
InputStreamReader(
-                                       new FileInputStream(javaFile), 
StandardCharsets.UTF_8));
+               StringWriter strWriter = new StringWriter();
+               try (BufferedReader is = new BufferedReader(new 
InputStreamReader(new FileInputStream(javaFile), StandardCharsets.UTF_8))) {
+                       log.debug("Processing " + javaFile.getCanonicalPath());
 
                        String line;
-                       StringWriter strWriter = new StringWriter();
                        int i = 0;
 
                        while ((line = is.readLine()) != null) {
@@ -200,18 +193,14 @@ public class AsfCopyRightReplace {
                                strWriter.append(line + "\n");
                                i++;
                        }
-                       is.close();
-                       
-                       OutputStreamWriter out = new OutputStreamWriter(
-                                       new 
FileOutputStream(javaFile.getCanonicalPath()), StandardCharsets.UTF_8);
-
+               } catch (Exception err) {
+                       log.error("Error while scanAndWriteJavaFile", err);
+               }
+               try (OutputStreamWriter out = new OutputStreamWriter(new 
FileOutputStream(javaFile), StandardCharsets.UTF_8)) {
                        out.write(strWriter.toString());
                        out.flush();
-                       out.close();
-
                } catch (Exception err) {
                        log.error("Error while scanAndWriteJavaFile", err);
                }
        }
-
 }

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
 Mon Apr  4 05:45:45 2016
@@ -195,20 +195,10 @@ public class LabelDao implements IDataPr
        
        private static List<StringLabel> getLabels(Locale l) {
                List<StringLabel> labels = new ArrayList<StringLabel>();
-               InputStream is = null;
-               try {
-                       is = APP.getResourceAsStream(getLabelFileName(l));
+               try (InputStream is = 
APP.getResourceAsStream(getLabelFileName(l))) {
                        labels = getLabels(l, is);
                } catch (Exception e) {
                        log.error("Error reading resources document", e);
-               } finally {
-                       if (is != null) {
-                               try {
-                                       is.close();
-                               } catch (Exception e) {
-                                       //no-op
-                               }
-                       }
                }
                return labels;
        }

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
 Mon Apr  4 05:45:45 2016
@@ -27,7 +27,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;
 
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.Userdata;
@@ -37,13 +36,13 @@ public interface IUserManager {
        
        Long registerUser(String login, String Userpass, String lastname,
                        String firstname, String email, Date age, String street,
-                       String additionalname, String fax, String zip, long 
stateId,
+                       String additionalname, String fax, String zip, String 
country,
                        String town, long languageId, String phone, boolean 
sendSMS,
                        boolean generateSipUserData, String jNameTimeZone, 
Boolean sendConfirmation);
        
        Long registerUserInit(Set<Right> rights, String login, String password, 
String lastname,
                        String firstname, String email, Date age, String street,
-                       String additionalname, String fax, String zip, long 
stateId,
+                       String additionalname, String fax, String zip, String 
country,
                        String town, long languageId, boolean 
sendWelcomeMessage,
                        List<Long> groups, String phone, boolean sendSMS, 
Boolean sendConfirmation,
                        TimeZone timezone, Boolean forceTimeZoneCheck,
@@ -51,7 +50,6 @@ public interface IUserManager {
                        Boolean showContactDataToContacts, String 
activatedHash) throws Exception;
 
        Long getLanguage(Locale loc);
-       State getCountry(Locale loc);
        User loginOAuth(Map<String, String> params, long serverId) throws 
IOException, NoSuchAlgorithmException;
 
        /** TODO FIXME seems to be unused **/

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
 Mon Apr  4 05:45:45 2016
@@ -29,6 +29,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;
@@ -81,8 +82,6 @@ public class UserDao implements IDataPro
        @Autowired
        private ConfigurationDao cfgDao;
        @Autowired
-       private StateDao stateDao;
-       @Autowired
        private TimezoneUtil timezoneUtil;
 
        public static Set<Right> getDefaultRights() {
@@ -109,7 +108,7 @@ public class UserDao implements IDataPro
                user.setSendSMS(false);
                user.setAge(new Date());
                Address address = new Address();
-               address.setState(stateDao.get(1L));
+               address.setCountry(Locale.getDefault().getCountry());
                user.setAddress(address);
                user.setShowContactData(false);
                user.setShowContactDataToContacts(false);
@@ -622,12 +621,12 @@ public class UserDao implements IDataPro
                return update(u, u.getId());
        }
        
-       public Address getAddress(String street, String zip, String town, long 
stateId, String additionalname, String fax, String phone, String email) {
+       public Address getAddress(String street, String zip, String town, 
String country, String additionalname, String fax, String phone, String email) {
                Address a =  new Address();
                a.setStreet(street);
                a.setZip(zip);
                a.setTown(town);
-               a.setState(stateDao.get(stateId));
+               a.setCountry(country);
                a.setAdditionalname(additionalname);
                a.setComment("");
                a.setFax(fax);

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
 Mon Apr  4 05:45:45 2016
@@ -22,13 +22,10 @@ import java.util.Date;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
-import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.JoinColumn;
 import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
 import javax.persistence.Table;
 
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
@@ -63,10 +60,9 @@ public class Address implements IDataPro
        @Element(name = "starttime",data=true, required=false)
        private Date inserted;
        
-       @ManyToOne(fetch = FetchType.EAGER)
-       @JoinColumn(name = "state_id")
-       @Element(name="state_id", data=true, required=false)
-       private State state;
+       @Column(name = "country")
+       @Element(name="country", data=true, required=false)
+       private String country;
        
        @Column(name = "street")
        @Element(data=true, required=false)
@@ -134,12 +130,12 @@ public class Address implements IDataPro
                this.inserted = inserted;
        }
 
-       public State getState() {
-               return state;
+       public String getCountry() {
+               return country;
        }
 
-       public void setState(State state) {
-               this.state = state;
+       public void setCountry(String country) {
+               this.country = country;
        }
 
        public String getStreet() {
@@ -200,7 +196,7 @@ public class Address implements IDataPro
 
        @Override
        public String toString() {
-               return "Address [id=" + id + ", state=" + state
+               return "Address [id=" + id + ", country=" + country
                                + ", street=" + street + ", town=" + town + ", 
zip=" + zip
                                + ", deleted=" + deleted + ", email=" + email + 
", phone="
                                + phone + "]";

Modified: 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
 Mon Apr  4 05:45:45 2016
@@ -59,7 +59,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.PrivateMessage;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.util.OmFileHelper;
@@ -333,7 +332,6 @@ public class BackupExport {
                {
                        List<Configuration> list = 
configurationDao.getConfigurations(0, Integer.MAX_VALUE, "c.id", true);
                        Registry registry = new Registry();
-                       registry.bind(State.class, StateConverter.class);
                        registry.bind(User.class, UserConverter.class);
                        Strategy strategy = new RegistryStrategy(registry);
                        Serializer serializer = new Persister(strategy);
@@ -407,12 +405,12 @@ public class BackupExport {
                log.debug("---Done");
        }
        
-       private <T> void writeList(Serializer ser, File backup_dir, String 
fileName, String listElement, List<T> list) throws Exception {
+       private static <T> void writeList(Serializer ser, File backup_dir, 
String fileName, String listElement, List<T> list) throws Exception {
                FileOutputStream fos = new FileOutputStream(new 
File(backup_dir, fileName));
                writeList(ser, fos, listElement, list);
        }
        
-       private <T> void writeList(Serializer ser, OutputStream os, String 
listElement, List<T> list) throws Exception {
+       private static <T> void writeList(Serializer ser, OutputStream os, 
String listElement, List<T> list) throws Exception {
                Format format = new Format("<?xml version=\"1.0\" 
encoding=\"UTF-8\"?>");
                OutputNode doc = NodeBuilder.write(new OutputStreamWriter(os, 
StandardCharsets.UTF_8), format);
                OutputNode root = doc.getChild("root");
@@ -442,7 +440,6 @@ public class BackupExport {
                Serializer serializer = new Persister(strategy);
 
                registry.bind(Group.class, GroupConverter.class);
-               registry.bind(State.class, StateConverter.class);
                registry.bind(Salutation.class, SalutationConverter.class);
                if (list != null && list.size() > 0) {
                        Class<?> dateClass = list.get(0).getRegdate() != null ? 
list.get(0).getRegdate().getClass() : list.get(0).getInserted().getClass();

Modified: 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 Mon Apr  4 05:45:45 2016
@@ -29,8 +29,8 @@ import static org.apache.openmeetings.ut
 import static org.apache.openmeetings.util.OmFileHelper.getUploadRoomDir;
 import static org.apache.openmeetings.util.OmFileHelper.profilesPrefix;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT_KEY;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -44,6 +44,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.UUID;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
@@ -71,7 +72,6 @@ import org.apache.openmeetings.db.dao.se
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.PrivateMessageDao;
 import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserContactDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.ChatMessage;
@@ -94,7 +94,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
@@ -123,12 +122,11 @@ import org.xml.sax.InputSource;
 public class BackupImport {
        private static final Logger log = 
Red5LoggerFactory.getLogger(BackupImport.class, webAppRootKey);
        private static final String LDAP_EXT_TYPE = "LDAP";
+       private static final Properties countries = new Properties();
 
        @Autowired
        private AppointmentDao appointmentDao;
        @Autowired
-       private StateDao statemanagement;
-       @Autowired
        private RoomDao roomDao;
        @Autowired
        private UserDao userDao;
@@ -930,7 +928,6 @@ public class BackupImport {
                Serializer ser = new Persister(strategy);
 
                registry.bind(Group.class, new GroupConverter(groupDao, 
groupMap));
-               registry.bind(State.class, new StateConverter(statemanagement));
                registry.bind(Salutation.class, SalutationConverter.class);
                registry.bind(Date.class, DateConverter.class);
 
@@ -996,7 +993,7 @@ public class BackupImport {
                                                item1 = listNode1.getNext(); 
//HACK to handle Address inside user
                                        } while (item1 != null && 
!"user".equals(item1.getName()));
                                }
-                               String levelId = null, status = null;
+                               String levelId = null, status = null, stateId = 
null;
                                do {
                                        if (u.getTimeZoneId() == null && 
"omTimeZone".equals(item2.getName())) {
                                                String jName = item2.getValue();
@@ -1008,6 +1005,9 @@ public class BackupImport {
                                        if ("status".equals(item2.getName())) {
                                                status = item2.getValue();
                                        }
+                                       if ("state_id".equals(item2.getName())) 
{
+                                               stateId = item2.getValue();
+                                       }
                                        item2 = listNode2.getNext(); //HACK to 
handle old om_time_zone, level_id, status
                                } while (item2 != null && 
!"user".equals(item2.getName()));
                                if (u.getRights().isEmpty()) {
@@ -1033,6 +1033,16 @@ public class BackupImport {
                                        }
                                        
userEmailMap.put(u.getAddress().getEmail(), userEmailMap.size());
                                }
+                               // check old stateId
+                               if (!Strings.isEmpty(stateId)) {
+                                       String country = getCountry(stateId);
+                                       if (!Strings.isEmpty(country)) {
+                                               if (u.getAddress() == null) {
+                                                       u.setAddress(new 
Address());
+                                               }
+                                               
u.getAddress().setCountry(country);
+                                       }
+                               }
                                list.add(u);
                                item = listNode.getNext();
                        }
@@ -1142,4 +1152,15 @@ public class BackupImport {
                }
                return newId;
        }
+       
+       private static String getCountry(String countryId) {
+               if (countries.isEmpty()) {
+                       try (InputStream is = 
BackupImport.class.getResourceAsStream("countries.properties")) {
+                               countries.load(is);
+                       } catch (IOException e) {
+                               log.error("Unexpected exception during 
countries import", e);
+                       }
+               }
+               return countries.getProperty(String.format("country.%s", 
countryId));
+       }
 }

Modified: 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 Mon Apr  4 05:45:45 2016
@@ -61,7 +61,6 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.room.SipDao;
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.ErrorValue;
 import org.apache.openmeetings.db.entity.basic.Naviglobal;
@@ -90,8 +89,6 @@ public class ImportInitvalues {
        @Autowired
        private UserDao userDao;
        @Autowired
-       private StateDao statemanagement;
-       @Autowired
        private NavigationDao navimanagement;
        @Autowired
        private ErrorDao errorDao;
@@ -446,33 +443,6 @@ public class ImportInitvalues {
                }
        }
 
-       /**
-        * import all language Names from the xml file
-        * 
-        * @param filePath
-        * @throws Exception
-        */
-       private void loadCountriesFiles() throws Exception {
-               SAXReader reader = new SAXReader();
-               Document document = reader.read(new File(
-                               OmFileHelper.getLanguagesDir(),
-                               OmFileHelper.nameOfCountriesFile));
-
-               Element root = document.getRootElement();
-
-               for (@SuppressWarnings("rawtypes")
-               Iterator it = root.elementIterator("country"); it.hasNext();) {
-                       Element item = (Element) it.next();
-
-                       statemanagement.add(item.attributeValue("name"),
-                                       item.attributeValue("short"),
-                                       
Integer.parseInt(item.attributeValue("code")));
-               }
-               log.debug("Countries ADDED");
-       }
-
-       // 
------------------------------------------------------------------------------
-
        public void loadInitialOAuthServers() throws Exception {
                // Yandex
                OAuthServer yandexServer = new OAuthServer();
@@ -543,9 +513,6 @@ public class ImportInitvalues {
                progress = 32;
                loadErrorMappingsFromXML();
                progress = 48;
-               loadCountriesFiles();
-               progress = 64;
-
                loadConfiguration(cfg);
                progress = 80;
                loadInitialOAuthServers();

Added: 
openmeetings/application/trunk/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties?rev=1737626&view=auto
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
 (added)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
 Mon Apr  4 05:45:45 2016
@@ -0,0 +1,254 @@
+################################################################################
+##
+##  Licensed to the Apache Software Foundation (ASF) under one or more
+##  contributor license agreements.  See the NOTICE file distributed with
+##  this work for additional information regarding copyright ownership.
+##  The ASF licenses this file to You under the Apache License, Version 2.0
+##  (the "License"); you may not use this file except in compliance with
+##  the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##
+################################################################################
+country.1=AF
+country.2=AX
+country.3=AL
+country.4=DZ
+country.5=AS
+country.6=AD
+country.7=AO
+country.8=AI
+country.9=AG
+country.10=AR
+country.11=AM
+country.12=AW
+country.13=AU
+country.14=AT
+country.15=AZ
+country.16=BS
+country.17=BH
+country.18=BD
+country.19=BB
+country.20=BY
+country.21=BE
+country.22=BZ
+country.23=BJ
+country.24=BM
+country.25=BT
+country.26=BO
+country.27=BA
+country.28=BW
+country.29=BR
+country.30=VG
+country.31=BN
+country.32=BG
+country.33=BF
+country.34=BI
+country.35=KH
+country.36=CM
+country.37=CA
+country.38=CV
+country.39=KY
+country.40=CF
+country.41=TD
+country.42=GB
+country.43=CL
+country.44=CN
+country.45=HK
+country.46=MO
+country.47=CO
+country.48=KM
+country.49=CG
+country.50=CK
+country.51=CR
+country.52=CI
+country.53=HR
+country.54=CU
+country.55=CY
+country.56=CZ
+country.57=KP
+country.58=CD
+country.59=DK
+country.60=DJ
+country.61=DM
+country.62=DO
+country.63=EC
+country.64=EG
+country.65=SV
+country.66=GQ
+country.67=ER
+country.68=EE
+country.69=ET
+country.70=FO
+country.71=FK
+country.72=FJ
+country.73=FI
+country.74=FR
+country.75=GF
+country.76=PF
+country.77=GA
+country.78=GM
+country.79=GE
+country.80=DE
+country.81=GH
+country.82=GI
+country.83=GR
+country.84=GL
+country.85=GD
+country.86=GP
+country.87=GU
+country.88=GT
+country.89=GG
+country.90=GN
+country.91=GW
+country.92=GY
+country.93=HT
+country.94=VA
+country.95=HN
+country.96=HU
+country.97=IS
+country.98=IN
+country.99=ID
+country.100=IR
+country.101=IQ
+country.102=IE
+country.103=IM
+country.104=IL
+country.105=IT
+country.106=JM
+country.107=JP
+country.108=JE
+country.109=JO
+country.110=KZ
+country.111=KE
+country.112=KI
+country.113=KW
+country.114=KG
+country.115=LA
+country.116=LV
+country.117=LB
+country.118=LS
+country.119=LR
+country.120=LY
+country.121=LI
+country.122=LT
+country.123=LU
+country.124=MG
+country.125=MW
+country.126=MY
+country.127=MV
+country.128=ML
+country.129=MT
+country.130=MH
+country.131=MQ
+country.132=MR
+country.133=MU
+country.134=YT
+country.135=MX
+country.136=FM
+country.137=MC
+country.138=MN
+country.139=ME
+country.140=MS
+country.141=MA
+country.142=MZ
+country.143=MM
+country.144=NA
+country.145=NR
+country.146=NP
+country.147=NL
+country.148=AN
+country.149=NC
+country.150=NZ
+country.151=NI
+country.152=NE
+country.153=NG
+country.154=NU
+country.155=NF
+country.156=MP
+country.157=NO
+country.158=PS
+country.159=OM
+country.160=PK
+country.161=PW
+country.162=PA
+country.163=PG
+country.164=PY
+country.165=PE
+country.166=PH
+country.167=PN
+country.168=PL
+country.169=PT
+country.170=PR
+country.171=QA
+country.172=KR
+country.173=MD
+country.174=RE
+country.175=RO
+country.176=RU
+country.177=RW
+country.178=SH
+country.179=KN
+country.180=LC
+country.181=PM
+country.182=VC
+country.183=WS
+country.184=SM
+country.185=ST
+country.186=SA
+country.187=SN
+country.188=RS
+country.189=SC
+country.190=SL
+country.191=SG
+country.192=SK
+country.193=SI
+country.194=SB
+country.195=SO
+country.196=ZA
+country.197=ES
+country.198=LK
+country.199=SD
+country.200=SR
+country.201=SJ
+country.202=SZ
+country.203=SE
+country.204=CH
+country.205=SY
+country.206=TW
+country.207=TJ
+country.208=TH
+country.209=MK
+country.210=TL
+country.211=TG
+country.212=TK
+country.213=TO
+country.214=TT
+country.215=TN
+country.216=TR
+country.217=TM
+country.218=TC
+country.219=TV
+country.220=UG
+country.221=UA
+country.222=AE
+country.223=GB
+country.224=TZ
+country.225=US
+country.226=VI
+country.227=UY
+country.228=UZ
+country.229=VU
+country.230=VE
+country.231=VN
+country.232=WF
+country.233=EH
+country.234=YE
+country.235=ZM
+country.236=ZW

Modified: 
openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java
 Mon Apr  4 05:45:45 2016
@@ -70,7 +70,7 @@ public class ScreenV1Encoder extends Bas
                zipBuf = new byte[3 * blockSize * blockSize];
        }
 
-       private VideoData getData(byte[] data) {
+       private static VideoData getData(byte[] data) {
                IoBuffer buf = IoBuffer.allocate(data.length);
                buf.clear();
                buf.put(data);
@@ -78,6 +78,7 @@ public class ScreenV1Encoder extends Bas
                return new VideoData(buf);
        }
        
+       @Override
        public void createUnalteredFrame() throws IOException {
                if (last == null) {
                        return;
@@ -99,6 +100,7 @@ public class ScreenV1Encoder extends Bas
                }
        }
        
+       @Override
        public VideoData getUnalteredFrame() {
                if (unalteredFrame != null && (frameCount % keyFrameIndex) != 
0) {
                        frameCount++;
@@ -106,6 +108,7 @@ public class ScreenV1Encoder extends Bas
                return unalteredFrame;
        }
        
+       @Override
        public synchronized VideoData encode(int[][] img) throws IOException {
                ba.reset();
                Rectangle imgArea = new Rectangle(img.length, img[0].length);
@@ -125,6 +128,7 @@ public class ScreenV1Encoder extends Bas
                return getData(ba.toByteArray());
        }
        
+       @Override
        public void reset() {
                last = null;
                unalteredFrame = null;
@@ -180,7 +184,7 @@ public class ScreenV1Encoder extends Bas
                return ((frame & 0x0F) << 4) + ((codec & 0x0F) << 0);
        }
        
-       private void writeShort(OutputStream os, final int n) throws 
IOException {
+       private static void writeShort(OutputStream os, final int n) throws 
IOException {
                os.write((n >> 8) & 0xFF);
                os.write((n >> 0) & 0xFF);
        }

Modified: 
openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 Mon Apr  4 05:45:45 2016
@@ -48,16 +48,14 @@ import org.apache.openmeetings.db.dao.ba
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.basic.SearchResult;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.GroupUser;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Type;
@@ -92,8 +90,6 @@ public class UserManager implements IUse
        @Autowired
        private ConfigurationDao cfgDao;
        @Autowired
-       private StateDao stateDao;
-       @Autowired
        private GroupDao groupDao;
        @Autowired
        private UserDao userDao;
@@ -287,9 +283,10 @@ public class UserManager implements IUse
         * @param sendConfirmation
         * @return
         */
+       @Override
        public Long registerUser(String login, String Userpass, String lastname,
                        String firstname, String email, Date age, String street,
-                       String additionalname, String fax, String zip, long 
stateId,
+                       String additionalname, String fax, String zip, String 
country,
                        String town, long languageId, String phone, boolean 
sendSMS,
                        boolean generateSipUserData, String jNameTimeZone, 
Boolean sendConfirmation) {
                try {
@@ -305,7 +302,7 @@ public class UserManager implements IUse
 
                                Long userId = 
registerUserInit(UserDao.getDefaultRights(), login,
                                                Userpass, lastname, firstname, 
email, age, street,
-                                               additionalname, fax, zip, 
stateId, town, languageId,
+                                               additionalname, fax, zip, 
country, town, languageId,
                                                true, 
Arrays.asList(cfgDao.getConfValue(CONFIG_DEFAULT_GROUP_ID, Long.class, null)), 
phone,
                                                sendSMS, sendConfirmation, 
timezoneUtil.getTimeZone(jNameTimeZone), false, "", "", false, true, null);
 
@@ -354,9 +351,10 @@ public class UserManager implements IUse
         *         or mail is empty
         * @throws Exception
         */
+       @Override
        public Long registerUserInit(Set<Right> rights, String login, String 
password, String lastname,
                        String firstname, String email, Date age, String street,
-                       String additionalname, String fax, String zip, long 
stateId,
+                       String additionalname, String fax, String zip, String 
country,
                        String town, long languageId, boolean 
sendWelcomeMessage,
                        List<Long> groups, String phone, boolean sendSMS, 
Boolean sendConfirmation,
                        TimeZone timezone, Boolean forceTimeZoneCheck,
@@ -384,7 +382,7 @@ public class UserManager implements IUse
                                                return -19L;
                                        }
                                }
-                               Address adr =  userDao.getAddress(street, zip, 
town, stateId, additionalname, fax, phone, email);
+                               Address adr =  userDao.getAddress(street, zip, 
town, country, additionalname, fax, phone, email);
 
                                // If this user needs first to click his E-Mail 
verification
                                // code then set the status to 0
@@ -426,6 +424,7 @@ public class UserManager implements IUse
         * @param room_id
         * @return
         */
+       @Override
        public boolean kickUserByStreamId(String SID, Long room_id) {
                try {
                        Long users_id = sessiondataDao.checkSession(SID);
@@ -458,6 +457,7 @@ public class UserManager implements IUse
                return false;
        }
 
+       @Override
        public boolean kickUserByPublicSID(String SID, String publicSID) {
                try {
                        Long userId = sessiondataDao.checkSession(SID);
@@ -490,6 +490,7 @@ public class UserManager implements IUse
                return false;
        }
        
+       @Override
        public Long getLanguage(Locale loc) {
                if (loc != null) {
                        for (Map.Entry<Long, Locale> e : 
LabelDao.languages.entrySet()) {
@@ -501,19 +502,7 @@ public class UserManager implements IUse
                return cfgDao.getConfValue(CONFIG_DEFAULT_LANG_KEY, Long.class, 
"1");
        }
 
-       public State getCountry(Locale loc) {
-               List<State> states = stateDao.get();
-               if (loc != null) {
-                       String code = loc.getISO3Country().toUpperCase();
-                       for (State s : states) {
-                               if 
(s.getShortName().toUpperCase().equals(code)) {
-                                       return s;
-                               }
-                       }
-               }
-               return states.get(0);
-       }
-
+       @Override
        public User loginOAuth(Map<String, String> params, long serverId) 
throws IOException, NoSuchAlgorithmException {
                String login = params.get("login");
                String email = params.get("email");
@@ -562,7 +551,7 @@ public class UserManager implements IUse
                                Locale loc = Locale.forLanguageTag(locale);
                                if (loc != null) {
                                        u.setLanguageId(getLanguage(loc));
-                                       
u.getAddress().setState(getCountry(loc));
+                                       
u.getAddress().setCountry(loc.getCountry());
                                }
                        }
                }

Modified: 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 Mon Apr  4 05:45:45 2016
@@ -62,7 +62,6 @@ public class OmFileHelper {
        public static final String DB_PERSISTENCE_NAME = 
"classes/META-INF/%s_persistence.xml";
        public static final String profilesPrefix = "profile_";
        public static final String nameOfLanguageFile = "languages.xml";
-       public static final String nameOfCountriesFile = "countries.xml";
        public static final String nameOfErrorFile = "errorvalues.xml";
        public static final String libraryFileName = "library.xml";
        public static final String defaultProfileImageName = "profile_pic.jpg";
@@ -333,17 +332,11 @@ public class OmFileHelper {
        }
        
        public static void copyFile(File f1, OutputStream out) throws 
IOException {
-               InputStream in = null;
-               try {
-                       in = new FileInputStream(f1);
+               try (InputStream in = new FileInputStream(f1)) {
                        FileHelper.copy(in, out);
                        log.debug("File copied.");
                } catch (Exception e) {
                        log.error("[copyfile(File, File)]", e);
-               } finally {
-                       if (in != null) {
-                               in.close();
-                       }
                }
        }
 }

Modified: 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
 Mon Apr  4 05:45:45 2016
@@ -31,14 +31,13 @@ public class ByteArrayDataSource impleme
        /* Create a DataSource from an input stream */
        public ByteArrayDataSource(InputStream is, String type) {
                this.type = type;
-               try {
-                       ByteArrayOutputStream os = new ByteArrayOutputStream();
+               try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {
                        int ch;
 
-                       while ((ch = is.read()) != -1)
+                       while ((ch = is.read()) != -1) {
                                os.write(ch);
+                       }
                        data = os.toByteArray();
-                       os.close();
                } catch (IOException ioex) {
                }
        }
@@ -55,20 +54,24 @@ public class ByteArrayDataSource impleme
                this.type = type;
        }
 
+       @Override
        public InputStream getInputStream() throws IOException {
                if (data == null)
                        throw new IOException("no data");
                return new ByteArrayInputStream(data);
        }
 
+       @Override
        public OutputStream getOutputStream() throws IOException {
                throw new IOException("cannot do this");
        }
 
+       @Override
        public String getContentType() {
                return type;
        }
 
+       @Override
        public String getName() {
                return "dummy";
        }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 Mon Apr  4 05:45:45 2016
@@ -44,6 +44,8 @@ import java.util.Locale;
 import java.util.Set;
 import java.util.TimeZone;
 
+import org.apache.openmeetings.IWebSession;
+import org.apache.openmeetings.core.ldap.LdapLoginManagement;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
@@ -53,13 +55,10 @@ import org.apache.openmeetings.db.dao.us
 import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
 import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.IWebSession;
-import org.apache.openmeetings.core.ldap.LdapLoginManagement;
 import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidget;
@@ -410,10 +409,6 @@ public class WebSession extends Abstract
                return 
getBean(IUserManager.class).getLanguage(getBrowserLocale());
        }
 
-       public State getCountryByBrowserLocale() {
-               return 
getBean(IUserManager.class).getCountry(getBrowserLocale());
-       }
-
        public String getClientTZCode() {
                TimeZone _zone = browserTz;
                if (browserTz == null) {

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
 Mon Apr  4 05:45:45 2016
@@ -61,7 +61,7 @@
                        wicket:id="address.town" style="width: 214px;" />
        </div>
        <div class="formelement">
-               <label><wicket:message key="141" /></label><select 
wicket:id="address.state" />
+               <label><wicket:message key="141" /></label><select 
wicket:id="address.country" />
        </div>
        <div class="formelement">
                <label><wicket:message key="142" /></label>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
 Mon Apr  4 05:45:45 2016
@@ -30,16 +30,15 @@ import java.util.List;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.GroupUser;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.util.CalendarHelper;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.CountryDropDown;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import 
org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
 import org.apache.wicket.markup.head.IHeaderResponse;
@@ -121,7 +120,7 @@ public class GeneralUserForm extends For
                add(new TextField<String>("address.additionalname"));
                add(new TextField<String>("address.zip"));
                add(new TextField<String>("address.town"));
-               add(new DropDownChoice<State>("address.state", 
getBean(StateDao.class).get(), new ChoiceRenderer<State>("name", "id")));
+               add(new CountryDropDown("address.country"));
                add(new TextArea<String>("address.comment"));
 
                final List<GroupUser> orgUsers;

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
 Mon Apr  4 05:45:45 2016
@@ -52,7 +52,7 @@
                        </tr>
                        <tr>
                                <td class="desc"><wicket:message key="120" 
/></td>
-                               <td><select wicket:id="state"></select></td>
+                               <td><select wicket:id="country"></select></td>
                        </tr>
                        <tr>
                                <td class="desc"><wicket:message key="111" 
/></td>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 Mon Apr  4 05:45:45 2016
@@ -35,18 +35,16 @@ import java.util.TimeZone;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.LanguageDropDown;
+import org.apache.openmeetings.web.util.CountryDropDown;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import 
org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.PasswordTextField;
@@ -83,7 +81,7 @@ public class RegisterDialog extends Abst
        private String login;
        private String password;
        private String email;
-       private State state;
+       private String country;
        private Long lang;
 
        final MessageDialog confirmRegistration;
@@ -149,7 +147,7 @@ public class RegisterDialog extends Abst
                form.confirmPassword.setModelObject(null);
                email = null;
                lang = WebSession.get().getLanguageByBrowserLocale();
-               state = WebSession.get().getCountryByBrowserLocale();
+               country = WebSession.get().getBrowserLocale().getCountry();
        }
 
        public void onOpen(AjaxRequestTarget target) {
@@ -198,7 +196,7 @@ public class RegisterDialog extends Abst
                try {
                        
getBean(IUserManager.class).registerUserInit(UserDao.getDefaultRights(), login, 
password, lastName
                                        , firstName, email, null /* 
age/birthday */, "" /* street */
-                                       , "" /* additionalname */, "" /* fax 
*/, "" /* zip */, state.getId()
+                                       , "" /* additionalname */, "" /* fax 
*/, "" /* zip */, country
                                        , "" /* town */, lang, true /* 
sendWelcomeMessage */
                                        , 
Arrays.asList(getBean(ConfigurationDao.class).getConfValue(CONFIG_DEFAULT_GROUP_ID,
 Long.class, null)),
                                        "" /* phone */, false, 
sendConfirmation, TimeZone.getTimeZone(tzModel.getObject()),
@@ -227,7 +225,7 @@ public class RegisterDialog extends Abst
                private RequiredTextField<String> firstNameField;
                private RequiredTextField<String> lastNameField;
                private LanguageDropDown langField;
-               private DropDownChoice<State> stateField;
+               private CountryDropDown countryField;
 
                public RegisterForm(String id) {
                        super(id);
@@ -256,9 +254,8 @@ public class RegisterDialog extends Abst
                        add(langField = new LanguageDropDown("lang", new 
PropertyModel<Long>(RegisterDialog.this, "lang")));
                        
langField.setRequired(true).setLabel(Model.of(Application.getString(111)));
                        
add(tzDropDown.setRequired(true).setLabel(Model.of(Application.getString(1143))));
-                       add(stateField = new DropDownChoice<State>("state", new 
PropertyModel<State>(RegisterDialog.this, "state"),
-                                       getBean(StateDao.class).get(), new 
ChoiceRenderer<State>("name", "id")));
-                       
stateField.setRequired(true).setLabel(Model.of(Application.getString(120)));
+                       add(countryField = new CountryDropDown("country", new 
PropertyModel<String>(RegisterDialog.this, "country")));
+                       
countryField.setRequired(true).setLabel(Model.of(Application.getString(120)));
                        add(new AjaxButton("submit") { // FAKE button so 
"submit-on-enter" works as expected
                                private static final long serialVersionUID = 1L;
 

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
 Mon Apr  4 05:45:45 2016
@@ -20,7 +20,6 @@ package org.apache.openmeetings.web.user
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
 
@@ -52,7 +51,7 @@ public class RoomsPanel extends UserPane
        private IModel<String> roomName = Model.of((String)null);
        private IModel<String> roomComment = Model.of((String)null);
        private List<Client> clientsInRoom = null;
-       private long roomId = 0;
+       private Long roomId = 0L;
 
        public RoomsPanel(String id, List<Room> rooms) {
                super(id);
@@ -102,17 +101,10 @@ public class RoomsPanel extends UserPane
                                                        uri = 
Application.getBean(UserDao.class).get(userId > 0 ? userId : 
-userId).getPictureuri();
                                                }
                                                File img = 
OmFileHelper.getUserProfilePicture(userId, uri);
-                                               InputStream is = null;
-                                               try {
-                                                       is = new 
FileInputStream(img);
+                                               try (InputStream is = new 
FileInputStream(img)) {
                                                        return 
IOUtils.toByteArray(is);
                                                } catch (Exception e) {
-                                               } finally {
-                                                       if (is != null) {
-                                                               try {
-                                                                       
is.close();
-                                                               } catch 
(IOException e) {}
-                                                       }
+                                                       //no-op
                                                }
                                                return null;
                                        }

Added: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java?rev=1737626&view=auto
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java
 (added)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java
 Mon Apr  4 05:45:45 2016
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
+import org.apache.wicket.model.IModel;
+
+public class CountryDropDown extends DropDownChoice<String>  {
+       private static final long serialVersionUID = 1L;
+
+       public CountryDropDown(String id) {
+               this(id, null);
+       }
+       
+       public CountryDropDown(String id, IModel<String> model) {
+               super(id, model, Arrays.asList(Locale.getISOCountries()));
+               setChoiceRenderer(new IChoiceRenderer<String>() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public String getIdValue(String code, int index) {
+                               return code;
+                       }
+                       
+                       public Object getDisplayValue(String code) {
+                               return new 
Locale.Builder().setRegion(code).build().getDisplayCountry(WebSession.get().getLocale());
+                       }
+
+                       @Override
+                       public String getObject(String id, IModel<? extends 
List<? extends String>> choices) {
+                               for (String code : choices.getObject()) {
+                                       if (code.equals(id)) {
+                                               return code;
+                                       }
+                               }
+                               return null;
+                       }
+               });
+       }
+}

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
 Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
                <class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
                
<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
                <class>org.apache.openmeetings.db.entity.user.Address</class>
-               <class>org.apache.openmeetings.db.entity.user.State</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
                
<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
 Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
                <class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
                
<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
                <class>org.apache.openmeetings.db.entity.user.Address</class>
-               <class>org.apache.openmeetings.db.entity.user.State</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
                
<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
 Mon Apr  4 05:45:45 2016
@@ -52,7 +52,6 @@
                
<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
                <class>org.apache.openmeetings.db.entity.room.RoomGroup</class>
                <class>org.apache.openmeetings.db.entity.user.Address</class>
-               <class>org.apache.openmeetings.db.entity.user.State</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
                
<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
 Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
                <class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
                
<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
                <class>org.apache.openmeetings.db.entity.user.Address</class>
-               <class>org.apache.openmeetings.db.entity.user.State</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
                
<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
 Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
                <class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
                
<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
                <class>org.apache.openmeetings.db.entity.user.Address</class>
-               <class>org.apache.openmeetings.db.entity.user.State</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
                
<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
 Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
                <class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
                
<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
                <class>org.apache.openmeetings.db.entity.user.Address</class>
-               <class>org.apache.openmeetings.db.entity.user.State</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
                
<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
                
<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
 Mon Apr  4 05:45:45 2016
@@ -211,7 +211,6 @@
        <bean id="errorManagement" 
class="org.apache.openmeetings.db.dao.basic.ErrorDao" />
        <bean id="navimanagement" 
class="org.apache.openmeetings.db.dao.basic.NavigationDao" />
        <bean id="pollManagement" 
class="org.apache.openmeetings.db.dao.room.PollDao" />
-       <bean id="statemanagement" 
class="org.apache.openmeetings.db.dao.user.StateDao" />
        <bean id="labelDao" 
class="org.apache.openmeetings.db.dao.label.LabelDao" />
        <bean id="configurationDaoImpl" 
class="org.apache.openmeetings.db.dao.basic.ConfigurationDao" />
        <bean id="appointmentDao" 
class="org.apache.openmeetings.db.dao.calendar.AppointmentDao" />

Modified: 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 Mon Apr  4 05:45:45 2016
@@ -25,6 +25,7 @@ import static org.apache.openmeetings.we
 
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 
 import javax.jws.WebMethod;
 import javax.jws.WebParam;
@@ -54,7 +55,6 @@ import org.apache.openmeetings.db.dto.us
 import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.Address;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
@@ -171,16 +171,14 @@ public class UserWebService implements U
                                String jName_timeZone = 
cfgDao.getConfValue("default.timezone", String.class, "");
                                if (user.getAddress() == null) {
                                        user.setAddress(new Address());
-                                       State s = new State();
-                                       s.setId(1L);
-                                       user.getAddress().setState(s);
+                                       
user.getAddress().setCountry(Locale.getDefault().getCountry());
                                }
                                if (user.getLanguageId() == null) {
                                        user.setLanguageId(1L);
                                }
                                Long userId = 
userManagement.registerUser(user.getLogin(), user.getPassword(),
                                                user.getLastname(), 
user.getFirstname(), user.getAddress().getEmail(), new Date(), 
user.getAddress().getStreet(),
-                                               
user.getAddress().getAdditionalname(), user.getAddress().getFax(), 
user.getAddress().getZip(), user.getAddress().getState().getId()
+                                               
user.getAddress().getAdditionalname(), user.getAddress().getFax(), 
user.getAddress().getZip(), user.getAddress().getCountry()
                                                , user.getAddress().getTown(), 
user.getLanguageId(),
                                                "", false, true, // generate 
SIP Data if the config is enabled
                                                jName_timeZone, confirm);


Reply via email to