# Comparator: unterschieliches Ergebnis auf dem Localhost und Server



## franzy (30. Jan 2014)

Hallo zusammen,

ich habe einen Comparator implementiert zum sortieren einer Liste mit Zeitdaten und einem Status:


```
public class WorktimeEntitySort implements Comparator{
	.
	.
	.
     public int compare (Object o1, Object o2){        
        int result = 0;
                
        try {
            Long startWorkDateTime = converterBean.dateTimeToLong(formaterBean.databasedateToEuropedate(((WorktimeEntity) o1).getLdate()), formaterBean.databasetimeToEuropetime(((WorktimeEntity) o1).getLtime()));
            Long endWorkDateTime = converterBean.dateTimeToLong(formaterBean.databasedateToEuropedate(((WorktimeEntity) o2).getLdate()), formaterBean.databasetimeToEuropetime(((WorktimeEntity) o2).getLtime()));

            result = startWorkDateTime.compareTo(endWorkDateTime);
            
            if (result == 0) {
                result = ((WorktimeEntity) o2).getSatza().compareTo(((WorktimeEntity) o1).getSatza());
            }
            
            if(((WorktimeEntity) o2).getSatza().equals("I10") || ((WorktimeEntity) o2).getSatza().equals("I20"))
            {
                Long startWorkDate = converterBean.dateToLong(formaterBean.databasedateToEuropedate(((WorktimeEntity) o1).getLdate()));
                Long endWorkDate = converterBean.dateToLong(formaterBean.databasedateToEuropedate(((WorktimeEntity) o2).getLdate()));
                
                result = startWorkDate.compareTo(endWorkDate);
                
                if (result == 0) 
                {   
                    result = ((WorktimeEntity) o2).getSatza().compareTo(((WorktimeEntity) o1).getSatza());
                }
            }
        } 
        catch (ParseException ex) {
            
            throw new RuntimeException(ex);
        }
        
        return result;
    }
}
```

Die Sortierung soll wie folgt ablaufen. Es soll nach dem Zeitstempel sortiert werden. Ist der Zeitstempel gleich, dann soll nach Satza (Status P10, P15, P25, P20, I20, I10) sortiert werden. Dass klappt auch soweit auf dem Localhost. Da erhalte ich folgende Liste:



> P10 20140128 210000
> P15 20140129 030000
> P25 20140129 033000
> P20 20140129 130000
> ...



Aber auf dem Server erhalte ich folgendes Ergebnis:


> P10 20140128 210000
> I20 20140129 000000
> I10 20140129 000000
> P15 20140129 030000
> ...



Woran kann so etwas liegen? An der Tomcat-Version? Ich habe es auf einem 6 und 7 getestet!

Danke und Grüße


----------



## franzy (3. Feb 2014)

hallo 

keiner eine Idee?

gruß


----------



## KSG9|sebastian (3. Feb 2014)

Eingestellte Locale, Zeitzone?


----------



## franzy (4. Feb 2014)

hallo,

hab ich auch zuerst gedacht.

ich hab mir aber mal die long werte zu den einzelnen Datum und Zeitpaaren ausgeben. Die sind alle gleich. Die müssten ja dann Abweichungen aufzeigen, oder?

Grüße


----------



## franzy (4. Feb 2014)

in der catalina.sh habe ich folgendes stehen:

export JAVA_OPTS="-XX:MaxPermSize=512m -Xms512m -Xmx1024m -Duser.language=de -Duser.region=DE -Duser.timezone=CET"

leider das gleiche Problem. Die Sortierung stimmt nicht!


----------



## franzy (4. Feb 2014)

Ich habs gerade gefunden ist die Java version.

Local läuft die 7 auf dem Server jedoch die 6


----------

