Code:
<%
//}
String runT = "",filename = "",da = "";
PreparedStatement psPagination = null;
ResultSet rsPagination = null;
String home = System.getProperty ("user.dir") + "/domains/domain1/docroot/CKML";
String folder2 = "/KML";
String cid = "Cid"+ id;
// String oid = "Oid"+ Objectid;
String EA = "/tripReports";
FileWriter fw ;
File fi = new File(home + folder2 + "/CKBI" + "/"+cid + EA);
fi.mkdirs();
long Total=0;
String disHour="";
String disMinu="";
String disSec="";
int nano=0;
ArrayList arr = new ArrayList();
ArrayList arr1 = new ArrayList();
ArrayList arr2 = new ArrayList();
long totalTimeInMillis=0;
Set<String> dates = new HashSet<String>();
ArrayList<Integer> l=new ArrayList<Integer>();
ArrayList<Integer> m=new ArrayList<Integer>();
ArrayList<Long> n=new ArrayList<Long>();
Map <String, Long> datesAndTotal = new HashMap<String, Long>();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Timestamp t1 = null;
Timestamp t2 = null;
int count = 0;
long sum = 0;
long result=0;
long results=0;
//int check = 0;
int checkA = 0, totKm = 0;
String presentKey="";
if (from != null && from != "")
{
try
{
filename = fi.getPath() + "/" + dis+".xls";
fw = new FileWriter(filename);
fw.append("Navyani Innovations Inc.");
fw.append('\n');
fw.append('\n');
fw.append("Trip report for " + dis);
fw.append('\n');
fw.append('\n');
fw.append("Date");
fw.append('\t');
fw.append("Run Time");
fw.append('\t');
fw.append("Distance Traveled");
String d = from + " 00:00:59";
String d1 = to + " 23:59:59";
String sqlPagination ="SELECT gpstime from xydata a inner join fm4features f on a.ID=f.ID where a.objectId= '" + Objectid + "' AND a.clientId = '" + id + "' AND a.gpstime >= '"+d+"' AND a.gpstime <= '"+d1+"' AND f.DataId='1' AND f.value = '1'";
psPagination = connection.prepareStatement(sqlPagination);
rsPagination = psPagination.executeQuery();
while ( rsPagination.next() )
{
String gpstime = rsPagination.getString("GpsTime");
if (dates.add(gpstime))
{
Date d2 = rsPagination.getDate(1);
t2 = rsPagination.getTimestamp(1);
count++;
if (t1 == null )
{
nano = t2.getSeconds();
System.out.println(t2);
System.out.println(nano);
}
else
{
totalTimeInMillis = (t2.getTime() - t1.getTime()) / 1000;
String dateString = df.format(d2);
System.out.println("GPSTime " +gpstime+ " Time in seconds: " + totalTimeInMillis+ " seconds.");
if (datesAndTotal.containsKey(dateString))
{
m.add((totalTimeInMillis < 80) ? (int) totalTimeInMillis : (int) (totalTimeInMillis % 60));
for (int y=0; y<m.size();)
{
sum+=m.get(y);
y++;
}
sum+= (datesAndTotal.get(dateString))/-1;
System.out.println(sum);
}
datesAndTotal.put(dateString, sum);
}
t1 = t2;
}
}
List mapKeys = new ArrayList(datesAndTotal.keySet());
List mapValues = new ArrayList(datesAndTotal.values());
Collections.sort(mapValues);
Collections.sort(mapKeys);
LinkedHashMap Maps = new LinkedHashMap();
Iterator valueIt = mapValues.iterator();
while (valueIt.hasNext()) {
Object val = valueIt.next();
Iterator keyIt = mapKeys.iterator();
while (keyIt.hasNext()) {
Object key = keyIt.next();
if (datesAndTotal.get(key).toString().equals(val.toString()))
{
datesAndTotal.remove(key);
mapKeys.remove(key);
Maps.put(key, val);
break;
}
}
}
Iterator it1 = Maps.entrySet().iterator();
String prevKey="";
while (it1.hasNext()) {
Map.Entry entry = (Map.Entry) it1.next();
presentKey=(String)entry.getKey();
if(prevKey.length()==0){
System.out.println(presentKey+"=>"+entry.getValue());
results=(Long) entry.getValue()+60;
System.out.println(results);
arr1.add(presentKey);
int hours = (int) (results / 3600),
remainder = (int) (results % 3600),
minutes = remainder / 60,
seconds = remainder % 60;
disHour = (hours < 10 ? "0" : "") + hours;
disMinu = (minutes < 10 ? "0" : "") + minutes;
disSec = (seconds < 10 ? "0" : "") + seconds;
if (count < 2)
{
int se = Integer.parseInt(disSec);
String min = (t2.getSeconds() < 10 ? "0" : "") + t2.getSeconds();
System.out.println("00" + ":" + min + ":" + se + " hh:mm:ss");
}
System.out.println(disHour +":"+ disMinu+":"+disSec+ " hh:mm:ss");
arr.add(disHour + ":" + disMinu + ":"+ disSec);
}
else{
Long present=(Long)entry.getValue();
Long prev=(Long) Maps.get(prevKey);
result=(Long) (present - prev)+30;
System.out.println(""+presentKey+"=>"+result);
System.out.println(result);
arr1.add(presentKey);
int hours = (int) (result / 3600),
remainder = (int) (result % 3600),
minutes = remainder / 60,
seconds = remainder % 60;
disHour = (hours < 10 ? "0" : "") + hours;
disMinu = (minutes < 10 ? "0" : "") + minutes;
disSec = (seconds < 10 ? "0" : "") + seconds;
if (count < 2)
{
// int se = Integer.parseInt(disSec);
// String min = (t2.getSeconds() < 10 ? "0" : "") + t2.getSeconds();
// System.out.println("00" + ":" + min + ":" + se + " hh:mm:ss");
}
System.out.println(disHour +":"+ disMinu+":"+disSec+ " hh:mm:ss");
arr.add(disHour + ":" + disMinu + ":"+ disSec);
}
prevKey=(String)presentKey;
n.add(result);
}
n.add(results);
++checkA;
totalKM = pip.tripReport.AddDrive(id, Objectid, presentKey,presentKey,connection);
fw.append('\n');
fw.append(presentKey+" ");
fw.append('\t');
for (int i=0; i<n.size();)
{
Total+=n.get(i);
i++;
}
System.out.println(Total);
int hours = (int) (Total / 3600),
remainder = (int) (Total % 3600),
minutes = remainder / 60,
seconds = remainder % 60;
disHour = (hours < 10 ? "0" : "") + hours;
disMinu = (minutes < 10 ? "0" : "") + minutes;
disSec = (seconds < 10 ? "0" : "") + seconds;
if (count < 2)
{
//int se = Integer.parseInt(disSec);
// String min = (t2.getSeconds() < 10 ? "0" : "") + t2.getSeconds();
// System.out.println("00" + ":" + min + ":" + se + " hh:mm:ss");
}
System.out.println("Total Time=>" +disHour +":"+ disMinu+":"+disSec+ " hh:mm:ss");
fw.append('\n');
fw.append('\n');
fw.append("Total ");
fw.append('\t');
fw.append(disHour + ":" + disMinu + ":" + disSec + " hh:mm:ss");
fw.flush();
fw.close();
} catch(Exception e){e.printStackTrace();}
finally
{
stmt.close();
psPagination.close();
rsPagination.close();
connection.close();
}
}
%>
<div id="RightPane">
<div id="TopPane">
<div id="track">
<center>
<table>
<th id="disreports" style="background-color: white;">Vehicle/ID:</th>
<th id="disreports" style="background-color: white;">Date</th>
<th id="disreports" style="background-color: white;">Run Time</th>
<th id="disreports" style="background-color: white;">Distance Traveled </th>
<%
if (from != null && from !="")
{
for(int i = 0; i < arr.size(); )
{
%>
<tr>
<td id="disreports" style="background-color:#dae7f6;"><%=dis%></td>
<td id="disreports" style="background-color:#dae7f6;"><%=arr1.get(i)%> </td>
<td id="disreports" style="background-color:#dae7f6;"><font color="Black"> <%=arr.get(i) %> </font><br></td>
<td id="disreports" style="background-color:#dae7f6;"><font color="Black"> <%=arr2.get(i) %> </font> km<br></td>
</tr>
<%i++;} arr.clear(); arr1.clear();arr2.clear(); %>
<tr>
<td></td>
<td id="disreports" style="background-color: white;">Total Time: </td>
<td id="disreports" style="background-color: white;"><%=disHour+ ":" +disMinu+ ":" +disSec %></td>
<td id="disreports" style="background-color:#dae7f6;"><b><font color="Black"> <%=totKm %> </font> km </b><br></td>
</tr>
<tr>
<td></td>
<td></td>
<td id="disreports" style="background-color: white;">Save as</td>
<td id="disreports" style="background-color:#dae7f6;"><font color="Black"> <a href="#" onclick="download();" style="text-decoration: none;"><%=dis%>.xls</a> </font><br></td>
</tr>
<% } %>
</table>
</center>
<br>
</div>
</div>
Code:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.apache.jsp.tripreport_jsp._jspService(tripreport_jsp.java from :862)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:366)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:431)
at org.apache.catalina.core.StandardWrapperValve.preInvoke(StandardWrapperValve.java:462)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:139)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:186)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
at com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
at com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
at com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
at com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
at com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
thanks in advance
