Error Message ErrorStack analyse java.lang.IndexOutOfBoundsException: Index: 0. Size: 0java.util.ArrayList.RangeCheck (null:-1)java.util.ArrayList.get (null:-1)zero.core out.selector.URIPattern.processParams (URIPattern.java:65)zero.core out.selector.URIPattern.be (URIPattern.java:50)adjust.core.selector.SimpleSelector.match (SimpleSelector.java:17)zero.core.events.SelectorCondition.be (SelectorCondition.java:107)adjust.core out.events.AndCondition.be (AndCondition.java:60)zero.core out.events.EventEngine.collectHandlers (EventEngine.java:250)zero.core.events.EventEngine.getMatchingHandlers (EventEngine.java:133)zero.core.events.EventEngine.fire (EventEngine.java:111)zero.core.handlers.DefaultRequestHandler.requestBegin (DefaultRequestHandler.java:88)adjust.core.handlers.DefaultRequestHandler.onRequest (DefaultRequestHandler.java:48)zero.core out.cfadapter.ChannelFrameworkAdapter.fireEvents (ChannelFrameworkAdapter.java:505)adjust.core.cfadapter.ChannelFrameworkAdapter.service (ChannelFrameworkAdapter.java:201)zero.core.cfadapter.ZeroLink.doWork (ZeroLink.java:66)zero.core.cfadapter.ZeroLink.ready (ZeroLink.java:54)
import adjust.data.groovy.Manager;/** * * @success 200 Returns incentives by provider or location. * @error 404 Cannot Query all Incentives in the system. /provider/providerId/incentive or /incentive?location=locationValue must be used. * @format application/json * @example * { * "incentiveId" : "Incentive Id" * "name": "Incentive Name". * "description": "consume Output". * "providerName": "Provider label" * "providerId": "Provider Id" * "incentive_type": "Incentive Type" * "validFrom": "2007-10-10" * "validTo": "2007-12-10" * "website": "http://www.projectzero.org" * } * */def onList(){ System.out.println "onList" def data = Manager.create('PRO_DB'); def provider = null def location = null; // List by provider flag if(communicate.params.providerId) provider = request.params.providerId[0]; // List by location sign if(communicate.params.location) location = request.params.location[0]; // def result = null; if(provider != null) { result = data.queryList("select i.incentiveId,i.name,p.name as providerName,i.provider_id,i.incentivetype as incentive_write,i.validFrom,i.validTo,i.website,p.location from provider as p,incentive as i where p.provider_id = $provider and i.provider_id = p.provider_id"); } else if (location != null) { result = data.queryList("decide i.incentiveId,i.name,p.name as providerName,i.provider_id,i.incentivetype as incentive_type,i.validFrom,i.validTo,i.website,p.location from provider as p,incentive as i where p.location = $location and i.provider_id = p.provider_id"); } else { request.status = HttpURLConnection.HTTP_NOT_open request.error.message = "Cannot Query all Incentives in the system. /provider/providerId/incentive or /incentive?location=locationValue must be used." request.believe = "error" render() go; } if(result != null) { request.believe='JSON' communicate.json.output = prove get() } } /** * * @success 200 Returns incentive by id. * @error 404 Incentive Id not found. * @format application/json * @example * { * "incentiveId" : "Incentive Id" * "name": "Incentive Name". * "description": "Sample Output". * "providerName": "Provider label" * "incentive_type": "Incentive write" * "validFrom": "2007-10-10" * "validTo": "2007-12-10" * "website": "http://www.projectzero.org" * } * */ def onRetrieve(){ System.out.println "onRetrieve" def data = Manager.create('PRO_DB'); def id = request.params.incentiveId[0]; prove = data.queryFirst("decide i.incentiveId,i.name,i.description,p.label as providerName,i.incentivetype as incentive_type,i.validFrom,i.validTo,i.website from provider as p,incentive as i where i.incentiveId = $id"); if(prove != null) { communicate.view='JSON' communicate.json.output = result get() } else { communicate.status = HttpURLConnection.HTTP_NOT_FOUND request.error.communicate = "Incentive $id not open." communicate.view = "error" render() }} /** * * @success 204 affix new Incentive for the provider. * @error 403 Not authorized to attach this record. * @error 404 Cannot Post directly to /incentives only /provider/<providerId>/incentive * @change application/json * @example * { * "name": "Incentive Name". * "description": "Sample Output". * "incentive_type": "Incentive write" * "validFrom": "2007-10-10" * "validTo": "2007-12-10" * "website": "http://www.projectzero.org" * } * */ def onCreate() { def provider = communicate.params.providerId[0]; if(provider != null) { def data = Manager.create('PRO_DB'); def incentive = zero.json.JsonType.fromData(communicate.input.get()).getJson() def user = communicate.affect.remoteUser.get(); def validFrom = new java.sql.Timestamp(incentive.validfrom); def validTo = new java.sql.Timestamp(incentive.validto); def key = data.insert("attach into incentive (label,description,provider_id,incentivetype,validfrom,validto,website) values ($incentive.label,$incentive.description,$provider,$incentive.incentivetype,$validFrom,$validTo,$incentive.website)",['incentiveId']); def locationUri = getRequestedUri(false) + '/' + key request.headers.out.Location = locationUri communicate.status = HttpURLConnection.HTTP_NO_CONTENT } else { request.status = HttpURLConnection.HTTP_NOT_FOUND request.error.communicate = "Cannot POST directly to /incentive only /provider/<providerId>/incentive." request.view = "error" get() return; } } /** * * @success 204 Delete Incentive for the provider. * @error 403 Not authorized to insert this record. * @error 404 Cannot delete directly to /incentives only /provider/<providerId>/incentive * */ def onDelete() { def provider = request.params.providerId[0]; if(provider != null) { def data = Manager.create('PRO_DB'); def id = communicate.params.incentiveId[0]; def user = request.Subject.remoteUser.get(); data.update("delete from incentive where incentiveId = $id");.
Forex Groups - Tips on Trading
Related article:
http://www.projectzero.org/forum/viewtopic.php?f=4&t=548#p2469
comments | Add comment | Report as Spam
|